--- name: embedding_encode kind: function lang: py domain: infra version: "1.0.0" purity: impure signature: "def embedding_encode(model: SentenceTransformer, texts: list, mode: str = 'document') -> list" description: "Genera embeddings normalizados para textos. Aplica prefijos e5 automaticamente segun mode (document/query)." tags: [embedding, encode, e5, multilingual, python, pendiente-usar] uses_functions: [embedding_load_model_py_infra] uses_types: [] returns: [] returns_optional: false error_type: "error_go_core" imports: [sentence_transformers] params: - name: model desc: "instancia SentenceTransformer cargada con embedding_load_model" - name: texts desc: "lista de strings a codificar como embeddings" - name: mode desc: "contexto semántico: 'document' para indexación, 'query' para búsqueda (aplica prefijos e5)" output: "list[list[float]]: embeddings normalizados (L2=1), dimensión 384 para e5-small" tested: false tests: [] test_file_path: "" file_path: "python/functions/embedding/model.py" --- ## Ejemplo ```python model = embedding_load_model(".local/models/e5-small") # Indexar documentos doc_embs = embedding_encode(model, ["La IA transforma la industria", "Python es versatil"], mode="document") # Buscar query_embs = embedding_encode(model, ["¿Que es machine learning?"], mode="query") ``` ## Notas mode="document" agrega prefijo "passage: ", mode="query" agrega "query: ". Estos prefijos son requeridos por modelos e5 para retrieval optimo. Los embeddings retornados son float32 normalizados (norma L2 = 1). Para e5-small la dimension es 384. Throughput ~1900 docs/s en CPU.