gpt4 book ai didi

python - 使用 GPT API 创建多消息对话

转载 作者:行者123 更新时间:2023-12-02 22:46:39 26 4
gpt4 key购买 nike

我正在试验 OpenAI 的 GPT API,并学习如何使用 GPT-3.5-Turbo 模型。我在网上找到了一个快速入门示例:

def generate_chat_completion(messages, model="gpt-3.5-turbo", temperature=1, max_tokens=None):
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}",
}

data = {
"model": model,
"messages": messages,
"temperature": temperature,
}

max_tokens = 100

if max_tokens is not None:
data["max_tokens"] = max_tokens

response = requests.post(API_ENDPOINT, headers=headers, data=json.dumps(data))

if response.status_code == 200:
return response.json()["choices"][0]["message"]["content"]
else:
raise Exception(f"Error {response.status_code}: {response.text}")

while 1:
inputText = input("Enter your message: ")

messages = [
{"role": "system", "content": inputText},
]

response_text = generate_chat_completion(messages)
print(response_text)

具有必要的导入以及代码块上方定义的 API key 和端点。我添加了 inputText 变量来获取文本输入和无限 while 循环,以保持输入/响应循环持续,直到程序终止(可能是不好的做法)。

但是,我注意到 API 的响应无法引用对话的先前部分,例如 ChatGPT Web 应用程序(这是正确的,因为我没有提到任何形式的对话对象)。我查阅了关于聊天完成的API文档,对话请求示例如下:

[
{"role": "system", "content": "You are a helpful assistant that translates English to French."},
{"role": "user", "content": 'Translate the following English text to French: "{text}"'}
]

但是,这意味着我必须立即将所有输入的消息发送到对话中,并获取每条消息的响应。我似乎无法找到一种方法(至少如 API 中所描述的那样)发送一条消息,然后返回一条消息,然后以完整对话的格式发送另一条消息,引用以前的消息,如聊天机器人(或如所描述的那样)在 ChatGPT 应用程序之前)。有什么方法可以实现这个吗?

另外:上面没有使用 OpenAI Python 模块。它使用 Requests和 JSON 模块。

最佳答案

我看到了你的问题,希望看到一些答案,因为我有一个类似的问题,即需要多少条先前的消息,因为最终所有这些消息都会加起来并超出限制。唉。

在您的情况下,返回的response_text实际上是一个选择列表,您可以提取响应,然后将其添加到消息数组中,该数组将构建为您的逐步对话。 API 文档示例是其起点。这是一个消息数组,不断添加。你允许它增长到多大是你的下一个问题,毫无疑问它也会增加代币的成本。

关于python - 使用 GPT API 创建多消息对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76025799/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com