Home / File/ config.py — langchain Source File

config.py — langchain Source File

Architecture documentation for config.py, a python file in the langchain codebase. 14 imports, 0 dependents.

File python LangChainCore MessageInterface 14 imports 16 classes

Entity Profile

Dependency Diagram

graph LR
  ba7f9415_541a_d99f_0400_a688a10212b0["config.py"]
  2bf6d401_816d_d011_3b05_a6114f55ff58["collections.abc"]
  ba7f9415_541a_d99f_0400_a688a10212b0 --> 2bf6d401_816d_d011_3b05_a6114f55ff58
  feec1ec4_6917_867b_d228_b134d0ff8099["typing"]
  ba7f9415_541a_d99f_0400_a688a10212b0 --> feec1ec4_6917_867b_d228_b134d0ff8099
  918b8514_ba55_6df2_7254_4598ec160e33["langchain_core.embeddings"]
  ba7f9415_541a_d99f_0400_a688a10212b0 --> 918b8514_ba55_6df2_7254_4598ec160e33
  e929cf21_6ab8_6ff3_3765_0d35a099a053["langchain_core.language_models"]
  ba7f9415_541a_d99f_0400_a688a10212b0 --> e929cf21_6ab8_6ff3_3765_0d35a099a053
  435e49bf_bb2e_2016_ead7_0afb9d57ad71["langchain_core.prompts"]
  ba7f9415_541a_d99f_0400_a688a10212b0 --> 435e49bf_bb2e_2016_ead7_0afb9d57ad71
  b8aff3f8_6287_d5fe_af3e_1ecda79d9656["langsmith"]
  ba7f9415_541a_d99f_0400_a688a10212b0 --> b8aff3f8_6287_d5fe_af3e_1ecda79d9656
  04faf5b9_22ac_eec5_f254_754aa6c94a19["langsmith.evaluation.evaluator"]
  ba7f9415_541a_d99f_0400_a688a10212b0 --> 04faf5b9_22ac_eec5_f254_754aa6c94a19
  fda1273a_102f_d6f6_7c3e_a3cece2788bd["langsmith.schemas"]
  ba7f9415_541a_d99f_0400_a688a10212b0 --> fda1273a_102f_d6f6_7c3e_a3cece2788bd
  dd5e7909_a646_84f1_497b_cae69735550e["pydantic"]
  ba7f9415_541a_d99f_0400_a688a10212b0 --> dd5e7909_a646_84f1_497b_cae69735550e
  f85fae70_1011_eaec_151c_4083140ae9e5["typing_extensions"]
  ba7f9415_541a_d99f_0400_a688a10212b0 --> f85fae70_1011_eaec_151c_4083140ae9e5
  1da1117d_34e9_b42d_751e_42edd84495a2["langchain_classic.evaluation.criteria.eval_chain"]
  ba7f9415_541a_d99f_0400_a688a10212b0 --> 1da1117d_34e9_b42d_751e_42edd84495a2
  9dc9f89c_25b0_3faf_9ab9_25aeefbfe841["langchain_classic.evaluation.embedding_distance.base"]
  ba7f9415_541a_d99f_0400_a688a10212b0 --> 9dc9f89c_25b0_3faf_9ab9_25aeefbfe841
  37291248_07a6_a05c_821a_71cc0592429f["langchain_classic.evaluation.schema"]
  ba7f9415_541a_d99f_0400_a688a10212b0 --> 37291248_07a6_a05c_821a_71cc0592429f
  14c81ea7_2492_26c0_0ff3_ecabb1935cd5["langchain_classic.evaluation.string_distance.base"]
  ba7f9415_541a_d99f_0400_a688a10212b0 --> 14c81ea7_2492_26c0_0ff3_ecabb1935cd5
  style ba7f9415_541a_d99f_0400_a688a10212b0 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"""Configuration for run evaluators."""

from collections.abc import Callable, Sequence
from typing import Any

from langchain_core.embeddings import Embeddings
from langchain_core.language_models import BaseLanguageModel
from langchain_core.prompts import BasePromptTemplate
from langsmith import RunEvaluator
from langsmith.evaluation.evaluator import EvaluationResult, EvaluationResults
from langsmith.schemas import Example, Run
from pydantic import BaseModel, ConfigDict, Field
from typing_extensions import override

from langchain_classic.evaluation.criteria.eval_chain import CRITERIA_TYPE
from langchain_classic.evaluation.embedding_distance.base import (
    EmbeddingDistance as EmbeddingDistanceEnum,
)
from langchain_classic.evaluation.schema import EvaluatorType, StringEvaluator
from langchain_classic.evaluation.string_distance.base import (
    StringDistance as StringDistanceEnum,
)

RUN_EVALUATOR_LIKE = Callable[
    [Run, Example | None],
    EvaluationResult | EvaluationResults | dict,
]
BATCH_EVALUATOR_LIKE = Callable[
    [Sequence[Run], Sequence[Example] | None],
    EvaluationResult | EvaluationResults | dict,
]


class EvalConfig(BaseModel):
    """Configuration for a given run evaluator.

    Attributes:
        evaluator_type: The type of evaluator to use.
    """

    evaluator_type: EvaluatorType

    def get_kwargs(self) -> dict[str, Any]:
        """Get the keyword arguments for the `load_evaluator` call.

        Returns:
            The keyword arguments for the `load_evaluator` call.
        """
        kwargs = {}
        for field, val in self:
            if field == "evaluator_type" or val is None:
                continue
            kwargs[field] = val
        return kwargs


class SingleKeyEvalConfig(EvalConfig):
    """Configuration for a run evaluator that only requires a single key."""

    reference_key: str | None = None
// ... (214 more lines)

Domain

Subdomains

Dependencies

  • collections.abc
  • langchain_classic.evaluation.criteria.eval_chain
  • langchain_classic.evaluation.embedding_distance.base
  • langchain_classic.evaluation.schema
  • langchain_classic.evaluation.string_distance.base
  • langchain_core.embeddings
  • langchain_core.language_models
  • langchain_core.prompts
  • langsmith
  • langsmith.evaluation.evaluator
  • langsmith.schemas
  • pydantic
  • typing
  • typing_extensions

Frequently Asked Questions

What does config.py do?
config.py is a source file in the langchain codebase, written in python. It belongs to the LangChainCore domain, MessageInterface subdomain.
What does config.py depend on?
config.py imports 14 module(s): collections.abc, langchain_classic.evaluation.criteria.eval_chain, langchain_classic.evaluation.embedding_distance.base, langchain_classic.evaluation.schema, langchain_classic.evaluation.string_distance.base, langchain_core.embeddings, langchain_core.language_models, langchain_core.prompts, and 6 more.
Where is config.py in the architecture?
config.py is located at libs/langchain/langchain_classic/smith/evaluation/config.py (domain: LangChainCore, subdomain: MessageInterface, directory: libs/langchain/langchain_classic/smith/evaluation).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free