Implementation:Langchain ai Langchain BaseChatModel Convert Input
| Knowledge Sources | |
|---|---|
| Domains | NLP, Data_Preprocessing |
| Last Updated | 2026-02-11 00:00 GMT |
Overview
Concrete tool for normalizing diverse chat model inputs into a unified PromptValue provided by langchain-core.
Description
The BaseChatModel._convert_input() method accepts any LanguageModelInput (a union of str, list[BaseMessage], and PromptValue) and returns a PromptValue. For strings, it wraps them in a StringPromptValue. For message lists, it wraps them in a ChatPromptValue. For PromptValue instances, it passes them through unchanged.
Usage
This is an internal method called automatically by invoke(), stream(), and generate(). It is not typically called directly by users.
Code Reference
Source Location
- Repository: langchain
- File: libs/core/langchain_core/language_models/chat_models.py
- Lines: L375-386
Signature
def _convert_input(self, model_input: LanguageModelInput) -> PromptValue:
Import
# Internal method — accessed via BaseChatModel instance
from langchain_core.language_models import BaseChatModel
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| model_input | LanguageModelInput | Yes | Union of str, list[BaseMessage], or PromptValue |
Outputs
| Name | Type | Description |
|---|---|---|
| return | PromptValue | Normalized prompt containing messages for the model |
Usage Examples
Automatic Conversion in invoke()
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o-mini")
# All of these work — _convert_input handles normalization:
# String input
response = llm.invoke("Hello, world!")
# Message list input
from langchain_core.messages import HumanMessage, SystemMessage
response = llm.invoke([
SystemMessage(content="You are a helpful assistant."),
HumanMessage(content="Hello!"),
])
# Tuple/dict shorthand
response = llm.invoke([
("system", "You are a helpful assistant."),
("human", "Hello!"),
])