背景
最近 Chatgpt 的推迟和相关应用业务的火爆, 需要让我们也必须跟上脚步, 不管是开发上还是业务上都必须对当期 AI 的能力有所了解, 并且开始探索也应用.
探索应用场景
内部成立的 gpt 的实验项目, 恰巧当时我也开始思考了一些, 所以给出了应对 “请假” 这个内部系统场景的方案.
用户的自然语言 -> 通过数据抽取 -> 程序语言(可执行代码/数据结构)
因为要和现有业务规则融合, 我们选择申请一个助理机器人作为 AI 的入口
优势
- 独立原有的业务项目, 可以独立添加一个入口, 也意味着可以独立下掉(对未来政策的担心)
- 更接近我们的目标, Jarvis
初次获取数据场景
将 “我下周一请半天假” 转为 JSON 结构返给业务程序
{ |
prompt
请开启一个新会话,不要和之前内容关联 |
对现有数据修改的场景
- 获取到上一次解析出的 JSON, 并作为参考,让 gpt 修改. 这样做可以保证我们 prompt 的 token 数量是一定的. 不会持续的增加. 又能让用户和机器人进行多轮的对话
原有 prompt 里,这句话是重点
如果提供了当前数据,则在当前数据基础上重新提取后返回新 JSON 对象。
针对复杂场景的引导方案
有些场景 gpt 无法根据 prompt 来返回预期的解析内容
有些难点
- prompt 的修改难度比较大
- 规则逻辑可能本身就很复杂,即使给出一些示例, gpt 依然无法严格执行
我么需要借鉴现在很多主流项目的方案:
引导 gpt 对输入进行分析, 比如先让 gpt 根据输入思考下依赖什么信息, 带上依赖的信息进行最终的询问. 用程序和 gpt 直接多轮的对话来获取最终比较准确的答案.
这个是参考 MS 的 Jarvis 项目. 他说将用户的任务先让 gpt 进行任务拆分, 拆分出依赖的子任务. 然后去各自询问子任务的结果, 等依赖任务都得到结果后再按顺序执行任务, 以得到最终的结果
问题分析
当 gpt 对某个 case 的输入理解不正确的时候, 我们可以
请一步一步进行分析,并详细给出解释. 下面是你需要处理的文本:我明天要请个假,想回趟家
看到 gpt 的具体分析过程, 也就能大致判断出我们 prompt 哪里让他误解,或者他没明白,没记住. 也是我们后续可以让他推理的方向