Home / Class/ SimpleChatModel Class — langchain Architecture

SimpleChatModel Class — langchain Architecture

Architecture documentation for the SimpleChatModel class in chat_models.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  a3ea7a6e_c0f6_2e2b_7c6a_1f7b9fdaa248["SimpleChatModel"]
  d009a608_c505_bd50_7200_0de8a69ba4b7["BaseChatModel"]
  a3ea7a6e_c0f6_2e2b_7c6a_1f7b9fdaa248 -->|extends| d009a608_c505_bd50_7200_0de8a69ba4b7
  20f4116a_d26d_2a5f_4a10_67af6940e081["chat_models.py"]
  a3ea7a6e_c0f6_2e2b_7c6a_1f7b9fdaa248 -->|defined in| 20f4116a_d26d_2a5f_4a10_67af6940e081
  caa59a4b_5254_7cbf_fa02_f6fb1187d19c["_generate()"]
  a3ea7a6e_c0f6_2e2b_7c6a_1f7b9fdaa248 -->|method| caa59a4b_5254_7cbf_fa02_f6fb1187d19c
  695c0169_144a_b69f_11c7_b281fd22dc94["_call()"]
  a3ea7a6e_c0f6_2e2b_7c6a_1f7b9fdaa248 -->|method| 695c0169_144a_b69f_11c7_b281fd22dc94
  a8e91f99_0430_e067_258b_daa1489b6a67["_agenerate()"]
  a3ea7a6e_c0f6_2e2b_7c6a_1f7b9fdaa248 -->|method| a8e91f99_0430_e067_258b_daa1489b6a67

Relationship Graph

Source Code

libs/core/langchain_core/language_models/chat_models.py lines 1724–1769

class SimpleChatModel(BaseChatModel):
    """Simplified implementation for a chat model to inherit from.

    !!! note
        This implementation is primarily here for backwards compatibility. For new
        implementations, please use `BaseChatModel` directly.

    """

    def _generate(
        self,
        messages: list[BaseMessage],
        stop: list[str] | None = None,
        run_manager: CallbackManagerForLLMRun | None = None,
        **kwargs: Any,
    ) -> ChatResult:
        output_str = self._call(messages, stop=stop, run_manager=run_manager, **kwargs)
        message = AIMessage(content=output_str)
        generation = ChatGeneration(message=message)
        return ChatResult(generations=[generation])

    @abstractmethod
    def _call(
        self,
        messages: list[BaseMessage],
        stop: list[str] | None = None,
        run_manager: CallbackManagerForLLMRun | None = None,
        **kwargs: Any,
    ) -> str:
        """Simpler interface."""

    async def _agenerate(
        self,
        messages: list[BaseMessage],
        stop: list[str] | None = None,
        run_manager: AsyncCallbackManagerForLLMRun | None = None,
        **kwargs: Any,
    ) -> ChatResult:
        return await run_in_executor(
            None,
            self._generate,
            messages,
            stop=stop,
            run_manager=run_manager.get_sync() if run_manager else None,
            **kwargs,
        )

Extends

Frequently Asked Questions

What is the SimpleChatModel class?
SimpleChatModel is a class in the langchain codebase, defined in libs/core/langchain_core/language_models/chat_models.py.
Where is SimpleChatModel defined?
SimpleChatModel is defined in libs/core/langchain_core/language_models/chat_models.py at line 1724.
What does SimpleChatModel extend?
SimpleChatModel extends BaseChatModel.

Analyze Your Own Codebase

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

Try Supermodel Free