Skip to Content
API 参考FIM 补全

1. 使用场景

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

2. 使用方式

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

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

在 completions 接口中使用

{ "model": "model info", "prompt": "前缀内容", "suffix": "后缀内容" }

3. 使用示例

3.1 基于 OpenAI 的 chat.completions 接口使用FIM补全:

from openai import OpenAI client = OpenAI( api_key="sk-***", # 换成你在 CaMeL AI 生成的密钥 base_url="https://api.kr777.top" ) 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='')

3.2 基于 OpenAI 的 completions 接口使用 FIM 补全:

client = OpenAI( api_key="CaMeL AI APIKEY", base_url="https://api.kr777.top" ) response = client.completions.create( model="deepseek-ai/DeepSeek-V2.5", prompt=f""" def quick_sort(arr): # 基本情况,如果数组长度小于等于 1,则返回数组 if len(arr) <= 1: return arr else: """, suffix=f""" # 测试 quick_sort 函数 arr = [3, 6, 8, 10, 1, 2, 1] sorted_arr = quick_sort(arr) print("Sorted array:", sorted_arr) """, stream=True, max_tokens=4096 ) for chunk in response: print(chunk.choices[0].text, end='')