在本文中,我将向大家介绍如何为你的GPT应用添加具有"记忆"功能。通过这种方式,你可以使你的GPT应用能够记住对话的上下文,从而更加智能地回答用户的问题。
接口分析
当我们发送消息时,通常会使用OpenAI提供的createChatCompletion
SDK或调用https://api.openai.com/v1/chat/completions
接口来获取GPT的响应。然而,如果你只是简单地将当前用户的提问作为请求参数传递给接口,GPT只会返回当前问题的响应,它本身没有存储上下文的能力。
然而,在真实的聊天场景中,与你聊天的人通常会知道对话的上下文。要使GPT更加智能,我们需要考虑这个因素。OpenAI团队也意识到了这一点,并在createChatCompletion
接口的参数中提供了解决方案。
我们可以事先定义角色信息和具体的问答案例,将其作为上下文提供给GPT参考。
要实现GPT的"记忆"功能,我们只需记录用户与GPT之间的聊天记录,并在用户下次发送消息时,将之前的聊天记录与新消息一同作为createChatCompletion
接口的messages
参数传递进去。
现在,我们开始实战部分!
GPT Terminal实战
存储方案
首先,我们需要确定一个存储方案来记录用户与GPT的聊天记录。在GPT Terminal项目中,我使用了LocalStorage前端存储技术和Pinia状态管理框架来实现这个功能。
下面是一段示例代码,用于定义存储方案:
import {
defineStore } from "pinia";
interface Message {
name: string;
role: string;
content: string;
}
export const useMessagesStore = defineStore("messages", {
state: