开发OpenAI对话工具的细节问题

看到很多用OpenAI开发对话功能的例子,发现都存在问题,影响了产品的效果。所以写了这篇短文,希望对大家有帮助。

调用过程中,不携带上下文信息

绝大多数外面开放的聊天对话产品,都没有携带上下文信息,一般代码如下:

import openai
import os

# 从OpenAI网站上获取API密钥
openai.api_key = os.environ["OPENAI_API_KEY"]

# 设置模型ID
model_engine = "text-davinci-003"

# 设置要提问的问题
question = "你的问题"

# 调用OpenAI的chat函数
response = openai.Completion.create(
    engine=model_engine,
    prompt=(f"Q: {question}\nA:"),
    max_tokens=1024,
    n=1,
    stop=None,
    temperature=0.7,
)

# 输出答案
print(response.choices[0].text.strip())

看出这段代码的问题没有?完全没有携带对话的上下文信息,这样会导致每个聊天对话都是独立的,你想延续上文继续进行对话,发现根本不是你要的结果。

了解了这些,聪明的你肯定知道应该如何写携带上下文的正确的代码了,大致代码如下:

import openai
import os

# 从OpenAI网站上获取API密钥
openai.api_key = os.environ["OPENAI_API_KEY"]

# 设置模型ID
model_engine = "text-davinci-003"

# 设置要提问的问题
question = "这次的问题"

# 调用OpenAI的chat函数
response = openai.Completion.create(
    engine=model_engine,
    prompt=(f"Q:上几次聊天的内容\nA:上几次Chat GPT的回答。\nQ: {question}\nA:"),
    max_tokens=1024,
    n=1,
    stop=None,
    temperature=0.7,
)

# 输出答案
print(response.choices[0].text.strip())

你可以根据实际情况,传递多少次对话的上下文进去。

当然了,传递的越多,token会消耗越多,价格也越贵。建议选择一个合适的对话次数即可。

欢迎更多的朋友参与讨论(OpenAI交流区)如何使用OpenAI进行产品开发。

你可能感兴趣的:(NLP,python,自然语言处理)