2a109455a5
embed.py: get_embedder(provider) — aitunnel (живой /v1/embeddings) по умолчанию, fake (детерминированный без сети) для тестов, local — заглушка NotImplementedError. batch() применяет embed_fn инъекцией — сеть не затрагивается в тестах.
20 lines
466 B
Python
20 lines
466 B
Python
from brain.embed import batch, get_embedder
|
|
|
|
|
|
def test_batch_uses_injected_embedder():
|
|
calls = []
|
|
|
|
def fake(text):
|
|
calls.append(text)
|
|
return [len(text), 0.0]
|
|
|
|
out = batch(["аб", "вгд"], embed_fn=fake)
|
|
assert out == [[2, 0.0], [3, 0.0]]
|
|
assert calls == ["аб", "вгд"]
|
|
|
|
|
|
def test_get_embedder_returns_callable():
|
|
emb = get_embedder(provider="fake")
|
|
v = emb("тест")
|
|
assert isinstance(v, list) and len(v) > 0
|