embedding_models
langroid/embedding_models/init.py
EmbeddingModel
¶
Bases: ABC
Abstract base class for an embedding model.
clone()
¶
Return a copy of this embedding model suitable for use in cloned agents. Default behaviour attempts to deep-copy the model configuration and instantiate a fresh model of the same type; if that is not possible, the original instance is reused.
Source code in langroid/embedding_models/base.py
similarity(text1, text2)
¶
Compute cosine similarity between two texts.
Source code in langroid/embedding_models/base.py
OpenAIEmbeddings(config=OpenAIEmbeddingsConfig())
¶
Bases: EmbeddingModel
Source code in langroid/embedding_models/models.py
truncate_texts(texts)
¶
Truncate texts to the embedding model's context length. TODO: Maybe we should show warning, and consider doing T5 summarization?
Source code in langroid/embedding_models/models.py
SentenceTransformerEmbeddingsConfig
¶
Bases: EmbeddingModelsConfig
Config for sentence-transformers embeddings.
Note
model_name is passed straight to SentenceTransformer, and
sentence-transformers 5.4 changed how it treats a checkpoint that
ships no sentence-transformers config of its own (no modules.json)
-- i.e. a RAW transformers checkpoint. Such checkpoints used to be
wrapped in mean pooling; from 5.4 the CausalLM architectures among
them (Llama, Qwen, Mistral, ...) are wrapped in LAST-TOKEN pooling
instead, which upstream considers the more correct default
(migration guide).
The dimensions are unchanged, so nothing errors: the embedding space
simply changes. If you embedded a collection with a raw CausalLM
checkpoint under an earlier langroid, RE-EMBED it -- otherwise old
vectors and new queries silently live in different spaces. Models
that ship their own sentence-transformers config, including langroid's
default (BAAI/bge-large-en-v1.5), are unaffected.
LlamaCppServerEmbeddings(config=LCSEC())
¶
Bases: EmbeddingModel
Source code in langroid/embedding_models/models.py
GeminiEmbeddings(config=GeminiEmbeddingsConfig())
¶
Bases: EmbeddingModel
Source code in langroid/embedding_models/models.py
generate_embeddings(texts)
¶
Generates embeddings for a list of input texts.
Source code in langroid/embedding_models/models.py
embedding_model(embedding_fn_type='openai')
¶
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
embedding_fn_type
|
str
|
Type of embedding model to use. Options are: - "openai", - "azure-openai", - "sentencetransformer", or - "fastembed". (others may be added in the future) |
'openai'
|
Returns: EmbeddingModel: The corresponding embedding model class.