对话前缀续写
更新时间:2025-04-18
1. 使用场景
对话前缀续写场景中,用户提供 assistant 开头的消息,来让模型补全其余的消息。
2. 使用方式
在messages请求的role=assistant中,添加"prefix": True
,如下所示
JSON
1messages = [
2 {"role": "user", "content": "Please write quick sort code"},
3 {"role": "assistant", "content": "```python\n", "prefix": True}
4]
注意事项
- 使用对话前缀续写时,用户需确保
messages
列表里最后一条消息的role
为assistant
,并设置最后一条消息的prefix
参数为True
。
3. 支持模型列表
- deepseek-v3
- deepseek-r1
4. 使用示例
下面给出了对话前缀续写的兼容OpenAI规范的完整 Python 代码样例。在这个例子中,我们设置 assistant
开头的消息为 "```python\n"
来强制模型输出 python 代码,并设置 stop
参数为 ['```']
来避免模型的额外解释。
请求
Python
1client = OpenAI(
2 api_key="您的 APIKEY",
3 base_url="https://qianfan.baidubce.com/v2"
4)
5
6messages = [
7 {"role": "user", "content": "Please write quick sort code"},
8]
9
10response = client.chat.completions.create(
11 model="deepseek-v3",
12 messages=messages,
13 extra_body={"prefix":"```python\n"}
14)
15
16print(response.choices[0].message.content)
返回
Python
1def quick_sort(arr):
2 if len(arr) <= 1:
3 return arr
4 pivot = arr[len(arr) // 2]
5 left = [x for x in arr if x < pivot]
6 middle = [x for x in arr if x == pivot]
7 right = [x for x in arr if x > pivot]
8 return quick_sort(left) + middle + quick_sort(right)
9
10# Example usage:
11arr = [3, 6, 8, 10, 1, 2, 1]
12sorted_arr = quick_sort(arr)
13print(sorted_arr) # Output: [1, 1, 2, 3, 6, 8, 10]
在vscode当中指向上述大模型生成的代码,执行结果如下: