构建AI问答系统
AI是神经网络,本身没有记忆,因此我们需要为AI构建一个记忆系统。这样才能让AI更准确地回答用户问题。
为了让AI能够准确回答用户问题,我们需要将与问题相关的内容搜索出来,并将其与问题拼接起来,然后传递给GPT。这样,GPT就能够比较准确的回答问题,其实每次问答对于GPT来说只是一个文字接龙游戏。
需要注意的是,GPT3.5的接口每次只能接受大约2000个汉字。如果拼接的记忆内容太多,将会占用回答内容的空间,而且接口成本是按字数扣钱的。
记忆系统分为两部分:
短期记忆
短期记忆通常指会话上下文。最简单的方法是将规定次数的对话记录下来。机器人的上下文规则是,针对用户存储上下文,无论是私聊还是不同的群聊,都属于同一个会话。这会产生两个问题:
私聊内容可能会在群聊中作为上下文出现。当然,机器人通常不会将之前的问题和回答复述出来,因此极少出现隐私泄露问题。
目前只能将固定数量的会话作为上下文补充进去接口。无论前文是否相关,调用时候直接拼接,导致成本翻倍,回答速度也会受到一定影响。
长期记忆
长期记忆实际上是将文档文本内容切成片段,每次接口调用时,根据问题进行相关性检索,然后将内容接近的文档补全到接口参数上。GPT就会根据相关内容作为事实依据回答问题。
构建长期记忆的步骤如下:
将信息切片,将长文本自动切成合适大小的片段。
进行语义转换,将信息转化成可以模糊检索的信息。语义转换过程需要调用API,消耗一定费用(目前可忽略)。
进行搜索拼接。每次提问都会进行搜索,然后将可能有用的信息汇总起来,供AI根据信息进行回答。
以上就是AI问答系统搭建的简单原理。

