SemanticSimilarityExampleSelector Class — langchain Architecture
Architecture documentation for the SemanticSimilarityExampleSelector class in semantic_similarity.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 58a1328b_1470_20ec_61bd_ea7fb1fc8fa0["SemanticSimilarityExampleSelector"] a80787c0_fd68_ab68_1e5d_400de9d4457f["_VectorStoreExampleSelector"] 58a1328b_1470_20ec_61bd_ea7fb1fc8fa0 -->|extends| a80787c0_fd68_ab68_1e5d_400de9d4457f 68b41b07_21c1_a50f_08fe_c4151de58027["semantic_similarity.py"] 58a1328b_1470_20ec_61bd_ea7fb1fc8fa0 -->|defined in| 68b41b07_21c1_a50f_08fe_c4151de58027 d0986091_5176_ba9e_5c95_9bb7ca3162b9["select_examples()"] 58a1328b_1470_20ec_61bd_ea7fb1fc8fa0 -->|method| d0986091_5176_ba9e_5c95_9bb7ca3162b9 ff07acd4_d1e7_c5a7_504d_ed6733d8ee0d["aselect_examples()"] 58a1328b_1470_20ec_61bd_ea7fb1fc8fa0 -->|method| ff07acd4_d1e7_c5a7_504d_ed6733d8ee0d ec98ee18_b513_50bf_3abe_4f8b0800215d["from_examples()"] 58a1328b_1470_20ec_61bd_ea7fb1fc8fa0 -->|method| ec98ee18_b513_50bf_3abe_4f8b0800215d 40de7d0c_a965_0d15_94bd_2599e2519f07["afrom_examples()"] 58a1328b_1470_20ec_61bd_ea7fb1fc8fa0 -->|method| 40de7d0c_a965_0d15_94bd_2599e2519f07
Relationship Graph
Source Code
libs/core/langchain_core/example_selectors/semantic_similarity.py lines 97–222
class SemanticSimilarityExampleSelector(_VectorStoreExampleSelector):
"""Select examples based on semantic similarity."""
def select_examples(self, input_variables: dict[str, str]) -> list[dict]:
"""Select examples based on semantic similarity.
Args:
input_variables: The input variables to use for search.
Returns:
The selected examples.
"""
# Get the docs with the highest similarity.
vectorstore_kwargs = self.vectorstore_kwargs or {}
example_docs = self.vectorstore.similarity_search(
self._example_to_text(input_variables, self.input_keys),
k=self.k,
**vectorstore_kwargs,
)
return self._documents_to_examples(example_docs)
async def aselect_examples(self, input_variables: dict[str, str]) -> list[dict]:
"""Asynchronously select examples based on semantic similarity.
Args:
input_variables: The input variables to use for search.
Returns:
The selected examples.
"""
# Get the docs with the highest similarity.
vectorstore_kwargs = self.vectorstore_kwargs or {}
example_docs = await self.vectorstore.asimilarity_search(
self._example_to_text(input_variables, self.input_keys),
k=self.k,
**vectorstore_kwargs,
)
return self._documents_to_examples(example_docs)
@classmethod
def from_examples(
cls,
examples: list[dict],
embeddings: Embeddings,
vectorstore_cls: type[VectorStore],
k: int = 4,
input_keys: list[str] | None = None,
*,
example_keys: list[str] | None = None,
vectorstore_kwargs: dict | None = None,
**vectorstore_cls_kwargs: Any,
) -> SemanticSimilarityExampleSelector:
"""Create k-shot example selector using example list and embeddings.
Reshuffles examples dynamically based on query similarity.
Args:
examples: List of examples to use in the prompt.
embeddings: An initialized embedding API interface, e.g. OpenAIEmbeddings().
vectorstore_cls: A vector store DB interface class, e.g. FAISS.
k: Number of examples to select.
input_keys: If provided, the search is based on the input variables
instead of all variables.
example_keys: If provided, keys to filter examples to.
vectorstore_kwargs: Extra arguments passed to similarity_search function
of the `VectorStore`.
vectorstore_cls_kwargs: optional kwargs containing url for vector store
Returns:
The ExampleSelector instantiated, backed by a vector store.
"""
string_examples = [cls._example_to_text(eg, input_keys) for eg in examples]
vectorstore = vectorstore_cls.from_texts(
string_examples, embeddings, metadatas=examples, **vectorstore_cls_kwargs
)
return cls(
vectorstore=vectorstore,
k=k,
input_keys=input_keys,
example_keys=example_keys,
vectorstore_kwargs=vectorstore_kwargs,
Extends
Source
Frequently Asked Questions
What is the SemanticSimilarityExampleSelector class?
SemanticSimilarityExampleSelector is a class in the langchain codebase, defined in libs/core/langchain_core/example_selectors/semantic_similarity.py.
Where is SemanticSimilarityExampleSelector defined?
SemanticSimilarityExampleSelector is defined in libs/core/langchain_core/example_selectors/semantic_similarity.py at line 97.
What does SemanticSimilarityExampleSelector extend?
SemanticSimilarityExampleSelector extends _VectorStoreExampleSelector.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free