1. 使用场景

在 FIM (Fill In the Middle) 补全任务中,用户输入希望保留的前缀和后缀内容,模型根据这些提示生成中间缺失的部分。这种补全方式常见于代码自动补全、文本中段生成等应用场景。

2. 使用方式

在 chat/completions 接口中使用,只需要将 model id 设置为模型广场上的模型 id 即可,在模块卡片的右上角复制。

{ 
    "model": "model id",
    "messages": "prompt",
    "params": "params",
    "extra_body": {"prefix":"前缀内容", "suffix":"可选的后缀内容"}
}

3. 使用示例

from openai import OpenAI

client = OpenAI(
    api_key="sk-***", # 换成你在 AiHubMix 生成的密钥
    base_url="https://aihubmix.com/v1"
)

messages = [
    {"role": "user", "content": "Please write a sum function code"},
]

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=messages,
    extra_body={
            "prefix": f"""
def sum_numbers(numbers):
    # 如果列表为空,返回 0
    if not numbers:
        return 0
""",
            "suffix": f"""
# 测试
numbers = [1, 2, 3, 4, 5]
result = sum_numbers(numbers)
print("Sum of numbers:", result)
"""
    },
    stream=True,
    max_tokens=4096
)

for chunk in response:
    if chunk.choices and len(chunk.choices) > 0 and chunk.choices[0].delta.content is not None:
        print(chunk.choices[0].delta.content, end='')