一个复杂的应用 是通过多个chain 串联 选择判断 运行的 使用统一的数据处理 更规范
Data Connection 数据流介绍
-
Source 数据来源
- 文字 代码
- 载体
- github
- youtube
- 各种blog网站
- doc文档
-
Load 文档数据加载能力
- Document loader
- 视频 代码的量很大 无法将所有的数据换换成一个embedding向量
-
Transform
- 数据格式化、处理 切割成我们要的形式
- 例如将文章内容 转换成一段段
- Document Transforms
-
Embed
- Text
- 注意 数据的颗粒度
-
Store 存储向量
-
Retrieve 检索
Document Loaders: 快速接入各类数据源
数据格式
- CSV
- HTML
- JSON
- Markdown
- File Directory
- •...
代码剖析
BaseLoader and Document Class
BaseLoader基类
- load返回一个doc的列表
- load_and_split 将文档加载后 切割
DOcument基类
- 跟前面# OpenAI-Translator BOOK类 有点类似
Document Transformers: 原生数据转换模块
Text Embedding Models: 文本嵌入模型
支持的embeding模型
Vector Stores: 向量数据库
向量数据库的列表
注意问题
同一个单词 使用不同的embeding model 进行处理 可能出现不一样的向量
所以存储 和读取 需要使用同一个embeding model
embeding model 其实就是一个桥梁 自然语言 转换成 向量 大模型可以识别
整体流程
最佳实践的方法
mysql可以通过一些计算公式 抽取数据 因为这是标量数据
检索模式
- 余弦相似度
- 欧氏距离
根据问题 找到相关的数据
Retrieves: 数据检索器
数据检索器的列表