openai版本==1.6.1
本系列博客源码仓库:gitlab,本博客对应文件夹05
一、参数解析
在前面的博客中,我介绍了completions接口,但实际上OpenAI1.6.1还提供了一个chat.completions接口。chat.completions接口相比completions接口有一些不同,主要体现为以下4点:
-
模型支持不同:
- chat.completions接口提供了一些特定的模型支持,包括
gpt-4-1106-preview
、gpt-4-vision-preview
等。 - completions接口也提供了一些特定的模型支持,如
babbage-002
、davinci-002
、gpt-3.5-turbo-instruct
等。
- chat.completions接口提供了一些特定的模型支持,包括
-
方法返回类型:
- chat.completions接口在重载的
create
方法中返回ChatCompletion
或Stream[ChatCompletionChunk]
,这表明它可能用于聊天机器人场景,处理对话消息并生成相应的回复。 - completions接口的create方法返回
Completion
或Stream[Completion]
,这表明它用于生成一般的文本完成。
- chat.completions接口在重载的
-
参数细节:
- chat.completions接口的
create
方法参数包括messages
,这表明它处理的是对话消息列表,而不是单一的提示(prompt)。 - completions接口的
create
方法参数包括prompt
,这是用于生成文本完成的起始文本。
- chat.completions接口的
-
响应格式:
- chat.completions接口的
response_format
参数允许用户指定模型输出的格式,例如 JSON 对象。
- chat.completions接口的
总的来说,chat.completions接口更加适合对话场景。completions接口则适用于一般的文本任务。
messages
相比completions接口,chat.completions接口的 create
方法参数包括 messages
,这表明它处理的是对话消息列表,而不是单一的提示(prompt)。
-
在messages参数中,role这个字段一共有三个角色可以选择,其中system代表系统,user代表用户,而assistant则代表AI的回答。
-
当role是system的时候,content里面的内容代表我们给AI的一个指令,也就是告诉AI应该怎么回答用户的问题。
-
而当role是user的时候,content里面的内容就代表用户和AI对话的内容。
-