我们访问大模型服务时,很大程度上会调用 OpenAI 的 client.chat.completions.create
方法,适用于生成对话补全(如GPT模型),下面讲解该方法的参数。
1. 必需参数
-
model
(字符串) :指定使用的模型,如gpt-3.5-turbo
,gpt-4
,gpt-4-turbo
等。 -
messages
(字典列表) 对话历史,每个字典包含:role
:角色(system
,user
,assistant
,tool
)、content
:消息内容(或调用工具时的tool_call_id
)、name
:(可选)参与者名称、tool_calls
(可选)模型请求调用工具时使用示例:
messages=[ {"role": "system", "content": "你是一个助手"}, {"role": "user", "content": "你好!"} ]
2. 常用可选参数
-
temperature
(浮点数, 默认1
) 。控制输出的随机性:0
(确定性强)到2
(更随机)。 建议:回答事实性问题用较低值(如0.2
),创意生成用较高值(如0.8
)。 -
top_p
(浮点数, 默认1
) 。基于概率质量的动态截断(如0.9
表示仅考虑前90%概率的 token)。 注意:与temperature
二选一,避免同时设置。 -
max_tokens
(整数, 默认无限制) 。生成内容的最大 token 数(受模型上限限制,如gpt-3.5-turbo
默认为4096)。 -
n
(整数, 默认1
) 。生成多少条回复选项。 -
stop
(字符串或字符串列表, 默认None
) 。设置停止词,遇到这些词时停止生成(如stop=["\n"]
)。 -
presence_penalty
(浮点数, 默认0
) 。惩罚重复的主题:正值减少重复,负值增加重复(范围:-2.0
到2.0
)。 -
frequency_penalty
(浮点数, 默认0
) 。惩罚重复的token:正值减少重复,负值增加重复(范围同上)。 -
stream
(布尔值, 默认False
) 。是否流式传输响应(逐块返回,适合实时聊天)。 -
user
(字符串) 。终端用户标识符,用于监测滥用行为。
3. 高级参数
-
logit_bias
(字典, 默认None
) 。调整特定 token 的生成概率(如{1234: 2.0}
将token ID 1234的权重增加2)。 -
response_format
(字典) 。指定响应格式,如{"type": "json_object"}
强制返回 JSON(需在系统消息中说明格式)。 -
tools
(字典列表) 。定义模型可调用的工具列表(替代旧版functions
参数),需描述工具名称、参数等。 -
tool_choice
(字符串或字典) 。控制模型是否/如何调用工具:"auto"
(默认由模型决定)、"none"
(不调用)或指定工具。
4. 示例代码
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": "解释人工智能是什么"}
],
temperature=0.5,
max_tokens=300,
top_p=0.9,
stream=False
)
print(response.choices[0].message.content)