Concevoir des systèmes agentiques avec LangChain
Dilini K. Sumanapala, PhD
Founder & AI Engineer, Genverv, Ltd.

- Agent : [Outil 1 : réponse]
- Agent : [Outil 2 : réponse]
- User : [Requête]
- Agent : [Outil 1 : réponse]
- User : [Question de suivi]
- Agent : [Outil 1 : réponse de suivi]
from langchain_core.messages import AIMessage, HumanMessageconfig = {"configurable": {"thread_id": "1"}}# Créer le message d’entrée avec la requête utilisateur def multi_tool_output(query):inputs = {"messages": [HumanMessage(content=query)]}# Diffuser les messages et métadonnées depuis l’application chatbot for msg, metadata in app.stream(inputs, config, stream_mode="messages"):# Vérifier que le message a du contenu et ne vient pas d’un humain if msg.content and not isinstance(msg, HumanMessage): print(msg.content, end="", flush=True)print("\n")
multi_tool_output("Is `Stella won no wallets` a palindrome?")multi_tool_output("What happened on April 12th, 1955?")
L’expression « Stella won no wallets » est un palindrome.Oui, l’expression "Stella won no wallets" est un palindrome.Le 12 avril 1955 est notable, surtout en science et technologie. Ce jour-là, le premier vaccin antipoliomyélitique réussi, mis au point par le Dr Jonas Salk, a été annoncé au public. Cette avancée a marqué un tournant en santé publique et a mené à des campagnes de vaccination à grande échelle, contribuant presque à l’éradication de la polio...
# Afficher d’abord la requête utilisateur pour chaque interaction def user_agent_multiturn(queries): for query in queries: print(f"User: {query}")# Diffuser les messages correspondant aux requêtes, sans les métadonnées print("Agent: " + "".join(msg.content for msg, metadata in app.stream( {"messages": [HumanMessage(content=query)]}, config, stream_mode="messages")# Filtrer les messages humains pour n’imprimer que ceux de l’agent if msg.content and not isinstance(msg, HumanMessage)) + "\n")queries = ["What happened on the 12 April 1961?", "What about 10 December 1948?", "Is `Mr. Owl ate my metal worm?` a palindrome?", "What about 'palladium stadium?'"] user_agent_multiturn(queries)
User: Que s’est-il passé le 12 avril 1961 ?
Agent: Le 12 avril 1961, Youri Gagarine, cosmonaute soviétique, est devenu le premier humain
dans l’espace à bord de Vostok 1...
User: Et le 22 novembre 1963 ?
Agent: Le 10 décembre 1948... marque l’adoption de la Déclaration universelle des droits de l’homme (DUDH).
User: « Mr. Owl ate my metal worm? » est-il un palindrome ?
Agent: L’expression « Mr. Owl ate my metal worm? » est un palindrome...
User: Et « palladium stadium » ?
Agent: Non, l’expression `palladium stadium` n’est pas un palindrome...
Concevoir des systèmes agentiques avec LangChain