Home / Class/ SemanticSimilarityExampleSelector Class — langchain Architecture

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,

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