在使用OpenAI的ChatGPT API时,理解API请求和响应的结构非常重要。
API请求:
一个API请求是由用户发送给OpenAI的,请求使用OpenAI的服务。当调用ChatGPT API时,你会发送一个包含特定参数的请求。这些参数通常包括:模型名称,消息列表等。
一个典型的请求如下:
python
response = openai.ChatCompletion.create(
model="gpt-4.0-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who won the world series in 2020?"},
]
)
在这个请求中,model 参数设定了使用的模型,messages 参数是一个字典列表,每个字典代表一个消息。每个消息都有一个 role(可以是 "system"、"user" 或 "assistant")和一个 content(消息的内容)。
API响应:
一旦OpenAI收到你的请求,它会处理这个请求,然后返回一个响应。响应包含了OpenAI生成的结果,以及一些元信息。
一个典型的响应如下:
python
{
'id': 'chatcmpl-2nYZOYPYSTTRi9XxJxMYxSDb1Tiu2',
'object': 'chat.completion',
'created': 1677649420,
'model': 'gpt-4.0-turbo',
'usage': {'prompt_tokens': 56, 'completion_tokens': 31, 'total_tokens': 87},
'choices': [
{'message': {
'role': 'assistant',
'content': 'The Los Angeles Dodgers won the World Series in 2020.',
'finish_reason': 'stop'
},
'finish_reason': 'stop',
'index': 0
}
]
}
在这个响应中,choices 字段包含了模型生成的消息列表,每个消息都有一个 role(总是 "assistant")和一个 content(消息的内容)。如果你只对模型的回答感兴趣,你可以通过 response['choices'][0]['message']['content'] 来获取。
除此之外,响应还包含了一些元信息,例如 usage 字段显示了这次请求使用了多少令牌(token)。在计算使用的OpenAI服务的费用时,这个信息是非常有用的。
理解API请求和响应的结构可以帮助你更有效地使用OpenAI的服务,并处理可能出现的错误和问题。