deepseek api参数详解

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

  • 作用:指定输出格式(目前仅支持 jsontext)。
  • 示例
    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 设定随机种子,确保相同输入返回相同结果