一、RAG的基本原理
RAG是一种结合知识检索和语言生成的人工智能技术,主要解决大语言模型幻觉问题
1. 传统 LLM 的缺陷?
答案:消息滞后(无法获取最新的知识)
2.RAG 的原理是什么?
答案:先将问题基于知识库检索问题相关的上下文,然后在将问题和上下文结合送入大模型回答
3.RAG 解决什么问题?
答案:大模型幻觉问题
二、RAG知识库构建的基本流程
一、支持的素材类型规格表
| 素材类型 | 支持格式 | 核心适用场景 | 对应案例 |
|---|---|---|---|
| 文档类型 | PDF、Word、TXT | 攻略文章、教程文档类内容 | 英雄攻略 PDF |
| 表格类型 | Excel、CSV | 结构化数据、统计信息类内容 | 英雄属性表 |
| 照片类型 | JPG、JPEG、PNG | 图像生成相关场景 | 英雄战斗画面 |
二、文档预处理核心建议
- 内容清理:去除文档中的广告、水印等无关内容
- 分类整理:按主题维度对文档进行分类规整
- 命名规范:文件命名需包含核心关键信息,保证命名的规范性与可识别性
三、知识库构建:文档切片
文档切片的目的是为了适应大语言模型的上下文长度限制,并提升检索的精确度和效率。
切分方式
表格:三种切分方式对比
| 编号 | 方式 | 说明 |
|---|---|---|
| ① | 按字符数切分 | 固定长度(如每300字一段) |
| ② | 按符号切分 | 按照句号、换行符、感叹号等 |
| ③ | 按语义切分 | 识别主题变化点智能切分 |
一般选择方式
按照符号和字符长度一块切分:一般200-500字/段。
长度太小,上下文不完整,检索不准;长度太大,无关信息过多,干扰判断。
四、知识库构建:文档向量化
文档向量化:将切分后的文本进行向量数字化,便于计算问题和文档的相似性。
什么是向量化?
将文本转换为向量表示,示例如下:
| 内容 | 向量 |
|---|---|
| "问题:盲僧Q技能" | [0.8, 0.6, ...] |
| 文档1:"烹饪技巧" | [0.1, 0.8, ...] |
| 文档2:"盲僧出装" | [0.7, 0.5, ...] |
向量化后,语义相近的内容在向量空间中的夹角更小。通过余弦相似度算法计算拟合,相似度高的向量指向更接近的方向。
向量化作用
- 语义理解
- 相似度计算
- 快速检索
五、复习
1. RAG知识库构建的主要流程?
文档准备 --> 文档切分 --> 文档向量化
2. 文档为什么要切片?
为了适应大语言模型的上下文长度限制,并提升检索的精确度和效率。
3. 文档向量化原因?
文本进行向量数字化,便于计算问题和文档的相似性。
三、创建LOL攻略知识库RAG并且运用
基本操作步骤如下:
表格:创建知识库步骤
| 步骤 | 操作 | 说明 |
|---|---|---|
| Step 1:进入资源库 | Coze → 左侧菜单 → 资源库 | 打开平台资源管理入口 |
| Step 2:创建知识库 | 资源 → 知识库 → 命名LOL攻略库 | 新建并命名知识库 |
| Step 3:上传文件 | 拖拽/上传文件 → 支持批量上传 | 将攻略文档导入知识库 |
| Step 4:文档切块 | 自动切块 → 300/500字 | 按段落长度自动切分文档 |
| Step 5:向量化预处理 | 分段预处理 | 对切分后的文本进行向量化 |
| Step 6:查看结果 | 预览文本处理的效果 | 检查知识库构建结果 |
环节2:让 Bot 应用知识库
操作步骤如下:
表格:Bot应用知识库步骤
| 步骤 | 操作 | 说明 |
|---|---|---|
| Step 1:进入Bot | Coze → 创建 → 智能体 | 在平台创建新的智能体 |
| Step 2:构建提示词 | 明确角色 → 说明功能 → 规范回复格式 | 编写Bot的提示词 |
| Step 3:选择知识库 | 编排模块 → 知识库 → 点击"添加知识库" | 将知识库关联到Bot |
| Step 4:结果验证 | 调试 → 输入问题 → 验证结果 | 测试Bot的回答效果 |
实现LOL游戏助手的过程
- 上传文件
- 文档切分
- 文档向量化
- 存储知识库
- 问题检索知识库
- 获取相关上下文
- 问题和上下文融合
- 送入LLM
- 得到预测结果