Začněte nyníZačněte zdarma

Zprovoznění konverzace s více otázkami pomocí paměti

Chatbot je téměř připravený ke sdílení se školní administrativou! Aby měli studenti plynulý průběh učení, je důležité umožnit jim pokládat doplňující otázky. Pokud chatbot v první odpovědi něco nevysvětlí dostatečně, mohou studenti svůj dotaz upřesnit a pokračovat v konverzaci. Teď upravíš streamovací funkci chatbota tak, aby podporovala více otázek za sebou – a vypisovala jak dotaz uživatele, tak odpověď chatbota. Aby paměť fungovala, LangGraph při každé doplňující otázce odešle celou dosavadní konverzaci do LLM. Parametry config jsou už nastavené pro jednoho uživatele:

config = {"configurable": {"thread_id": "1"}}

Toto cvičení je součástí kurzu

Návrh agentních systémů s LangChain

Zobrazit kurz

Pokyny k cvičení

  • Na začátku každého kola vypiš dotaz uživatele query ze seznamu queries.
  • Iteruj přes msg a metadata pomocí app.stream(), přičemž předej query jako content zprávy HumanMessage spolu s config, a spoj hodnoty msg.content.
  • Pro extrakci odpovědí chatbota vypiš msg.content s vyloučením zpráv označených jako HumanMessage a před dalším dotazem přidej nový řádek.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Print the user query first for every interaction 
def user_agent_multiturn(queries):  
    for ____ in ____:
        print(f"User: {____}")
        
        # Stream through messages corresponding to queries, excluding metadata 
        print("Agent: " + "".join(____.____ for ____, ____ in app.____(
                {"messages": [____(____=_____)]}, config, stream_mode="messages") 
            
            # Filter out the human messages to print agent messages
            if ____.____ and not isinstance(____, ____)) + "____")       

queries = ["Is `stressed desserts?` a palindrome?", "What about the word `kayak`?",
    "What happened on the May 8th, 1945?", "What about 9 November 1989?"]
user_agent_multiturn(queries)
Upravit a spustit kód