API сообщений LangChain


Все типы сообщений

TyperoletypeКлючевые атрибутыОписание
HumanMessageuserhumancontentСообщение пользователя
AIMessageassistantaicontent, tool_calls, usage_metadataОтвет ИИ
AIMessageChunkassistantaicontent (инкрементальный)Фрагмент токенов потокового вывода
SystemMessagesystemsystemcontentСистемная инструкция
ToolMessagetooltoolcontent, tool_call_id, nameРезультат выполнения инструмента
RemoveMessage-removeidУдалить указанное сообщение

Типы ContentBlock (мультимодальное содержимое)

TypeОписаниеСценарии использования
PlainTextContentBlockОбычный текстОбычный текст
ImageContentBlockИзображение (base64 или URL)Ввод изображения для мультимодальных моделей
AudioContentBlockАудиоГолосовой ввод
VideoContentBlockВидеоВвод видео
FileContentBlockФайлВвод документа
ToolCallЗапрос вызова инструментаМодель запрашивает вызов инструмента
ServerToolCallВызов инструмента на стороне сервераВызов встроенного/MCP-инструмента

Общие вспомогательные функции

ФункцияОписаниеСигнатура
trim_messages()Обрезать историю сообщений, чтобы уместить в контекстное окноtrim_messages(messages, *, max_tokens, strategy, token_counter, include_system, start_on)

Общие примеры использования

Примеры

from langchain.messages import (
    HumanMessage, AIMessage, SystemMessage, ToolMessage, trim_messages
)

# Создать сообщение
human = HumanMessage(content="Привет")
system = SystemMessage(content="Ты — ассистент")
ai = AIMessage(content="Привет! Чем я могу тебе помочь?")
tool = ToolMessage(content="Результат", tool_call_id="call_1", name="my_tool")

# Сокращение
msg1 = ("user", "Привет")          # Кортеж
msg2 = {"role": "user", "content": "Привет"}  # Словарь

# Атрибуты сообщения
print(human.type)   # human
print(human.content)  # Привет
print(ai.tool_calls)  # [] или [ToolCall]

# Обрезать сообщения
trimmed = trim_messages(
    messages, max_tokens=1000, strategy="last",
    token_counter=model, include_system=True,
)
Другие расширения