FIM 완성 (Fill in the Middle)

FIM 완성 (Fill in the Middle)

FIM(Fill in the Middle) 완성은 사용자가 앞부분(prefix)과 선택적인 뒷부분(suffix)을 주면, 모델이 그 사이의 내용을 채워 넣는 기능이에요. 코드나 내용 일부가 빠져 있을 때 그 중간을 완성하는 데 주로 쓰여요. 이 기능은 베타(Beta)로 제공돼요.

출처: https://api-docs.deepseek.com/guides/fim_completion

주의할 점이 두 가지 있어요.

  1. FIM 완성의 최대 토큰 수는 4K예요.
  2. Beta 기능인 만큼 base_url=https://api.deepseek.com/beta로 설정해 켜야 해요.

아래는 FIM 완성의 전체 Python 코드 예시예요. 피보나치 수열을 계산하는 함수의 시작과 끝을 제공하고, 모델이 중간을 완성하게 해요.

from openai import OpenAI

client = OpenAI(
    api_key="<your api key>",
    base_url="https://api.deepseek.com/beta",
)

response = client.completions.create(
    model="deepseek-v4-pro",
    prompt="def fib(a):",
    suffix="    return fib(a-1) + fib(a-2)",
    max_tokens=128,
)
print(response.choices[0].text)

prompt에는 시작 부분을, suffix에는 끝부분을 넣어요. 모델이 def fib(a):return fib(a-1) + fib(a-2) 사이에 빠진 재귀 함수 몸통을 채워 넣는 식이에요.

참고로 Continue는 VSCode의 코드 완성 플러그인으로, 이 코드 완성 기능을 쓰도록 DeepSeek와 연동을 설정할 수 있어요.

더 알아보기

  • FIM 완성의 뒷받침이 되는 엔드포인트는 공식 create-completion 문서에서 볼 수 있어요.
  • 대화형 채팅 완성 API는 «채팅 완성 API» 문서를 봐요.