搭建基于 ChatGPT 的问答系统
- 📣1.简介
- 📣2.语言模型,提问范式和 token
- ✨2.1语言模型
- ✨2.2Tokens
- ✨2.3Helper function辅助函数(提问范式)
- 📣3.评估输入-分类
- 📣4.检查输入-审核
- ✨4.1审核
- ⛳4.1.1 我要杀死一个人
- ⛳4.1.2 一百万美元赎金
- ✨4.2Prompt 注入
- ⛳4.2.1 使用恰当的分隔符
- 4.2.1.1 系统消息
- 4.2.1.2 用户尝试进行 Prompt 注入
- 4.2.1.3 用户再次尝试进行 Prompt 注入
- 4.2.1.4 使用分隔符规避 Prompt 注入
- ⛳4.2.2 进行监督分类
- 4.2.2.1 系统消息
- 4.2.2.2 好样本和坏样本
- 4.2.2.3 模型对用户消息进行分类
- 📣5.处理输入-思维链推理
- ✨5.1思维链提示设计
- ⛳5.1.1 系统消息设计
- ⛳5.1.2 用户消息测试
- 5.1.2.1 更贵的电脑
- 5.1.2.2 你有电视么?
- ✨5.2内心独白
- 📣6.处理输入-链式
- ✨6.1提取产品和类别
- ✨6.2检索详细信息
- ✨6.3生成查询答案
- ⛳6.3.1 解析输入字符串
- ⛳6.3.2 进行检索
- ⛳6.3.3 生成用户查询的答案
- ✨6.4总结
- 📣7.检查结果
- 📣8.搭建一个带评估的端到端问答系统
- ✨8.1端到端实现问答系统
- ✨8.2持续收集用户和助手消息
- 📣9.评估(上)-存在一个简单的正确答案
- ✨9.1找出相关产品和类别名称
- ✨9.2在一些查询上进行评估
- ✨9.3更难的测试用例
- ✨9.4修改指令以处理难测试用例
- ✨9.5在难测试用例上评估修改后的指令
- ✨9.6回归测试:验证模型在以前的测试用例上仍然有效
- ✨9.7收集开发集进行自动化测试
- ✨9.8通过与理想答案比较来评估测试用例
- ✨9.9在所有测试用例上运行评估,并计算正确的用例比例
- 📣10.评估(下)-不存在简单的正确答案
- ✨10.1运行问答系统获得一个复杂回答
- ✨10.2使用 GPT 评估回答是否正确
- ✨10.3评估生成回答与标准回答的差距
- 📣11.总结
📣1.简介
面向想要基于 LLM 开发应用程序的开发者,简洁有效而又系统全面地介绍了如何基于 ChatGPT API 打造完整的对话系统。
📣2.语言模型,提问范式和 token
✨2.1语言模型
✨2.2Tokens
✨2.3Helper function辅助函数(提问范式)
📣3.评估输入-分类
📣4.检查输入-审核
✨4.1审核
⛳4.1.1 我要杀死一个人
⛳4.1.2 一百万美元赎金
✨4.2Prompt 注入
⛳4.2.1 使用恰当的分隔符
4.2.1.1 系统消息
4.2.1.2 用户尝试进行 Prompt 注入
4.2.1.3 用户再次尝试进行 Prompt 注入
4.2.1.4 使用分隔符规避 Prompt 注入
⛳4.2.2 进行监督分类
4.2.2.1 系统消息
4.2.2.2 好样本和坏样本
4.2.2.3 模型对用户消息进行分类
📣5.处理输入-思维链推理
✨5.1思维链提示设计
⛳5.1.1 系统消息设计
⛳5.1.2 用户消息测试
5.1.2.1 更贵的电脑
5.1.2.2 你有电视么?
✨5.2内心独白
📣6.处理输入-链式
✨6.1提取产品和类别
✨6.2检索详细信息
✨6.3生成查询答案
⛳6.3.1 解析输入字符串
⛳6.3.2 进行检索
⛳6.3.3 生成用户查询的答案
✨6.4总结
📣7.检查结果
✨7.1检查有害内容
✨7.2检查是否符合产品信息
📣8.搭建一个带评估的端到端问答系统
✨8.1端到端实现问答系统
✨8.2持续收集用户和助手消息
📣9.评估(上)-存在一个简单的正确答案
✨9.1找出相关产品和类别名称
✨9.2在一些查询上进行评估
✨9.3更难的测试用例
✨9.4修改指令以处理难测试用例
✨9.5在难测试用例上评估修改后的指令
✨9.6回归测试:验证模型在以前的测试用例上仍然有效
✨9.7收集开发集进行自动化测试
✨9.8通过与理想答案比较来评估测试用例
✨9.9在所有测试用例上运行评估,并计算正确的用例比例
📣10.评估(下)-不存在简单的正确答案
✨10.1运行问答系统获得一个复杂回答
✨10.2使用 GPT 评估回答是否正确
✨10.3评估生成回答与标准回答的差距
📣11.总结