本地大模型编程实战(26)用langgraph实现基于SQL数据构建的问答系统(5)

本文将将扩展上一篇文章完成的 langgraph 链,继续使用基于 langgraph 链 ,对结构化数据库 SQlite 进行查询的方法。该系统建立以后,我们不需要掌握专业的 SQL 技能,可以用自然语言询问有关数据库中数据的问题并返回答案。主要完善一下两点内容: 自动记录消息历史 增加人工审核环节,防止 LLM(大语言模型) 运行危险的SQL语句 我们先看看完成的 langgraph 链的模样,主要有两步:创建SQL查询语句->执行SQL查询语句,在执行SQL查询前中断进行人工审核,上一篇文章的 链 没有人工审核: 本次实现的链 上一篇文章实现的链 使用 qwen2.5 、 llama3.1 做实验。 请注意: 构建 SQL 数据库的问答系统需要执行模型生成的 SQL 查询。这样做存在风险,请确保您的数据库连接权限始终尽可能小,这将减轻(但不能消除)构建模型驱动系统的风险。 ...

二月 26, 2025 · 3 分钟 · 火云

本地大模型编程实战(25)用langgraph实现基于SQL数据构建的问答系统(4)

本文将演练使用基于 langgraph 链 ,对结构化数据库 SQlite 进行查询的方法。该系统建立以后,我们不需要掌握专业的 SQL 技能,可以用自然语言询问有关数据库中数据的问题并返回答案。 使 大语言模型(LLM) 查询结构化数据与非结构化文本数据有所不同。查询非结构化数据时,通常需要将待查询的文本嵌入到向量数据库中;而查询结构化数据的方法则是让 LLM 编写和执行 DSL(例如 SQL)进行查询。 在 用langchain实现基于SQL数据构建问答系统(1) 中,我们已经用 langchain 的 create_sql_query_chain 实现了类似功能,在本文结束后,我们将能看到它们之间的区别。 我们先看看完成的 langgraph 链的模样,情况一目了然,主要有两步:创建SQL查询语句->执行SQL查询语句: 使用 qwen2.5 、 deepseek 以及 llama3.1 做实验。 请注意: 构建 SQL 数据库的问答系统需要执行模型生成的 SQL 查询。这样做存在风险,请确保您的数据库连接权限始终尽可能小,这将减轻(但不能消除)构建模型驱动系统的风险。 ...

二月 25, 2025 · 4 分钟 · 火云

本地大模型编程实战(24)用智能体(Agent)实现智能纠错的SQL数据库问答系统(3)

本文将实现这样一个 智能体(Agent) : 可以使用自然语言对 SQLite 数据库进行查询。即:用户用自然语言提出问题,智能体也用自然语言根据数据库的查询结果回答问题。 增加一个自动对查询中的专有名词进行纠错的工具,这将明显提升查询的准确性。 本次将使用 qwen2.5 、 llama3.1 做实验。 ...

二月 24, 2025 · 6 分钟 · 火云

本地大模型编程实战(23)用智能体(Agent)实现基于SQL数据构建问答系统(2)

本文将用 智能体(Agent) 实现对 SQLite 数据库的查询:用户用自然语言提出问题,智能体也用自然语言根据数据库的查询结果回答问题。 本次将分别在英文、中文环境下,使用 qwen2.5 、 MFDoom/deepseek-r1-tool-calling:7b 以及 llama3.1 做实验。 ...

二月 23, 2025 · 5 分钟 · 火云

本地大模型编程实战(22)用langchain实现基于SQL数据构建问答的系统(1)

使 LLM(大语言模型) 系统能够查询结构化数据与非结构化文本数据在性质上可能不同。后者通常生成可在向量数据库中搜索的文本,而结构化数据的方法通常是让 LLM 编写和执行 DSL(例如 SQL)中的查询。 我们将演练使用 langchain 链 ,在结构化数据库 SQlite 中的数据上创建问答系统的基本方法,该系统建立以后,我们用自然语言询问有关数据库中数据的问题并返回答案。 后面我们将基于 智能体(Agent) 实现类似功能,两者之间的主要区别在于:智能体可以根据需要多次循环查询数据库以回答问题。 实现上述功能需要以下步骤: 将问题转换为 DSL 查询:模型将用户输入转换为 SQL 查询; 执行 SQL 查询; 回答问题:模型使用查询结果响应用户输入。 使用 qwen2.5 、 deepseek 以及 llama3.1 做实验。 ...

二月 19, 2025 · 4 分钟 · 火云