File size: 1,217 Bytes
f5eae9c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import torch
from torch import nn

from cortex_ai.identity import (
    IDENTITY_STATEMENT,
    IDENTITY_STATEMENT_EN,
    identity_response,
    is_identity_question,
)
from cortex_ai.vision import PrefixFusion, VisionConfig, build_vision_adapter


def test_identity_questions_and_canonical_responses():
    assert is_identity_question("Qui t'a créé ?")
    assert is_identity_question("Who is your creator?")
    assert identity_response("fr") == IDENTITY_STATEMENT
    assert identity_response("en") == IDENTITY_STATEMENT_EN


def test_image_encoder_projector_and_fusion_path():
    class DummyEncoder(nn.Module):
        def forward(self, images):
            batch = images.shape[0]
            return torch.ones(batch, 2, 4)

    config = VisionConfig(vision_hidden_size=4, cortex_hidden_size=8)
    adapter = build_vision_adapter(config, DummyEncoder())
    multimodal = adapter.prepare_multimodal_input(torch.zeros(2, 3, 16, 16))
    assert multimodal.image_embeddings.shape == (2, 2, 8)

    text = torch.zeros(2, 3, 8)
    fused = PrefixFusion().fuse(text, multimodal.image_embeddings)
    assert fused.shape == (2, 5, 8)
    assert multimodal.metadata["vision_status"] == "experimental / in development"