如何使用 OpenAI gpt-3.5-turbo API 维护上下文?

All*_*ang 7 openai-api

我认为用户参数正在完成这项工作。但它不起作用\xe2\x80\x99。

\n

https://platform.openai.com/docs/api-reference/chat

\n

在此输入图像描述

\n

Joh*_*000 8

您需要重新提供之前的回复以保持上下文。(用户参数仅供 OpenAI 监控滥用)。请记住,它是一个完成人工智能,这意味着它只能接受输入并给出输出。为了维护上下文,您需要输入上下文。

另外,请记住,新模型gpt-3.5-turbo处理信息的方式与达芬奇模型不同。

达芬奇输入是这样的:

//import and configure...

const response = await openai.createCompletion({
  model: "text-davinci-003",
  prompt: "Say this is a test",
  temperature: 0,
  max_tokens: 7,
});
Run Code Online (Sandbox Code Playgroud)

而gpt-3.5-turbo模型是这样的:

//import and configure...

const response = await openai.createCompletion({
  model: "gpt-3.5-turbo",
  messages: [
        {role: "user", content: "Say this is a test"},
      ],
  temperature: 0,
});
Run Code Online (Sandbox Code Playgroud)

所以有点不同。如果你想重新输入上下文,你需要在“消息”中创建一个输入字段 - 像这样......

//import and configure...

const message = "${<user input>}"
const context = "${<user previous messages if any, else empty>}"

const response = await openai.createCompletion({
  model: "gpt-3.5-turbo",
  messages: [
        {role: "system", content: `${context}`},
        {role: "user", content: `${message}`},
      ],
  temperature: 0,
});
Run Code Online (Sandbox Code Playgroud)

“系统”角色是针对上下文的,因此 gpt 知道主要响应用户输入而不是系统输入。这也是一个有用的字段,用于作为用户提示的前导,仅供参考。

希望有帮助。