Home / File/ test_llm_checker.py — langchain Source File

test_llm_checker.py — langchain Source File

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

Entity Profile

Dependency Diagram

graph LR
  2ffe71be_5fb2_ec6f_9df6_09a78e1105b7["test_llm_checker.py"]
  120e2591_3e15_b895_72b6_cb26195e40a6["pytest"]
  2ffe71be_5fb2_ec6f_9df6_09a78e1105b7 --> 120e2591_3e15_b895_72b6_cb26195e40a6
  cc40c8fe_2cbf_a477_4463_f1570f8c40c6["langchain_classic.chains.llm_checker.base"]
  2ffe71be_5fb2_ec6f_9df6_09a78e1105b7 --> cc40c8fe_2cbf_a477_4463_f1570f8c40c6
  73c2b530_8ddd_ec61_b708_379b5f972ebc["langchain_classic.chains.llm_checker.prompt"]
  2ffe71be_5fb2_ec6f_9df6_09a78e1105b7 --> 73c2b530_8ddd_ec61_b708_379b5f972ebc
  7e88f5ce_ff41_7d87_8fb2_f355489a149e["tests.unit_tests.llms.fake_llm"]
  2ffe71be_5fb2_ec6f_9df6_09a78e1105b7 --> 7e88f5ce_ff41_7d87_8fb2_f355489a149e
  style 2ffe71be_5fb2_ec6f_9df6_09a78e1105b7 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"""Test LLMCheckerChain functionality."""

import pytest

from langchain_classic.chains.llm_checker.base import LLMCheckerChain
from langchain_classic.chains.llm_checker.prompt import (
    _CHECK_ASSERTIONS_TEMPLATE,
    _CREATE_DRAFT_ANSWER_TEMPLATE,
    _LIST_ASSERTIONS_TEMPLATE,
    _REVISED_ANSWER_TEMPLATE,
)
from tests.unit_tests.llms.fake_llm import FakeLLM


@pytest.fixture
def fake_llm_checker_chain() -> LLMCheckerChain:
    """Fake LLMCheckerChain for testing."""
    queries = {
        _CREATE_DRAFT_ANSWER_TEMPLATE.format(
            question="Which mammal lays the biggest eggs?",
        ): "I don't know which mammal layers the biggest eggs.",
        _LIST_ASSERTIONS_TEMPLATE.format(
            statement="I don't know which mammal layers the biggest eggs.",
        ): "1) I know that mammals lay eggs.\n"
        "2) I know that birds lay eggs.\n"
        "3) I know that birds are mammals.",
        _CHECK_ASSERTIONS_TEMPLATE.format(
            assertions="1) I know that mammals lay eggs.\n"
            "2) I know that birds lay eggs.\n"
            "3) I know that birds are mammals.",
        ): "1) I know that mammals lay eggs. TRUE\n"
        "2) I know that birds lay eggs. TRUE\n"
        "3) I know that birds are mammals. TRUE",
        _REVISED_ANSWER_TEMPLATE.format(
            checked_assertions="1) I know that mammals lay eggs. TRUE\n"
            "2) I know that birds lay eggs. TRUE\n"
            "3) I know that birds are mammals. TRUE",
            question="Which mammal lays the biggest eggs?",
        ): "I still don't know.",
    }
    fake_llm = FakeLLM(queries=queries)
    return LLMCheckerChain.from_llm(fake_llm, input_key="q", output_key="a")


def test_simple_question(fake_llm_checker_chain: LLMCheckerChain) -> None:
    """Test simple question that should not need python."""
    question = "Which mammal lays the biggest eggs?"
    output = fake_llm_checker_chain.run(question)
    assert output == "I still don't know."

Subdomains

Dependencies

  • langchain_classic.chains.llm_checker.base
  • langchain_classic.chains.llm_checker.prompt
  • pytest
  • tests.unit_tests.llms.fake_llm

Frequently Asked Questions

What does test_llm_checker.py do?
test_llm_checker.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, RunnableInterface subdomain.
What functions are defined in test_llm_checker.py?
test_llm_checker.py defines 2 function(s): fake_llm_checker_chain, test_simple_question.
What does test_llm_checker.py depend on?
test_llm_checker.py imports 4 module(s): langchain_classic.chains.llm_checker.base, langchain_classic.chains.llm_checker.prompt, pytest, tests.unit_tests.llms.fake_llm.
Where is test_llm_checker.py in the architecture?
test_llm_checker.py is located at libs/langchain/tests/unit_tests/chains/test_llm_checker.py (domain: CoreAbstractions, subdomain: RunnableInterface, directory: libs/langchain/tests/unit_tests/chains).

Analyze Your Own Codebase

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

Try Supermodel Free