【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⭐⭐⭐。

四、参考文献

1https://github.com/Reversev/Agent-for-SQL

2https://openrouter.ai

相关推荐
HyperAI超神经6 分钟前
【Triton 教程】triton_language.fdiv
人工智能·深度学习·triton
心无旁骛~11 分钟前
anywhere-labs/deepseek-harness-desktop 如何围绕上游演进:Submodule、版本溯源与非 Fork 架构
人工智能·架构
xiaohaiAIgeo17 分钟前
【2026年】医药研发实验室GLP的通风设计要求:稳定性可验证性与合规性
网络·人工智能·科普知识
ZGIAI19 分钟前
ZGI Runner 与 Sandbox:两层运行边界
人工智能·架构
ZGIAI26 分钟前
ZGI Workspace:统一组织 Agent 资源
人工智能·架构
芯小途202627 分钟前
微短剧新规 9 月 1 日施行:AIGC 微短剧的「AI 标识 + 占比追溯」怎么在制作流水线里落地(附自查脚本)
人工智能·aigc
诺伦1 小时前
AI Agent 架构实战:从零拆解多Agent协作营销系统的设计与实现
人工智能·架构
遥感知识服务1 小时前
从局部阈值、双极化到暗地表剔除:NASA OPERA DSWx-S1全球动态水体算法拆解
大数据·人工智能·深度学习·神经网络·算法·机器学习
讲温控就好了1 小时前
从医疗影像到能源存储——芯片冷却温控技术的跨行业赋能
人工智能·python·能源
ZJU_统一阿萨姆1 小时前
【算子开发】算子融合与Softmax_LayerNorm实现
人工智能·算法·语言模型·硬件架构