始める無料で始める

複数ツール向けに出力を構成する

チャットボットのグラフは準備完了です! これから、異なるツールを要するさまざまなクエリで動作をテストしてみましょう。チャットボットのメッセージ管理のために、次のモジュールはすでにインポート済みで、config パラメータは 1 セッション用に設定されています。

from langchain_core.messages import AIMessage, HumanMessage

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

この演習はコースの一部です

LangChainで設計するエージェント型システム

コースを見る

演習の手順

  • ユーザーの queryHumanMessagecontent として含む inputs メッセージ辞書を作成します。
  • .stream() メソッドを使って、inputsconfig を組み込みながら結果を反復し、チャットボット app から msgmetadata をストリーミングします。
  • msgcontent があり、かつ HumanMessage でないことを確認したら、即時に出力されるよう flush=True を指定してその content を表示します。
  • 異なるツールを必要とするクエリでチャットボットをテストするため、multi_tool_output() を使って実行します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Create input message with the user's query
def multi_tool_output(____):
    inputs = {"messages": [____(____=____)]}
    
    # Stream messages and metadata from the chatbot application
    for ____, ____ in app.____(____, ____, stream_mode="messages"):
        
        # Check if the message has content and is not from a human
        if ____.____ and not isinstance(____, ____):
            print(____.____, end="", flush=____)    
    print("\n")

# Call the chatbot with different tools
____("Is `may a moody baby doom a yam` a palindrome?")
____("What happened on 20th July, 1969?")
コードを編集して実行