我有一些 ChatGPT API 的用例,我不知道如何处理。
我正在创建Python应用程序,我有一个方法可以创建带有一些指令和一些数据的请求,以便为ChatGPT重写。它看起来像这样(指令和数据只是本示例中的一些示例):
openai.ChatCompletion.create(
model="gpt-3.5-turbo",
temperature=0.6,
messages=[
{
"role": "system",
"content": """
You are journalist who creates title and article content based on
the provided data. You also choose category from list: World,
Technology, Health and create 3 tags for article.
Your response is always just JSON which looks like this example
structure:
{
"title": {{insert created title}},
"category": {{insert category}}
"content": {{insert article content}}
"tags": {{insert tags as list of strings}}
}
"""
},
{
"role": "user",
"content": """
Title and article content to rewrite:
title: {}
content: {}
""".format(title, content)
}
]
)
提供的文章内容可能非常长,如果是这样并且达到模型限制,那么我的响应有时是好的 JSON,创建的内容非常短,有时它只是损坏的 JSON,因为由于令牌限制,内容尚未完成。
我已尝试将响应传递给另一个请求,但仍达到限制。
尝试为 GPT 提供一个缩小的 JSON 示例,即
{"role":"user","content":""}
而不是
{
"role": "user",
"content": ""
}
这样,GPT 就不会因为给你不必要的空格和换行符而吃掉代币。
否则,请按字段属性分解 JSON 并发出单独的完成请求。一旦你分别取回每个属性,你就可以自己形成正确的 JSON 对象。
最后一个选项:使用 GPT-4
很好的解决方法,但仍然没有解决无状态 API 调用一旦达到令牌限制就无法继续的问题。如果没有明确的方法来调用 API get 第 1 部分、第 2 部分、第 3 部分等,那么这对于 API 使用来说将是一个巨大的障碍。尤其是在响应中期望 JSON,如果第 1 部分以标记 4,096 结尾,并且它没有正确的结束字符,JSON 读取器会炸掉。