1.对话补全(ChatCompletion)
适用场景:多轮对话、聊天机器人、交互式问答。
特点:
输入和输出以消息列表(messagelist)的形式组织,包含role
(角色:system
、user
、assistant
)。
模型会结合上下文进行回复,适合连续对话。
可以设定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的区别