基于 OpenAI ChatGPT 3.5 的 LangGraph 对话机器人示例
基于 OpenAI ChatGPT 3.5 的 LangGraph 对话机器人示例:
# 安装依赖(如果未安装)
# pip install langgraph langchain-openai
import os
from langchain_openai import ChatOpenAI
from langgraph.graph import StateGraph, END
from typing import TypedDict, List, Dict
# ===== 1. 配置 OpenAI =====
os.environ["OPENAI_API_KEY"] = "sk-your-key-here" # 替换为你的 API 密钥
model = ChatOpenAI(model="gpt-3.5-turbo") # 指定模型
# ===== 2. 定义对话状态 =====
# TypedDict 的作用 这是 Python 3.8+ 引入的类型注解功能,用于定义字典的固定结构。此处 ChatState 表示一个类型化的字典,强制要求包含特定键和值类型。
# 类比理解:将 ChatState 视为一个数据容器模板:模板规则:容器必须有一个名为 history 的抽屉。抽屉内容:这个抽屉里只能放文件夹(字典),每个文件夹上必须贴有 user 或 assistant 的标签(键),标签对应的内容是字符串。
class ChatState(TypedDict):
history: List[Dict[str, str]] # 格式示例:[{"user": "你好"}, {"assistant": "你好!"}]
# ===== 3. 定义核心节点 =====
# `ai_reply` 方法生成 AI 的回复
def ai_reply(state: ChatState):
"""生成 AI 回复"""
# 提取用户最后一条消息
last_user_msg = [msg["user"] for msg in state["history"