本文将基于 LangChain 实现一个 mini 的实战案例。这次实战主要完成的任务,就是设计一个测试答疑助手,这个测试答疑助手的主要功能为基于本地的文档和数据,回答给出的自然语言问题,比如一些数据的统计,查找、组合。
示例使用数据
-
测试用例文档
-
设计文档
-
需求文档
实践演练
实战设计思路
安装依赖
安装依赖 chromadb,chromadb 是一个简单快捷的向量数据库,为了减少对 embedding 模型的请求次数,设置数据保存的物理位置,这样多次运行代码也不会重复请求模型转换向量:
-
embedding:相当于一个“桥梁” —— 翻译:把图片,文字,视频以及音频全部转换为数字,并且包含了数据的信息,使得大模型都能”懂“,能利用这些数字去做训练和推理。
-
向量:向量本身是一组数字,但是在几何上,向量的各个数字组成了多维的数组空间,向量的每个维度代表该空间的·一个不同的特征或者属性。
-
向量数据库:专门用于存储和管理向量数据的数据库,能对向量数据进行高效的操作。
代码实现
-
通过环境变量设置 API Token,以及相关依赖的导入:
2.处理源文档,将其切片处理:
3.如果数据存在,则加载使用,如果不存在,则写入:
4.将向量数据库中检索到的文本片段以及提示词组成为 prompt,向大模型获取返回信息:
运行结果示例
推荐学习