deepseek的参数与openai保持兼容,所以openai能用的参数deepseek都可以使用,以下是常用的参数介绍。
在使用 Deepseek/OpenAI 的 Python API 时,最常用的 API 端点是 chat/completions
,用于调用 deepseek 生成文本对话内容。以下是 openai.ChatCompletion.create()
方法的主要参数及其作用:
1. model
- 作用:指定使用的模型。
- 示例值:
model="deepseek-chat"
- 支持的模型:
"deepseek-chat"
- "deepseek-reasoner"
- 其他 deepseek 支持的模型
2. messages
-
作用:提供对话上下文(历史聊天内容)。
-
格式:列表,每条消息是一个字典,包含:
role
(角色):必须是"system"
、"user"
或"assistant"
。content
(内容):具体的文本内容。
-
示例:
messages=[ {"role": "system", "content": "你是一个字幕翻译助手"}, {"role": "user", "content": "请翻译这段字幕文件:\n1\n00:00:00,000 --> 00:00:02,000\nHello, world!"} ]
-
角色说明:
system
:设定 AI 的行为和规则。user
:用户的输入内容。assistant
:AI 生成的回复。
3. temperature
-
作用:控制输出的随机性,范围
[0, 2]
。 -
推荐使用范围:
temperature=0.0
:答案最稳定,一致性最高(适用于代码生成、精准翻译)。temperature=0.7
(默认值):较平衡的创造性和稳定性。temperature=1.5
及以上:更加随机和创新,适用于创意写作。
-
示例:
temperature=0.7
4. top_p
-
作用:控制概率采样,范围
[0, 1]
,一般与temperature
互斥使用。 -
说明:
top_p=1.0
(默认值):不限制采样范围。top_p=0.9
:仅从累积概率前 90% 的词中选择(减少随机性)。- 一般建议调整
temperature
,保持top_p=1
。
-
示例:
top_p=0.9
5. n
-
作用:指定返回的回答数量(默认
n=1
)。 -
说明:
n=1
(默认):仅返回一个回复。n=3
:返回 3 个不同的回复,可用于选择最佳答案。
-
示例:
n=2
6. max_tokens
- 作用:限制返回文本的最大 token 数,防止超长回答消耗过多 token。
- 说明:
- 如果
max_tokens=None
,API 将自动计算最优值。 - 受 模型 token 限制 影响(GPT-4 Turbo 约 128K tokens)。
- 示例:
max_tokens=1000
- 如果
7. stop
- 作用:设置停止生成的标识符,可以是一个字符串或字符串列表。
- 说明:
- 如果模型输出中出现
stop
设定的字符串,则停止生成。 - 示例:
stop=["\n\n"]
- 如果模型输出中出现
8. presence_penalty
-
作用:控制重复内容的出现,值范围
[-2.0, 2.0]
。 -
说明:
- 负值(如
-1
):降低重复内容的惩罚,更倾向于保持相同内容。 - 正值(如
1.5
):鼓励引入新词,减少重复。
- 负值(如
-
示例:
presence_penalty=0.6
9. frequency_penalty
-
作用:减少重复单词或短语的频率,值范围
[-2.0, 2.0]
。 -
说明:
frequency_penalty=0.0
(默认):不做额外处理。frequency_penalty=1.0
:减少高频词的重复。
-
示例:
frequency_penalty=0.5
10. logit_bias
-
作用:控制特定 token(词)的生成概率。
-
格式:
logit_bias={"50256": -100}
- 这里
50256
是 GPT 模型的特殊 token ID,-100
表示完全抑制该 token。
- 这里
-
用途:
- 限制某些词的生成(如避免生成某些不想要的内容)。
- 强制使用某些特定词(设置较高的正值)。
11. stream
-
作用:是否以流式方式返回数据(默认
False
)。 -
说明:
stream=False
(默认):返回完整的响应。stream=True
:逐步返回 token,适用于实时聊天或字幕生成。
-
示例:
stream=True
12. response_format
- 作用:指定输出格式(目前仅支持
json
和text
)。 - 示例:
response_format="json"
13. seed
-
作用:设置随机种子,使相同输入的响应更稳定。
-
说明:
seed=None
(默认):每次调用结果可能不同。seed=42
:使用相同种子时,相同输入返回相同结果。
-
示例:
seed=42
API 调用完整示例
import openai
response = openai.ChatCompletion.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "你是一个专业的字幕翻译助手"},
{"role": "user", "content": "请翻译这段字幕:\n1\n00:00:00,000 --> 00:00:02,000\nHello, world!"}
],
temperature=0.7,
max_tokens=500,
top_p=0.9,
n=1,
presence_penalty=0.6,
frequency_penalty=0.5,
stream=False
)
print(response["choices"][0]["message"]["content"])
总结
参数名 | 作用 |
---|---|
model |
选择使用的 模型 |
messages |
传入的对话历史,包含 system、user、assistant 角色 |
temperature |
影响回答的随机性(0.0 最稳定,1.5 更自由) |
top_p |
影响采样范围(与 temperature 互斥) |
n |
生成多个回答以供选择 |
max_tokens |
限制返回内容长度 |
stop |
设置停止生成的标识 |
presence_penalty |
影响新词的使用概率 |
frequency_penalty |
降低高频词的重复概率 |
logit_bias |
控制特定 token 生成概率 |
stream |
是否启用流式返回 |
response_format |
设定输出格式(json 或 text) |
seed |
设定随机种子,确保相同输入返回相同结果 |