Home / File/ fake_chat_models.py — langchain Source File

fake_chat_models.py — langchain Source File

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

File python CoreAbstractions MessageSchema 11 imports 6 classes

Entity Profile

Dependency Diagram

graph LR
  625e90ff_0acf_2872_ee23_0e50b0ab92ed["fake_chat_models.py"]
  a327e534_84f6_5308_58ca_5727d5eda0cf["asyncio"]
  625e90ff_0acf_2872_ee23_0e50b0ab92ed --> a327e534_84f6_5308_58ca_5727d5eda0cf
  67ec3255_645e_8b6e_1eff_1eb3c648ed95["re"]
  625e90ff_0acf_2872_ee23_0e50b0ab92ed --> 67ec3255_645e_8b6e_1eff_1eb3c648ed95
  0c1d9a1b_c553_0388_dbc1_58af49567aa2["time"]
  625e90ff_0acf_2872_ee23_0e50b0ab92ed --> 0c1d9a1b_c553_0388_dbc1_58af49567aa2
  cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7["collections.abc"]
  625e90ff_0acf_2872_ee23_0e50b0ab92ed --> cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7
  8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"]
  625e90ff_0acf_2872_ee23_0e50b0ab92ed --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3
  91721f45_4909_e489_8c1f_084f8bd87145["typing_extensions"]
  625e90ff_0acf_2872_ee23_0e50b0ab92ed --> 91721f45_4909_e489_8c1f_084f8bd87145
  f3bc7443_c889_119d_0744_aacc3620d8d2["langchain_core.callbacks"]
  625e90ff_0acf_2872_ee23_0e50b0ab92ed --> f3bc7443_c889_119d_0744_aacc3620d8d2
  2312f229_c199_ac88_c29f_62e2a2958404["langchain_core.language_models.chat_models"]
  625e90ff_0acf_2872_ee23_0e50b0ab92ed --> 2312f229_c199_ac88_c29f_62e2a2958404
  d758344f_537f_649e_f467_b9d7442e86df["langchain_core.messages"]
  625e90ff_0acf_2872_ee23_0e50b0ab92ed --> d758344f_537f_649e_f467_b9d7442e86df
  ac2a9b92_4484_491e_1b48_ec85e71e1d58["langchain_core.outputs"]
  625e90ff_0acf_2872_ee23_0e50b0ab92ed --> ac2a9b92_4484_491e_1b48_ec85e71e1d58
  2ceb1686_0f8c_8ae0_36d1_7c0b702fda1c["langchain_core.runnables"]
  625e90ff_0acf_2872_ee23_0e50b0ab92ed --> 2ceb1686_0f8c_8ae0_36d1_7c0b702fda1c
  style 625e90ff_0acf_2872_ee23_0e50b0ab92ed fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"""Fake chat models for testing purposes."""

import asyncio
import re
import time
from collections.abc import AsyncIterator, Iterator
from typing import Any, Literal, cast

from typing_extensions import override

from langchain_core.callbacks import (
    AsyncCallbackManagerForLLMRun,
    CallbackManagerForLLMRun,
)
from langchain_core.language_models.chat_models import BaseChatModel, SimpleChatModel
from langchain_core.messages import AIMessage, AIMessageChunk, BaseMessage
from langchain_core.outputs import ChatGeneration, ChatGenerationChunk, ChatResult
from langchain_core.runnables import RunnableConfig


class FakeMessagesListChatModel(BaseChatModel):
    """Fake chat model for testing purposes."""

    responses: list[BaseMessage]
    """List of responses to **cycle** through in order."""
    sleep: float | None = None
    """Sleep time in seconds between responses."""
    i: int = 0
    """Internally incremented after every model invocation."""

    @override
    def _generate(
        self,
        messages: list[BaseMessage],
        stop: list[str] | None = None,
        run_manager: CallbackManagerForLLMRun | None = None,
        **kwargs: Any,
    ) -> ChatResult:
        if self.sleep is not None:
            time.sleep(self.sleep)
        response = self.responses[self.i]
        if self.i < len(self.responses) - 1:
            self.i += 1
        else:
            self.i = 0
        generation = ChatGeneration(message=response)
        return ChatResult(generations=[generation])

    @property
    @override
    def _llm_type(self) -> str:
        return "fake-messages-list-chat-model"


class FakeListChatModelError(Exception):
    """Fake error for testing purposes."""


class FakeListChatModel(SimpleChatModel):
    """Fake chat model for testing purposes."""
// ... (337 more lines)

Subdomains

Dependencies

  • asyncio
  • collections.abc
  • langchain_core.callbacks
  • langchain_core.language_models.chat_models
  • langchain_core.messages
  • langchain_core.outputs
  • langchain_core.runnables
  • re
  • time
  • typing
  • typing_extensions

Frequently Asked Questions

What does fake_chat_models.py do?
fake_chat_models.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, MessageSchema subdomain.
What does fake_chat_models.py depend on?
fake_chat_models.py imports 11 module(s): asyncio, collections.abc, langchain_core.callbacks, langchain_core.language_models.chat_models, langchain_core.messages, langchain_core.outputs, langchain_core.runnables, re, and 3 more.
Where is fake_chat_models.py in the architecture?
fake_chat_models.py is located at libs/core/langchain_core/language_models/fake_chat_models.py (domain: CoreAbstractions, subdomain: MessageSchema, directory: libs/core/langchain_core/language_models).

Analyze Your Own Codebase

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

Try Supermodel Free