API de messages LangChain
Tous les types de messages
| Type | rôle | type | Attributs clés | Description |
|---|---|---|---|---|
| HumanMessage | user | human | content | Message utilisateur |
| AIMessage | assistant | ai | content, tool_calls, usage_metadata | Réponse IA |
| AIMessageChunk | assistant | ai | contenu (incrémental) | Fragment de token de sortie en streaming |
| SystemMessage | system | system | content | Instruction système |
| ToolMessage | tool | tool | content, tool_call_id, name | Résultat de l'exécution de l'outil |
| RemoveMessage | - | supprimer | id | Supprimer le message spécifié |
Types de ContentBlock (contenu multimodal)
| Type | Description | Cas d'utilisation |
|---|---|---|
| PlainTextContentBlock | Texte brut | Texte brut |
| ImageContentBlock | Image (base64 ou URL) | Entrée image pour modèles multimodaux |
| AudioContentBlock | Audio | Saisie vocale |
| VideoContentBlock | Vidéo | Entrée vidéo |
| FileContentBlock | Fichier | Entrée de document |
| ToolCall | Demande d'appel d'outil | Le modèle demande d'appeler un outil |
| ServerToolCall | Appel d'outil côté serveur | Appel d'outil intégré/MCP |
Fonctions utilitaires courantes
| Fonction | Description | Signature |
|---|---|---|
| trim_messages() | Tronquer l'historique des messages pour l'adapter à la fenêtre de contexte | trim_messages(messages, *, max_tokens, strategy, token_counter, include_system, start_on) |
Exemples d'utilisation courants
Exemples
from langchain.messages import (
HumanMessage, AIMessage, SystemMessage, ToolMessage, trim_messages
)
# Créer un message
human = HumanMessage(content="Bonjour")
system = SystemMessage(content="Vous êtes un assistant")
ai = AIMessage(content="Bonjour ! Comment puis-je vous aider ?")
tool = ToolMessage(content="Résultat", tool_call_id="call_1", name="my_tool")
# Raccourci
msg1 = ("user", "Bonjour") # Tuple
msg2 = {"role": "user", "content": "Bonjour"} # Dictionnaire
# Attributs du message
print(human.type) # human
print(human.content) # Bonjour
print(ai.tool_calls) # [] ou [ToolCall]
# Tronquer les messages
trimmed = trim_messages(
messages, max_tokens=1000, strategy="last",
token_counter=model, include_system=True,
)
HumanMessage, AIMessage, SystemMessage, ToolMessage, trim_messages
)
# Créer un message
human = HumanMessage(content="Bonjour")
system = SystemMessage(content="Vous êtes un assistant")
ai = AIMessage(content="Bonjour ! Comment puis-je vous aider ?")
tool = ToolMessage(content="Résultat", tool_call_id="call_1", name="my_tool")
# Raccourci
msg1 = ("user", "Bonjour") # Tuple
msg2 = {"role": "user", "content": "Bonjour"} # Dictionnaire
# Attributs du message
print(human.type) # human
print(human.content) # Bonjour
print(ai.tool_calls) # [] ou [ToolCall]
# Tronquer les messages
trimmed = trim_messages(
messages, max_tokens=1000, strategy="last",
token_counter=model, include_system=True,
)