_VectorStoreExampleSelector Class — langchain Architecture
Architecture documentation for the _VectorStoreExampleSelector class in semantic_similarity.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD a80787c0_fd68_ab68_1e5d_400de9d4457f["_VectorStoreExampleSelector"] 24f4d101_08ec_c1e7_bd03_b1308f5aa1aa["BaseExampleSelector"] a80787c0_fd68_ab68_1e5d_400de9d4457f -->|extends| 24f4d101_08ec_c1e7_bd03_b1308f5aa1aa 68b41b07_21c1_a50f_08fe_c4151de58027["semantic_similarity.py"] a80787c0_fd68_ab68_1e5d_400de9d4457f -->|defined in| 68b41b07_21c1_a50f_08fe_c4151de58027 06f73539_fe12_1c9c_b0b0_60530c6bf341["_example_to_text()"] a80787c0_fd68_ab68_1e5d_400de9d4457f -->|method| 06f73539_fe12_1c9c_b0b0_60530c6bf341 27e09fc4_bf9b_d1a5_5626_387af543d2c7["_documents_to_examples()"] a80787c0_fd68_ab68_1e5d_400de9d4457f -->|method| 27e09fc4_bf9b_d1a5_5626_387af543d2c7 cff2e64a_c9b6_f943_4cfe_92ed35138c3e["add_example()"] a80787c0_fd68_ab68_1e5d_400de9d4457f -->|method| cff2e64a_c9b6_f943_4cfe_92ed35138c3e 99e00c13_46c4_810f_2aad_79ef0d688a4c["aadd_example()"] a80787c0_fd68_ab68_1e5d_400de9d4457f -->|method| 99e00c13_46c4_810f_2aad_79ef0d688a4c
Relationship Graph
Source Code
libs/core/langchain_core/example_selectors/semantic_similarity.py lines 31–94
class _VectorStoreExampleSelector(BaseExampleSelector, BaseModel, ABC):
"""Example selector that selects examples based on SemanticSimilarity."""
vectorstore: VectorStore
"""VectorStore that contains information about examples."""
k: int = 4
"""Number of examples to select."""
example_keys: list[str] | None = None
"""Optional keys to filter examples to."""
input_keys: list[str] | None = None
"""Optional keys to filter input to. If provided, the search is based on
the input variables instead of all variables."""
vectorstore_kwargs: dict[str, Any] | None = None
"""Extra arguments passed to similarity_search function of the `VectorStore`."""
model_config = ConfigDict(
arbitrary_types_allowed=True,
extra="forbid",
)
@staticmethod
def _example_to_text(example: dict[str, str], input_keys: list[str] | None) -> str:
if input_keys:
return " ".join(sorted_values({key: example[key] for key in input_keys}))
return " ".join(sorted_values(example))
def _documents_to_examples(self, documents: list[Document]) -> list[dict]:
# Get the examples from the metadata.
# This assumes that examples are stored in metadata.
examples = [dict(e.metadata) for e in documents]
# If example keys are provided, filter examples to those keys.
if self.example_keys:
examples = [{k: eg[k] for k in self.example_keys} for eg in examples]
return examples
def add_example(self, example: dict[str, str]) -> str:
"""Add a new example to vectorstore.
Args:
example: A dictionary with keys as input variables
and values as their values.
Returns:
The ID of the added example.
"""
ids = self.vectorstore.add_texts(
[self._example_to_text(example, self.input_keys)], metadatas=[example]
)
return ids[0]
async def aadd_example(self, example: dict[str, str]) -> str:
"""Async add new example to vectorstore.
Args:
example: A dictionary with keys as input variables
and values as their values.
Returns:
The ID of the added example.
"""
ids = await self.vectorstore.aadd_texts(
[self._example_to_text(example, self.input_keys)], metadatas=[example]
)
return ids[0]
Extends
Source
Frequently Asked Questions
What is the _VectorStoreExampleSelector class?
_VectorStoreExampleSelector is a class in the langchain codebase, defined in libs/core/langchain_core/example_selectors/semantic_similarity.py.
Where is _VectorStoreExampleSelector defined?
_VectorStoreExampleSelector is defined in libs/core/langchain_core/example_selectors/semantic_similarity.py at line 31.
What does _VectorStoreExampleSelector extend?
_VectorStoreExampleSelector extends BaseExampleSelector.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free