Toggle Menu
Prev Up Next

# `langchain_core.example_selectors.semantic_similarity`.MaxMarginalRelevanceExampleSelector

class langchain_core.example_selectors.semantic_similarity.MaxMarginalRelevanceExampleSelector

  Bases: `_VectorStoreExampleSelector`

  Select examples based on Max Marginal Relevance.

  This was shown to improve performance in this paper: https://arxiv.org/pdf/2211.13892.pdf

  Create a new model by parsing and validating input data from keyword arguments.

  Raises ValidationError if the input data cannot be parsed to form a valid model.

  param example_keys: Optional[List[str]] = None

    Optional keys to filter examples to.

  param fetch_k: int = 20

    Number of examples to fetch to rerank.

  param input_keys: Optional[List[str]] = None

    Optional keys to filter input to. If provided, the search is based on the input variables instead of all variables.

  param k: int = 4

    Number of examples to select.

  param vectorstore: VectorStore [Required]

    VectorStore than contains information about examples.

  param vectorstore_kwargs: Optional[Dict[str, Any]] = None

    Extra arguments passed to similarity_search function of the vectorstore.

  async aadd_example(example: Dict[str, str]) → str

    Add new example to vectorstore.

    Parameters

      example (Dict[str, str]) –

    Return type

      str

  add_example(example: Dict[str, str]) → str

    Add new example to vectorstore.

    Parameters

      example (Dict[str, str]) –

    Return type

      str

  async classmethod afrom_examples(examples: List[dict], embeddings: Embeddings, vectorstore_cls: Type[VectorStore], *, k: int = 4, input_keys: Optional[List[str]] = None, fetch_k: int = 20, example_keys: Optional[List[str]] = None, vectorstore_kwargs: Optional[dict] = None, **vectorstore_cls_kwargs: Any) → MaxMarginalRelevanceExampleSelector

    Asynchronously create k-shot example selector using example list and embeddings.

    Reshuffles examples dynamically based on Max Marginal Relevance.

    Parameters

      - examples (List[dict]) – List of examples to use in the prompt.

      - embeddings (Embeddings) – An initialized embedding API interface, e.g. OpenAIEmbeddings().

      - vectorstore_cls (Type[VectorStore]) – A vector store DB interface class, e.g. FAISS.

      - k (int) – Number of examples to select

      - fetch_k (int) – Number of Documents to fetch to pass to MMR algorithm.

      - input_keys (Optional[List[str]]) – If provided, the search is based on the input variables instead of all variables.

      - example_keys (Optional[List[str]]) – If provided, keys to filter examples to.

      - vectorstore_kwargs (Optional[dict]) – Extra arguments passed to similarity_search function of the vectorstore.

      - vectorstore_cls_kwargs (Any) – optional kwargs containing url for vector store

    Returns

      The ExampleSelector instantiated, backed by a vector store.

    Return type

      MaxMarginalRelevanceExampleSelector

  async aselect_examples(input_variables: Dict[str, str]) → List[dict]

    Asynchronously select examples based on Max Marginal Relevance.

    Parameters

      input_variables (Dict[str, str]) – The input variables to use for search.

    Returns

      The selected examples.

    Return type

      List[dict]

  classmethod construct(_fields_set: Optional[SetStr] = None, **values: Any) → Model

    Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed. Behaves as if Config.extra = ‘allow’ was set since it adds all passed values

    Parameters

      - _fields_set (Optional[SetStr]) –

      - values (Any) –

    Return type

      Model

  copy(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, update: Optional[DictStrAny] = None, deep: bool = False) → Model

    Duplicate a model, optionally choose which fields to include, exclude and change.

    Parameters

      - include (Optional[Union[AbstractSetIntStr, MappingIntStrAny]]) – fields to include in new model

      - exclude (Optional[Union[AbstractSetIntStr, MappingIntStrAny]]) – fields to exclude from new model, as with values this takes precedence over include

      - update (Optional[DictStrAny]) – values to change/add in the new model. Note: the data is not validated before creating the new model: you should trust this data

      - deep (bool) – set to True to make a deep copy of the model

      - self (Model) –

    Returns

      new model instance

    Return type

      Model

  dict(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, by_alias: bool = False, skip_defaults: Optional[bool] = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False) → DictStrAny

    Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

    Parameters

      - include (Optional[Union[AbstractSetIntStr, MappingIntStrAny]]) –

      - exclude (Optional[Union[AbstractSetIntStr, MappingIntStrAny]]) –

      - by_alias (bool) –

      - skip_defaults (Optional[bool]) –

      - exclude_unset (bool) –

      - exclude_defaults (bool) –

      - exclude_none (bool) –

    Return type

      DictStrAny

  classmethod from_examples(examples: List[dict], embeddings: Embeddings, vectorstore_cls: Type[VectorStore], k: int = 4, input_keys: Optional[List[str]] = None, fetch_k: int = 20, example_keys: Optional[List[str]] = None, vectorstore_kwargs: Optional[dict] = None, **vectorstore_cls_kwargs: Any) → MaxMarginalRelevanceExampleSelector

    Create k-shot example selector using example list and embeddings.

    Reshuffles examples dynamically based on Max Marginal Relevance.

    Parameters

      - examples (List[dict]) – List of examples to use in the prompt.

      - embeddings (Embeddings) – An initialized embedding API interface, e.g. OpenAIEmbeddings().

      - vectorstore_cls (Type[VectorStore]) – A vector store DB interface class, e.g. FAISS.

      - k (int) – Number of examples to select

      - fetch_k (int) – Number of Documents to fetch to pass to MMR algorithm.

      - input_keys (Optional[List[str]]) – If provided, the search is based on the input variables instead of all variables.

      - example_keys (Optional[List[str]]) – If provided, keys to filter examples to.

      - vectorstore_kwargs (Optional[dict]) – Extra arguments passed to similarity_search function of the vectorstore.

      - vectorstore_cls_kwargs (Any) – optional kwargs containing url for vector store

    Returns

      The ExampleSelector instantiated, backed by a vector store.

    Return type

      MaxMarginalRelevanceExampleSelector

  classmethod from_orm(obj: Any) → Model
    Parameters

      obj (Any) –

    Return type

      Model

  json(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, by_alias: bool = False, skip_defaults: Optional[bool] = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, encoder: Optional[Callable[[Any], Any]] = None, models_as_dict: bool = True, **dumps_kwargs: Any) → unicode

    Generate a JSON representation of the model, include and exclude arguments as per dict().

    encoder is an optional function to supply as default to json.dumps(), other arguments as per json.dumps().

    Parameters

      - include (Optional[Union[AbstractSetIntStr, MappingIntStrAny]]) –

      - exclude (Optional[Union[AbstractSetIntStr, MappingIntStrAny]]) –

      - by_alias (bool) –

      - skip_defaults (Optional[bool]) –

      - exclude_unset (bool) –

      - exclude_defaults (bool) –

      - exclude_none (bool) –

      - encoder (Optional[Callable[[Any], Any]]) –

      - models_as_dict (bool) –

      - dumps_kwargs (Any) –

    Return type

      unicode

  classmethod parse_file(path: Union[str, Path], *, content_type: unicode = None, encoding: unicode = 'utf8', proto: Protocol = None, allow_pickle: bool = False) → Model
    Parameters

      - path (Union[str, Path]) –

      - content_type (unicode) –

      - encoding (unicode) –

      - proto (Protocol) –

      - allow_pickle (bool) –

    Return type

      Model

  classmethod parse_obj(obj: Any) → Model
    Parameters

      obj (Any) –

    Return type

      Model

  classmethod parse_raw(b: Union[str, bytes], *, content_type: unicode = None, encoding: unicode = 'utf8', proto: Protocol = None, allow_pickle: bool = False) → Model
    Parameters

      - b (Union[str, bytes]) –

      - content_type (unicode) –

      - encoding (unicode) –

      - proto (Protocol) –

      - allow_pickle (bool) –

    Return type

      Model

  classmethod schema(by_alias: bool = True, ref_template: unicode = '#/definitions/{model}') → DictStrAny
    Parameters

      - by_alias (bool) –

      - ref_template (unicode) –

    Return type

      DictStrAny

  classmethod schema_json(*, by_alias: bool = True, ref_template: unicode = '#/definitions/{model}', **dumps_kwargs: Any) → unicode
    Parameters

      - by_alias (bool) –

      - ref_template (unicode) –

      - dumps_kwargs (Any) –

    Return type

      unicode

  select_examples(input_variables: Dict[str, str]) → List[dict]

    Select examples based on Max Marginal Relevance.

    Parameters

      input_variables (Dict[str, str]) – The input variables to use for search.

    Returns

      The selected examples.

    Return type

      List[dict]

  classmethod update_forward_refs(**localns: Any) → None

    Try to update ForwardRefs on fields based on this Model, globalns and localns.

    Parameters

      localns (Any) –

    Return type

      None

  classmethod validate(value: Any) → Model
    Parameters

      value (Any) –

    Return type

      Model

# Examples using MaxMarginalRelevanceExampleSelector

- Examples of a pretend task of creating antonyms.