Skip to content

Completions (FIM)

接口:

text
POST /v1/completions

SDK:

python
client.completions.create(...)

OpenAI Completions 接口,当前主要用于 FIM(Fill-In-the-Middle)代码补全。

FIM 是什么

FIM 让模型在已有代码的中间位置生成补全内容。通过同时提供 prompt(前缀代码)和 suffix(后缀代码),模型会生成两者之间的缺失部分。

典型场景:代码编辑器中的行间补全、函数体补全、补全被删掉的代码块。

请求字段

字段类型必填说明
modelstring使用 /v1/models 返回的模型 ID,需支持 FIM(见下方模型列表)
promptstring前缀代码
suffixstring后缀代码,FIM 补全时传入
max_tokensnumber最大输出 token 数
temperaturenumber采样温度
top_pnumber核采样参数
streambooleantrue 时返回 SSE
stream_options.include_usageboolean流式输出结束时包含 usage
stopstring/array停止序列
echoboolean在输出中回显 prompt

响应字段

非流式返回 OpenAI text_completion 对象:

字段说明
id请求 ID
objecttext_completion
model实际响应模型
choices[].text补全文本
usagetoken 用量

流式返回 text_completion.chunk SSE,最后一帧为:

text
data: [DONE]

支持的模型

只有具备 supports_fim_completion 能力的模型才能使用此接口。可以通过 /v1/model-catalog 查看模型能力。

当前支持 FIM 的模型示例:

模型 ID说明
deepseek-v4-flashDeepSeek V4 低延迟模型
deepseek-v4-proDeepSeek 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如传入,必须为正数

OpenAI-compatible API documentation.