用langchain+文心一言+数据库实现个人知识库问答

LLM大模型基础知识【一】 大语言模型(LLM):是指在自然语言处理(Natural Language Processing,NLP)领域中的一类大模型,通常用于处理文本数据和理解自然语言。这类大模型的主要特点是它们在大规模语料库上进行了训练,以学习自然语言的各种语法、语义和语境规则。例如:GPT系列(OpenAI)、Bard(Google)、文心一言(百度)。视觉大模型:是指在计算机视觉(Computer Vision,CV)领域中使用的大模型,通常用于图像处理和分析。 阅读详情

写在前面

众所周知,大模型很火,总想着如何学习一下大模型,利用大模型做点什么事情。

本文利用langchain+文心一言+数据库,实现了基于数据库内容做个问答机器人。代码其实很少。

用文心一言是因为openai接口需要收费

代码

import os,sqlparse

from langchain_core.prompts import ChatPromptTemplate
from langchain_community.utilities import SQLDatabase
from langchain_community.chat_models import QianfanChatEndpoint
from langchain_core.output_parsers import StrOutputParser
from langchain_core.runnables import RunnablePassthrough

os.environ["QIANFAN_AK"] = "xxx"
os.environ["QIANFAN_SK"] = "xxx"

# 这个prompt将数据库schema和要求以及问题交给大模型,让大模型生成sql
template = """根据下面的表模式,编写一个SQL查询来回答用户的问题:
{schema}

问题:{question}
注意:
1.你只需要返回可执行的sql语句,不要返回其他内容
2.sql语句不要用引号包裹
"""
prompt = ChatPromptTemplate.from_template(template)
# 链接数据库
db = SQLDatabase.from_uri("mysql+pymysql://name:password@0.0.0.0:3306/dbname?charset=utf8mb4")

# 获取数据库schema
def get_schema(_):
    return db.get_table_info()

# 解析大模型返回的内容,提取sql
def parse_sql(query):
    return query.split("```sql")[1].split("```")[0]

# 执行sql
def run_query(sql):
    return db.run(sql)

# model = ChatOpenAI()
model = QianfanChatEndpoint(streaming=True,model="ERNIE-Bot",)

sql_response = (
    RunnablePassthrough.assign(schema=get_schema)
    | prompt
    | model.bind(stop=["\nSQLResult:"])
    | StrOutputParser()
)

# 将问题、sql语句以及查询结果交给大模型,让大模型生成一个自然语言回答的结果
template1 = """根据下面的表模式,问题,SQL查询和SQL响应,编写一个自然语言回答:
{schema}

问题:{question}
SQL查询:{query}
SQL响应:{response}"""
prompt_response = ChatPromptTemplate.from_template(template1)

full_chain = (
    RunnablePassthrough.assign(query=sql_response).assign(
        schema=get_schema,
        response=lambda x: run_query(parse_sql(x["query"])),
    )
    | prompt_response
    | model
    | StrOutputParser()
)

# print(full_chain.invoke({"question": "有多少人?"}))
# print(full_chain.invoke({"question": "根据数据库中的记录,秦始皇又叫什么?"}))
# 流式获取大模型返回的结果
try:
    for chunk in full_chain.stream({"question": "根据数据库中的记录,秦始皇又叫什么?"}):
        print(chunk, end="", flush=True)
except TypeError as e:
    print("")

数据库中增加了一条叫“张三”的数据

在这里插入图片描述

可以看到大模型查出来了“张三”

在这里插入图片描述

大模型根据输入的内容生成的sql语句是:

SELECT name FROM namealias WHERE userid = (SELECT userid FROM person WHERE name = '秦始皇')

​

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

总结之LangChain(一)—— 简单使用LangChain LangChain官网:https://python.langchain.com/v0.2/docs/introduction/LangChain 是一个基于大型语言模型(LLM)开发应用程序的框架。开发:使用 LangChain 的开源构建模块和组件构建应用程序。使用第三方集成(opens in a new tab)和模板(opensin a new tab)快速上手。生产化:使用LangSmith检查、监控和评估你的链条,以便你可以持续优化和自信地部署。 阅读详情

相关推荐

如何用LLM和自有知识库搭建智能Agent?

除了类似阿里等商业方案,对于中小企业,可以考虑轻量级的开源方案。调研了几个开源方案,从部署难易程度上选择了fastgpt。

python122_的博客 1118

I那么厉害,简单三步让你免费拥有自己的大模型

系统:windows10或windows11显卡:RTX4090或同等显存以上的显卡打开https://docs.docker.com/desktop/release-notes/下载最新的版本并安装docker desktop编辑配置1编辑配置2在https://huggingface.co/注册并获取在D盘新建D:\docker\huggingface文件夹,管理员身份运行powershell并运行以下命令:查看日志看到日志输出以下信息代表模型运行成功部署web端聊天程序。

xxue345678的博客 1056

大模型基础01:理论与技术的演进概述

大语言模型(英文:Large Language Model,缩写LLM) 是指参数规模极大的神经网络语言模型,大模型的基础理论主要包括深度学习理论、表示学习理论、迁移学习理论、模式识别理论、计算学习理论、分布式计算理论和统计语言模型理论,大模型集成了这些计算机科学核心理论的精华。通过大数据预训练加小数据微调,大大降低了使用门槛,将人工智能技术带入了一个新的阶段。

AaronZZH 的博客 4489

LangChain学习

单独的GPT-4可能知道很多关于世界各地的信息,但如果不能实时查找最新的航班信息或者酒店价格,它提供的旅行建议可能就不够准确或实用。通过LangChain,开发人员可以更轻松地管理与语言模型的交互,无缝地连接多个组件,并集成额外的资源,如API和数据库等,以加强应用的能力和灵活性。LangChain的优势在于为开发人员提供了一个便捷的框架,使其能够更高效地构建应用程序,利用最先进的语言模型和对话系统,同时能够灵活地定制和整合其他必要的资源,为应用程序的开发和部署提供了更大的灵活性和便利性。

我是大好人的博客 3974

TortoiseGit之配置密钥

基于github的开发必须要用到rsa密钥,因此需要用到TortoiseGit的putty key generator工具,来生成既适用于github的rsa密钥也适用于TortoiseGit的ppk密钥。

欧文的博客 2079

liquibase扩展支持达梦数据库

近期项目中需要支持国产数据库,需要liquibase底层支持达梦数据库,记录下操作的详细步骤以便分享。 1.liquibase支持的数据库很多如MySQL, PostgreSQL, Oracle, Sql Server, DB2。但是达梦数据库并不支持,所以需要新建DMDatabase类来适配达梦数据库。达梦语法和Oracle很像所以只需要复制liquibase-core下的Oracle Database做些修改就可了。以下为需要修改的地方 public class DMDatabase extends A

qq_43677719的博客 5472

Langchain-Chatchat与百度文心一言本地化对比分析

本文深入对比Langchain-Chatchat与百度文心一言在本地化部署下的技术路径差异,聚焦数据安全、模型可控性、中文理解能力与部署成本。前者开源灵活,适合技术团队自主演进;后者闭源易用,适合快速落地。通过核心流程、代码示例与选型建议,揭示两种模式的适用边界。

weixin_42607969的博客 998

用Python爬取公众号历史所有文章,看这篇就够了

手把手教你爬取公众号历史所有文章

u010522887的专栏 1万+

使用langchain+chatGPT搭建自有知识库问答机器人

langchain + chatgpt构建自有知识库的知识问答系统

冰血ANG的博客 6800

逆向实战:基于内存态匿名段分析的 DexProtector 检测绕过策略

本文深入探讨了针对DexProtector加固方案的Frida检测绕过策略。通过分析运行时动态加载到匿名内存段的核心检测逻辑,提出了一套基于内存态分析、定位并转储匿名可执行段,进而通过精准Hook与“等式化替换”等技术实现稳定绕过的实战方法。该方法不仅适用于DexProtector,也对采用类似内存隐藏技术的加固方案具有参考价值。

ik678901的博客 514

七自由度机械臂逆运动学实战:从几何简化到KDL库高效求解

本文深入探讨了七自由度机械臂逆运动学求解的实战方法。针对冗余自由度带来的挑战,文章对比了两种核心方案:一是利用任务约束进行几何简化,快速求解特定任务;二是基于DH参数法配置KDL库,实现通用高效的数值迭代求解。文中结合宇树H1机器人实例,详细阐述了从模型解析、参数提取到代码实现与验证的全流程,并提供了几何法与KDL库的适用场景对比与避坑指南。

weixin_29044713的博客 638

Langchain-Chatchat闭源模型对比:与通义千问、文心一言差距分析

面对企业私有知识问答需求,Langchain-Chatchat通过RAG架构实现基于文档的精准回答,相比通义千问、文心一言等闭源模型,在数据安全、定制化和成本控制上更具优势。它不替代大模型,而是协同工作,让AI真正落地于业务场景。

weixin_35750483的博客 594

Unidbg逆向阿里系App签名:从环境补全到算法还原实战

在移动安全与协议分析领域,理解应用层签名机制是核心挑战之一。签名算法作为保障通信安全与身份验证的关键技术,其原理通常涉及哈希、加密及密钥协商等基础密码学概念。在Android平台,核心签名逻辑常被加固并隐藏于Native层SO库中,以对抗动态调试与静态分析,这为安全研究和协议兼容带来了技术障碍。Unidbg作为一种基于模拟执行的逆向工程工具,通过模拟ARM指令集和系统调用,允许研究者在脱离真机环境的情况下,可控地执行和调试SO文件,为解决此类问题提供了创新思路。其技术价值在于实现了对加固代码的确定性分析与算

weixin_42525738的博客 939

开源RAG个人知识库项目开发分析

Hello,大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者,这个LLM开发基础阶段已经进入尾声了,本文中我们不介绍更多的理论与知识点,而是通过的分析开源项目的解决方案来帮助各位开发者理清自己开发的思路;在本文中作者将通过个人知识库助手进行学习:通过分析这个RAG应用的开发流程,思路以及业务代码;帮助读者能学会如何规划自己的LLM的应用开发;在当今数据量迅速增长的时代,高效管理和检索信息已成为关键技能。为了应对这一挑战以及LLM技术的发展,该项目应运而生,旨在构建一个基于。

极限突破者的博客 2989

Amber实战:小分子配体MD模拟全流程避坑指南(附磷酸基团处理技巧)

本文提供了一份基于Amber软件进行小分子配体分子动力学模拟的实战避坑指南。详细解析了从晶体结构预处理、配体参数化(重点探讨AM1-BCC与RESP电荷选择)、复合物体系构建到模拟稳定性调试的全流程。特别针对磷酸基团等特殊官能团处理中常见的模拟崩溃问题,给出了系统性的诊断与解决方案,旨在帮助研究者获得稳定可靠的模拟结果。

weixin_29237635的博客 682

火灾图像检测识别:cnn卷积神经网络 Adaboost 支持向量机 随机森林 决策树 完整代码数据

火灾图像检测识别:cnn卷积神经网络 Adaboost 支持向量机 随机森林 决策树 完整代码数据

862

文心ERNIE Bot SDK+LangChain:基于文档、网页的个性化问答系统

文心 ERNIE Bot SDK 结合Lang Chain构建问答系统。

PaddlePaddle 2001

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

文心一言、讯飞星火、GPT、通义千问等线上API调用示例

通过openai-sb调用。

2289

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

手把手教你,从零开始用langchain-chatchat部署私有化RAG知识库_langchain rag 知识库

angchain-chatchat是一个基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现,开源、可离线部署的检索增强生成(RAG)大模型知识库项目,采用Apache License,可以免费商用。该项目支持市面上主流的本地大语言模型和Embedding模型,支持开源的本地向量数据库。①人工智能/大模型学习路线②AI产品经理资源合集③200本大模型PDF书籍④超详细海量大模型实战项目⑤LLM大模型系统学习教程⑥640套-AI大模型报告合集⑦从0-1入门大模型教程视频。

qingkahui24689的博客 2103

LLM应用开发第六课 个人知识库

在对知识库文本进行分割和向量化后,就需要定义一个向量数据库用来存放文档片段和对应的向量表示了,在向量数据库中,数据被表示为向量形式,每个向量代表一个数据项。项目利用Langchain中的文本切割器完成知识库向量化操作前的文本分割,向量数据库使用高效的索引和查询算法来加速向量数据的存储和检索过程,快速的完成个人知识库数据建立与使用。:项目展示了 RAG 技术在解决 Langchain 幻觉问题方面的优势,通过结合检索和生成的方式,提高了信息的准确性和可靠性,为智能信息管理领域的技术创新提供了新的思路。

weixin_42291933的博客 1662

基于 LangChain 的个人知识库助手:RAG 架构从数据索引到检索生成的完整实战

本案例是 Datawhale《动手学大模型应用开发》教程中「案例1:个人知识库助手」的完整技术拆解,基于 [docs/C6/案例1:个人知识库助手.md](https://link.gitcode.com/i/020076b62b0f1ef6570a3b64e3d84356) 展开,并辅以仓库内 Notebook 与工程代码作为源码级佐证。该案例是一个典型的 RAG(Retrieval-Augme

gitblog_01123的博客 938

ChatGLM+Langchain构建基于本地知识库的问答

LangChain是一个近期非常活跃的开源代码库,目前也还在快速发展中,旨在让大家快速构建自己的LLM对话产品。当然,该框架也支持自定义接入其他机构、企业开源的LLMs的API和模型(比如:ChatGLM、文心一言等)。届时,LangChain的版本已经更新到0.0.123,目前保持着每天1发版的更新速度。LangChain主要包括以下几个主要的模块:Prompt Templates:支持自定义Prompt工程的快速实现以及和LLMs的对接;

weixin_64086825的博客 1298

大模型应用开发终极指南:从零搭建个人知识库助手

在信息爆炸的时代,如何高效管理和检索个人知识成为一项关键技能。Datawhale / llm-universe项目为小白开发者提供了一套完整的大模型应用开发教程,通过实际案例带你从零构建属于自己的个人知识库助手。本教程基于阿里云服务器,结合LangChain框架和RAG技术,让你在数小时内掌握大模型开发的核心技能。 ## 为什么需要个人知识库助手? 在数据量激增的当代社会,有效管理和检索信息成

gitblog_01028的博客 390
上一篇: 大模型RAG实战|构建知识库:文档和网页的加载、转换、索引与存储
下一篇: 使用LangChain和OpenAI API 创建一个简易鲜花描述生成器
少喝冰美式
博客等级 码龄3年 6839粉丝 517原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值