DeepSeekAPI三种文本生成方式:对话补全ChatCompletion、补全Completion、FIM补全Fill-in-Middle的区别

deepseek zhaosay 58℃

1.对话补全(ChatCompletion)

适用场景:多轮对话、聊天机器人、交互式问答。

特点

输入和输出以消息列表(messagelist)的形式组织,包含role(角色:systemuserassistant)。

模型会结合上下文进行回复,适合连续对话。

可以设定system指令来调整模型行为。

示例

请求

response=client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role":"system","content":"你是一个乐于助人的助手。"},
{"role":"user","content":"Python如何读取文件?"}
]
)

的输出

"在Python中,可以使用`open()`函数读取文件,例如:\npython\nwithopen(file.txt,r)asf:\ncontent=f.read()\n"

2.补全(Completion)

适用场景:单次文本生成,如续写文章、代码、摘要等。

特点

输入是纯文本(没有角色区分),模型基于前面的内容继续生成。

适用于非对话式任务,如写作、代码补全等。

示例

请求

response=client.completions.create(
model="deepseek-completion",
prompt="人工智能的未来发展趋势包括:",
max_tokens=100
)

的输出

"人工智能的未来发展趋势包括:更强大的自然语言处理能力、AI与物联网(IoT)的深度融合、自主决策系统的广泛应用,以及AI在医疗、金融等领域的深入应用。"

3.FIM补全(Fill-in-Middle,中间填充补全)

适用场景:代码或文本的中间补全,如修复代码片段、填充缺失部分。

特点

输入分为前缀(prefix)后缀(suffix)和可选的中间部分(middle)

模型会在中间位置生成合理的内容,适用于代码补全文本修复

示例

请求(假设我们想让模型补全____部分):

response=client.fim_completions.create(
model="deepseek-fim",
prefix="deffactorial(n):\nifn==0:\nreturn1\n____",
suffix="\nprint(factorial(5))输出120"
)

的输出(补全____部分):

"else:\nreturnn*factorial(n-1)"

终代码

deffactorial(n):
ifn==0:
return1
else:
returnn*factorial(n-1)
print(factorial(5))输出120

总结对比

功能 适用场景 输入结构 示例
对话补全(Chat Completion) 多轮对话、聊天机器人 messages(含 system/user/assistant 交互式问答
补全(Completion) 单次文本续写 纯文本 prompt 文章、代码续写
FIM 补全(Fill-in-Middle) 中间填充(代码/文本修复) prefix + suffix(可选 middle 补全缺失代码

转载请注明:三五二萌文网 » DeepSeekAPI三种文本生成方式:对话补全ChatCompletion、补全Completion、FIM补全Fill-in-Middle的区别

喜欢 (0)