LangGraph学习笔记 (二)-10分钟搭建自己第一个Agent
LangGraph&LangChain智能体开发极速入门教程来啦!10分钟搭建高性能Data Agent,前端对话+NL2SQL+Python代码解释器全功能实现,前后端分离架构+实时状态追踪全流程实战,一站式入门LangGraph&LangChain全套开发工具!
一、软件安装及环境配置
conda create -n lg python=3.11 #创建langchain开发环境
conda activate lg
需要导入的requirements.txt库
langgraph
langchain-core
langchain-deepseek
langchain-tavily
python-dotenv
langsmith
pydantic
matplotlib
seaborn
pandas
pymysql
scikit-learn
pip安装requirements.txt库代码
pip install -r .\requirements.txt
创建一个.env文件,用于保存保密等级较高的API-KEY
DEEPSEEK_API_KEY=
LANGSMITH_TRACING=
LANGSMITH_API_KEY=
LANGSMITH_PROJECT=
DASHSCOPE_API_KEY=
OPENWEATHER_API_KEY=
TAVILY_API_KEY=
HOST=
USER=
MYSQL_PW=
DB_NAME=
PORT=
🤖 AI服务相关
DEEPSEEK_API_KEY - DeepSeek AI模型API访问密钥
DASHSCOPE_API_KEY - 阿里云通义千问模型API密钥
https://dashscope.aliyun.com/
🔍 搜索与数据服务
TAVILY_API_KEY - Tavily搜索服务API密钥
OPENWEATHER_API_KEY - OpenWeather天气服务API密钥
https://openweathermap.org/api
🛠️ 开发与监控工具
LANGSMITH_TRACING - LangSmith调用追踪开关
LANGSMITH_API_KEY - LangSmith平台认证密钥
LANGSMITH_PROJECT - LangSmith项目名称
🗄️ 数据库配置 HOST - MySQL服务器主机地址
USER - MySQL登录用户名
MYSQL_PW - MySQL登录密码
DB_NAME - 数据库名称
PORT - MySQL服务端口号
DeepSeek官网获取DeepSeek APl Key
LangSmith也需要先登录LangSmith官网进行注册,然后选择开启项目追踪功能
获取用于进行网络搜索的Tavily API Key
为了Data Agent能够接入本地数据库,确认MySOL服务器相关的配置,包括用户、密码、数据库名称等
二、LangSmith注册
官网网址
https://www.langchain.com/langsmith
选择开启项目追踪功能
创建API Key
三、Tavily注册
官网注册账号
https://www.tavily.com/
创建API Key
四、MySOL安装
cd /d "E:\Program Files\MySQL\MySQL Server 8.0\bin"
mysql -h localhost -u root -p
创建数据库和表:
CREATE DATABASE IF NOT EXISTS school;
USE school;CREATE TABLE IF NOT EXISTS students_scores (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50),course1 INT,course2 INT,course3 INT
);INSERT INTO students_scores (name, course1, course2, course3) VALUES
('学生1', 85, 92, 78),
('学生2', 76, 88, 91),
('学生3', 90, 85, 80),
('学生4', 65, 70, 72),
('学生5', 82, 89, 95),
('学生6', 91, 93, 87),
('学生7', 77, 78, 85),
('学生8', 88, 92, 91),
('学生9', 84, 76, 80),
('学生10', 89, 90, 92);
验证数据是否正常
SELECT * FROM students_scores;
此外,还需要刷新身份验证,使得其他库(如pymysql)可以通过密码验证登录:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';
导入完成后续可以直接看到该数据库
USE school;
SELECT * FROM students_scores;
此时对应的MySQL数据库
# .env 文件内容
HOST=localhost
USER=root
MYSQL_PW=123
DB_NAME=school
PORT=3306
五、项目部署
graph.py文件和langgraph.json文件
{"dependencies": ["./"],"graphs": {"data_agent": "./graph.py:graph"},"env": ".env"
}
Ianggraph cli进行项目部署上线,先使用pip安装langgraph cli
pip install -U "langgraph-cli[inmem]"
然后输入langgraph dev命令即可一键进行项目部署
langgraph dev
但可能会出现如下问题
因为下面这个路径跨域了,smith平台是不可能获取你本地服务API EndPoint的,访问不了很正常。
https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
所以为了解决这个问题,我们需要改一下启动的命令,使用下面命令启动:
langgraph dev --tunnel
需要远程访问或避免浏览器限制,可以使用 --tunnel 参数。在运行langgraph dev --tunnel 在下载 Cloudflare 的 cloudflared 可执行文件时访问 GitHub 超时(WinError 10060)。
此时可以手动安装 cloudflared(绕过在线下载)
在网络可访问 GitHub 的环境手动下载:
https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-windows-amd64.exe
重命名为 cloudflared.exe,放到下面任一位置: 加入系统 PATH 的目录(如 D:\tools\cloudflared\cloudflared.exe 并把 D:\tools\cloudflared 加到 PATH) 或者直接放到当前虚拟环境目录,作者使用的是后者。
项目根\.venv\Scripts\cloudflared.exe
这样,langsmith平台就可以正常地加载了。加载后大家可以看到,你也的业务流程完全变成了可追踪的可视化工作流。
然后可以输入问题,在这个平台上进行调试,例如在对应的传递参数的地方,提问:花开花落下一句,在此平台就可以连接到你本地的工程,进行可视化调试和输出了。
同时可以在langsmith中实时追踪智能体运行状态,只需要登录LangSmith官网,找到追踪的项目,就能看到每一次智能体的响应情况,至此后端服务就已经顺利部署上线。
此时后端服务端口是2024
点击- 📚 API Docs链接即可进入如下界面,并且我们可以在这个网页中看到后端接口的功能说明列表
并且可以进行任意端口的功能测试
六、Agent chat Ul前端
官网链接
github.com/langchain-ai/agent-chat-ui
在当前项目主目录内进行解压缩
然后在cursor中再打开一个命令行,并进入到Agent chat Ul的目录下
cd .\agent-chat-ui\
使用npm命令下载pnpm,然后输入pnpm install命令安装前端的相关依赖,安装完成后即可输入pnpm dev来开启前端服务
npm install -g pnpm
pnpm install
pnpm dev
这个前端服务会默认从2024端口接入后端功能,确保后端服务是正常运行的情况下,在3000这个前端的端口登录Agent Chat主页
登陆时输入对应的agent名字以及可选输入LangSmith的API Key
进入对话页面后可以让agent进行自我介绍
如果成功的话说明demo产品成功上线
在左侧看到历史对话消息列表,同时前端的对话也能被LangSmith追踪到,任何的对话请求都可以在LangSmith主页中看到后端运行情况
若出现如下错误,意味着你的系统找不到 npm 命令,可见《Node.js前端小白入坑指南:为什么你的电脑找不到 npm 命令?》解决。
七、数据分析
将一个excel表格放在同一目录下可以进行相关数据分析,如下为例。
目前我的主目录下有一个名叫telco_data.csv的数据集,请帮我绘制一张热力图,来展示除customerlD、MonthlyCharges、TotalCharges字段外,其他离散字段和标签之间的关联关系。
非常棒,请按照上面的计划,逐步编写Python代码并运行
结果输出路径
C:\Users\Administrator\Desktop\data_agent\agent-chat-ui\agent-chat-ui-main\public\images
总结
后续运作只需要
conda activate lg
langgraph dev --tunnel
另起终端
cd .\agent-chat-ui\
pnpm dev