FIM 완성 (Fill in the Middle)
FIM 완성 (Fill in the Middle)
FIM(Fill in the Middle) 완성은 사용자가 앞부분(prefix)과 선택적인 뒷부분(suffix)을 주면, 모델이 그 사이의 내용을 채워 넣는 기능이에요. 코드나 내용 일부가 빠져 있을 때 그 중간을 완성하는 데 주로 쓰여요. 이 기능은 베타(Beta)로 제공돼요.
주의할 점이 두 가지 있어요.
- FIM 완성의 최대 토큰 수는 4K예요.
- 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» 문서를 봐요.