圖形與代理狀態
你受託為一款高中教育 App 製作一個能回答問題的基本聊天機器人。學校希望你使用 OpenAI 的 ChatGPT 版本作為其 LLM。你評估後決定用 LangGraph 以節點方式建立一個聊天機器人代理,以更有效率地完成這項工作。首先,你會定義一個代理的 State() 來儲存代理資料,並設定一個 StateGraph() 物件來管理代理的工作流程。
本題與後續練習所需的模組都已匯入:
from langchain_openai import ChatOpenAI
from typing import Annotated
from typing_extensions import TypedDict
from langgraph.graph import StateGraph, START, END
from langgraph.graph.message import add_messages
本練習屬於課程
Designing Agentic Systems with LangChain
練習說明
- 使用
ChatOpenAI()與模型"gpt-4o-mini"來設定llm。 - 使用
TypedDict定義State類別以管理聊天機器人的資料。 - 使用
add_messages將messages指定為Annotated的list。 - 以
State初始化一個StateGraph執行個體,來規劃聊天機器人的工作流程。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Define the llm
llm = ____(model="____", api_key="OPENAI_API_KEY")
# Define the State
class State(____):
# Define messages with metadata
messages: ____[____, ____]
# Initialize StateGraph
graph_builder = ____(____)