【Agent】基于Langchain的Agent数据库查询助手

一、介绍

  1. 核心框架
  • deepagents: 创建智能代理的主要框架
  • FilesystemBackend: 代理状态和记忆的后端存储系统
  1. 语言模型
  • ChatOllama: 本地Ollama模型接口(使用gemma4:e4b模型)
  • 支持云端模型的ChatOpenAI备选方案
  1. 数据库工具
  • SQLDatabase: 连接到SQLite数据库(Chinook数据库)
  • SQLDatabaseToolkit: 为数据库操作提供专门工具
  • SQLite: 包含示例数据的轻量级数据库
  1. 开发工具
  • langchain_ollama: 与Ollama集成用于本地LLM部署
  • langchain_openai: 与OpenAI API集成
  • dotenv: 环境变量管理
  1. 技能与记忆系统
  • 技能: 存储在 ./skills/query-writing./skills/schema-exploration中的预定义程序
  • 记忆: 存储在./AGENTS.md 中的文档,用于指导代理行为

二、配置

1、本地运行电脑配置要求:

  • 内存大于24G
  • Windows或者Linux

如不使用本地运行,可调用LLM云端API。

2、克隆项目

shell 复制代码
# Clone the repository
git clone https://github.com/Reversev/Agent-for-SQL.git
cd Agent-for-SQL

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# Set up environment variables
cp .env.example .env

3、修改API配置文件(仅使用云端API需要)

.env文件用于调用云端API,如何使用本地模型,这个文件里的内容可只增加langchain的监控助手API,即LANGCHAIN_API_KEYLANGCHAIN_PROJECT对应的内容。

python 复制代码
# OpenAI API Configuration
OPENAI_API_KEY=your_api_key_here   # 需要更改

# Optional: Custom API Base URL (if using proxy or local deployment)
# OPENAI_API_BASE=https://api.your-proxy.com/v1
OPENAI_API_BASE="https://openrouter.ai/api/v1/chat/completions"  # 需要更改

# LangSmith Configuration
LANGCHAIN_TRACING_V2=true
LANGSMITH_ENDPOINT=https://api.smith.langchain.com
LANGCHAIN_API_KEY=lsv2_pt_xxx  # 需要更改
LANGCHAIN_PROJECT=your_project_name

三、测试结果

1、本地测试结果(Ollama)

  • 修改agent.py文件内容
python 复制代码
model = ChatOllama(
    # model="qwen3.5:9b",
    model="gemma4:e4b",   # 这里用的是gemma4,推理速度更快
    validate_model=False,
    streaming=False,
    temperature=0,
    base_url=os.getenv("OLLAMA_BASE_URL", "http://localhost:11434"),  # Default Ollama URL
)
  • 确保本地的Ollama应用处于开启状态,如果需要了解怎么安装Ollama可以查看我的教程链接

  • 运行推理,在项目文件夹下运行下述代码:

shell 复制代码
python agent.py

结论:测试结果表明Agent可以根据用户指示查找对应问题的结果,但本地运行时间较慢,大约35分钟左右,可以看langsimth上的监控结果,如下图:

监控的中间过程如下图:

2、云端API调用个测试结果(基于openrouter)

  • 访问openrouter网站,然后到API Keys侧边栏,Create一个新的Key,复制并另外保存API,注意:设置好后无法再复制API。

  • 修改agent.py文件内容

python 复制代码
model = ChatOpenAI(
    model="openrouter/free",
    temperature=0,
    openai_api_base=os.getenv("OPENAI_API_BASE"),
)
  • 运行推理,在项目文件夹下运行下述代码:
shell 复制代码
python agent.py


结论:测试结果与本地运行结果一致,但是快了不少,仅需23秒就搞定,可以看langsimth上的监控结果,如下图:

监控的中间过程如下图:

具体详细代码欢迎大家访问我的Github网站,如果对您有帮助的话麻烦点个star⭐⭐⭐。

四、参考文献

1\] \[2\][https://openrouter.ai](https://openrouter.ai/)

相关推荐
声光界1 小时前
《信号处理赋能智能体音感知》
人工智能·音频·信号处理·声学
精益数智工坊2 小时前
红牌作战的实施方法:详解红牌作战的实施方法与整改流程
人工智能
TG_yunshuguoji2 小时前
腾讯云代理商:腾讯云怎么一键部署Hermes?
人工智能·云计算·腾讯云·hermes agent·hermes
weixin_458580122 小时前
HTML函数工具是否适配HDR显示器_高动态范围指南【指南】
jvm·数据库·python
qq_654366982 小时前
Cgo 中正确设置 C 结构体内函数指针回调的完整方案
jvm·数据库·python
qq_432703662 小时前
如何处理复杂的SQL注入攻击_使用行为分析识别异常
jvm·数据库·python
极客先躯2 小时前
高级java每日一道面试题-2025年11月15日-行业专题[LangChain4j]-如何实现热点事件的实时分析和推送?
java·数据库·langchain·突发性与不可预测性·信息碎片化与多源重复·情绪驱动与谣言风险·推送的精准性与合规性
Vect__2 小时前
初识MySQL,数据库相关概念,库操作,表操作
数据库·mysql
sinat_383437362 小时前
如何在 Ubuntu Core(Snappy)上部署 Go Web 服务
jvm·数据库·python
空空潍2 小时前
MySQL索引不生效?一文理解CBO成本模型
数据库·sql·mysql