Appearance
Completions (FIM)
接口:
text
POST /v1/completionsSDK:
python
client.completions.create(...)OpenAI Completions 接口,当前主要用于 FIM(Fill-In-the-Middle)代码补全。
FIM 是什么
FIM 让模型在已有代码的中间位置生成补全内容。通过同时提供 prompt(前缀代码)和 suffix(后缀代码),模型会生成两者之间的缺失部分。
典型场景:代码编辑器中的行间补全、函数体补全、补全被删掉的代码块。
请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 使用 /v1/models 返回的模型 ID,需支持 FIM(见下方模型列表) |
prompt | string | 是 | 前缀代码 |
suffix | string | 否 | 后缀代码,FIM 补全时传入 |
max_tokens | number | 否 | 最大输出 token 数 |
temperature | number | 否 | 采样温度 |
top_p | number | 否 | 核采样参数 |
stream | boolean | 否 | true 时返回 SSE |
stream_options.include_usage | boolean | 否 | 流式输出结束时包含 usage |
stop | string/array | 否 | 停止序列 |
echo | boolean | 否 | 在输出中回显 prompt |
响应字段
非流式返回 OpenAI text_completion 对象:
| 字段 | 说明 |
|---|---|
id | 请求 ID |
object | text_completion |
model | 实际响应模型 |
choices[].text | 补全文本 |
usage | token 用量 |
流式返回 text_completion.chunk SSE,最后一帧为:
text
data: [DONE]支持的模型
只有具备 supports_fim_completion 能力的模型才能使用此接口。可以通过 /v1/model-catalog 查看模型能力。
当前支持 FIM 的模型示例:
| 模型 ID | 说明 |
|---|---|
deepseek-v4-flash | DeepSeek V4 低延迟模型 |
deepseek-v4-pro | DeepSeek V4 高质量模型 |
示例
curl: FIM 代码补全
bash
curl https://llm.xiaoyue9527.xyz/v1/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk-gtw-REPLACE_ME' \
--data-raw '{
"model": "deepseek-v4-flash",
"prompt": "def fibonacci(n):\n ",
"suffix": "\n return result",
"max_tokens": 256,
"temperature": 0
}'Python SDK: FIM 补全
python
from openai import OpenAI
client = OpenAI(
base_url="https://llm.xiaoyue9527.xyz/v1",
api_key="sk-gtw-REPLACE_ME",
)
response = client.completions.create(
model="deepseek-v4-flash",
prompt="def fibonacci(n):\n ",
suffix="\n return result",
max_tokens=256,
temperature=0,
)
print(response.choices[0].text)Python SDK: 流式 FIM
python
stream = client.completions.create(
model="deepseek-v4-flash",
prompt="def fibonacci(n):\n ",
suffix="\n return result",
max_tokens=256,
stream=True,
stream_options={"include_usage": True},
)
for chunk in stream:
if chunk.choices and chunk.choices[0].text:
print(chunk.choices[0].text, end="", flush=True)边界
| 边界 | 说明 |
|---|---|
| 模型能力 | 不支持 FIM 的模型会返回 unsupported_feature 错误 |
| prompt 必填 | prompt 不能为空 |
| max_tokens | 如传入,必须为正数 |