AI创想

标题: LangGraph全家桶使用 [打印本页]

作者: AI小编    时间: 3 小时前
标题: LangGraph全家桶使用
作者:CSDN博客
文章目录


全家桶组件介绍

LangGraph

基于有向图(State Graph)的 AI 应用框架,用来构建多步推理、Agent 协作和可控对话流程。相比直接写 Chain,更结构化、可观测。
LangSmith

平台化工具,用于 调试、观测、评估 LangChain / LangGraph 应用。可以记录运行轨迹、比较不同版本、做回放和质量评估。
LangGraph Studio

一个 可视化 IDE,支持拖拽式创建/修改 LangGraph 流程,实时运行和调试节点逻辑。对非纯代码开发者特别友好。
LangGraph CLI

命令行工具,用来 初始化项目、运行、部署 LangGraph 应用。比如 langgraph dev 本地调试,langgraph deploy 一键上云。
Agent Chat UI

一个现成的 聊天前端(React + Tailwind),直接对接 LangGraph Agent 服务,用来展示对话、思维链、工具调用等。
LangGraph 提供了开发框架,LangSmith 做监控和评估,Studio 做可视化构建,CLI 管理项目和部署,Agent Chat UI 提供用户界面 —— 一套从开发到调试、部署、交互的完整闭环。
创建LangGraph智能体项目

注册LangSmith

为了更好的监控智能体实时运行情况,我们可以考虑借助LangSmith进行追踪(会将智能体运行情况实时上传到LangGraph官网并进行展示)。具体使用可参考文档:
LangSmith监控
创建相关文件

创建.env 文件,存放 API 密钥信息,文件内容如下:
  1. LANGSMITH_TRACING="true"
  2. LANGSMITH_ENDPOINT="https://api.smith.langchain.com"
  3. LANGSMITH_API_KEY='langsmith api key'
  4. LANGSMITH_PROJECT='项目名称'
  5. OPENWEATHER_API_KEY="天气助手API KEY"
复制代码
创建 tools.py 文件,存放自定义 tools 工具
  1. import json
  2. import os
  3. import httpx
  4. import dotenv
  5. from loguru import logger
  6. from pydantic import Field, BaseModel
  7. from langchain_core.tools import tool
  8. # 加载环境变量配置
  9. dotenv.load_dotenv()classWeatherQuery(BaseModel):"""
  10.     天气查询参数模型类,用于定义天气查询工具的输入参数结构。
  11.     :param city: 城市名称,字符串类型,表示要查询天气的城市
  12.     """
  13.     city:str= Field(description="城市名称")classWriteQuery(BaseModel):"""
  14.     写入查询模型类
  15.     用于定义需要写入文档的内容结构,继承自BaseModel基类
  16.     属性:
  17.         content (str): 需要写入文档的具体内容,包含详细的描述信息
  18.     """
  19.     content:str= Field(description="需要写入文档的具体内容")@tool(args_schema=WeatherQuery)defget_weather(city):"""
  20.     查询指定城市的即时天气信息。
  21.     :param city: 必要参数,字符串类型,表示要查询天气的城市名称。
  22.                  注意:中国城市需使用其英文名称,如 "Beijing" 表示北京。
  23.     :return: 返回 OpenWeather API 的响应结果,URL 为
  24.              https://api.openweathermap.org/data/2.5/weather。
  25.              响应内容为 JSON 格式的字符串,包含详细的天气数据。
  26.     """# 构建请求 URL
  27.     url ="https://api.openweathermap.org/data/2.5/weather"# 设置查询参数
  28.     params ={"q": city,# 城市名称"appid": os.getenv("OPENWEATHER_API_KEY"),# 从环境变量中读取 API Key"units":"metric",# 使用摄氏度作为温度单位"lang":"zh_cn"# 返回简体中文的天气描述}# 发送 GET 请求并获取响应
  29.     response = httpx.get(url, params=params)# 将响应解析为 JSON 并序列化为字符串返回
  30.     data = response.json()
  31.     logger.info(f"查询天气结果:{json.dumps(data)}")return json.dumps(data)@tool(args_schema=WriteQuery)defwrite_file(content):"""
  32.     将指定内容写入本地文件
  33.     参数:
  34.         content (str): 要写入文件的文本内容
  35.     返回值:
  36.         str: 表示写入操作成功完成的提示信息
  37.     """# 将内容写入res.txt文件,使用utf-8编码确保中文字符正确保存withopen('res.txt','w', encoding='utf-8')as f:
  38.         f.write(content)
  39.         logger.info(f"已成功写入本地文件,写入内容:{content}")return"已成功写入本地文件。"
复制代码
创建 main.py 主程序文件,编写构建图的具体逻辑,这里我们将利用预构建图API编写天气助手的代码填进去。
  1. from langchain_ollama import ChatOllama
  2. from tools import get_weather, write_file
  3. from langgraph.prebuilt import create_react_agent
  4. # 初始化本地大语言模型,配置基础URL、模型名称和推理模式
  5. llm = ChatOllama(base_url="http://localhost:11434", model="deepseek-r1:8b", reasoning=False)# 定义工具列表,包含天气查询、写入文件工具
  6. tools =[get_weather, write_file]# 创建ReAct代理,结合语言模型和工具函数
  7. agent = create_react_agent(model=llm, tools=tools)
复制代码
创建langgraph.json文件,内容如下
  1. {"dependencies":["./"],"graphs":{"chatbot":"./main.py:agent"},"env":".env"}
复制代码
dependencies: 依赖路径数组,“./”: 表示当前目录为依赖源
graphs: 执行图配置对象,chatbot: 图名称,对应./main.py文件中的agent函数作为聊天机器人入口点
env: 环境变量配置文件路径,“.env”: 指定使用当前目录下的.env文件作为环境变量配置源 */
安装langgraph-cli 并启动项目

执行pip install -U "langgraph-cli[inmem]"命令安装langgraph-cli 工具
执行langgraph dev命令启动项目,启动之后可以看到三个链接,第一个链接是当前部署完成后的服务端口,第二个是LangGraph Studio的可视化页面,其中第三个端口是端口的说明文档。
[code]# langgraph dev
INFO:langgraph_api.cli:

        Welcome to

╦  ┌─┐┌┐┌┌─┐╔═╗┬─┐┌─┐┌─┐┬ ┬
║  ├─┤││││ ┬║ ╦├┬┘├─┤├─┘├─┤
╩═╝┴ ┴┘└┘└─┘╚═╝┴└─┴ ┴┴  ┴ ┴

-




欢迎光临 AI创想 (https://llms-ai.com/) Powered by Discuz! X3.4