现在各行各业纷纷选择接入大模型,其中最火且可行性最高的形式无异于智能文档问答助手,而LangChain是其中主流技术实现工具,能够轻松让大语言模型与外部数据相结合,从而构建智能问答系统。ERNIE Bot SDK已接入文心大模型4.0能力,同时支持对话补全、函数调用、语义向量等功能。
本教程是基于文心一言ERNIE Bot SDK与LangChain构建基于Embedding Vector方式的文本问答系统, 整体可以解构为三部分。
1、基于ERNIE Bot与LangChain结合的Embedding,获取向量矩阵并保存
2、基于用户问题,在向量矩阵库中搜寻相近的原文句子
3、基于检索到的原文与Prompt结合,从LLM获取答案

背景介绍
问答系统处理流程
加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的top_k个 -> 匹配出的文本作为上下文和问题一起添加到Prompt中 -> 提交给LLM生成回答
技术工具
ERNIE Bot SDK
ERNIE Bot SDK 提供便捷易用的接口,可以调用文心大模型的能力,包含文本创作、通用对话、语义向量、AI作图等。

LangChain
LangChain 是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如API和数据库。
项目代码
环境准备
安装相关库
!pip install -qr requirements.txt
读取 access_token
在星河社区的控制台访问令牌中找到自己的access_token,替换access_token.txt或下面代码中的access_token。

fileName='access_token.txt'
access_token=''
if len(access_token)==0:
with open(fileName,'r') as f:
#逐行读取文件内容
lines = f.readlines()
for line in lines:
if line[:13]=='acces

本文详细描述了使用ERNIEBotSDK和LangChain创建一个能结合大语言模型进行智能问答的系统方法,涉及文本向量化和检索技术。
最低0.47元/天 解锁文章
1839

被折叠的 条评论
为什么被折叠?



