大家在玩ChatGPT时肯定会留意到它还蛮有记忆力的,上下文的东东它都能记住。在这样的情况下,交互起来会有意思很多。那么,ChatGPT是如何获取上下文的呢?
看一下它的API是如何调用的,如下所示:
const completion = await openai.createChatCompletion({
model: "gpt-3.5-turbo",
messages: [{role: "user", content: "Hello world"}],
})
ChatGPT的两个主要参数,一个是模型,一个是输入的参数(messages),上下文的环境肯定是在输入的参数里啰。再看一个输入的实例:
messages = [
{ 'role': 'user', 'content': '你好。 今天是多云天气' },
{ 'role': 'assistant', 'content': '你好。 我很抱歉听到不幸的天气' },
{ 'role': 'user', 'content': '是的,是这样。 不过我很好。' },
{ 'role': 'assistant', 'content': '我希望如此。 让我们继续今天的工作吧!' },
{ 'role': 'user', 'content': '是的。 哦,顺便问一下,我是怎么说今天的天气的?' },
{ 'role': 'assistant', 'content': '今天是阴天' }
]
在以上的参数中可以明显看到对话中的语境功能,原来它都是存入这个message的数组中的!很好,我们只要在输入时也打包成它这样的数据格式,传入ChatGPT的接口就可以得到交互的语境了,是不是还蛮酷的?!