컴플리션 API (Completions)
컴플리션 API (Completions)
채팅 완성 API가 메시지 형식을 자동으로 잡아주는 데 비해, 모델에 보내는 프롬프트를 정확히 직접 제어해야 할 때가 있어요. 그럴 때 쓰는 게 컴플리션(completions) API예요. 메시지 포매팅 없이 원시(raw) 텍스트 생성만 하기 때문에, 프롬프트 템플릿을 완전히 통제해야 하는 경우에 적합해요.
언제 쓰면 좋을까
컴플리션 API는 커스텀 프롬프트 템플릿을 써야 하거나, 인스트럭트/챗 변형이 아닌 베이스 모델(base model)을 다룰 때, 토큰 단위의 세밀한 제어가 필요하거나, 기존 레거시 애플리케이션이 원시 완성 형식에 의존할 때 좋아요. 다만 대부분의 경우에는 채팅 완성 API를 쓰는 게 낫다는 점을 기억해 두세요. 채팅 완성은 메시지 형식을 자동으로 처리하고 인스트럭트 튜닝 모델과도 더 잘 맞아요.
기본 사용법
Fireworks SDK로 간단하게 요청을 보내면 돼요. 모델에 prompt를 전달하고 반환된 choices[0].text를 읽으면 완성 결과를 얻어요.
from fireworks import Fireworks
client = Fireworks()
response = client.completions.create(
model="accounts/fireworks/models/deepseek-v3p1",
prompt="Once upon a time"
)
print(response.choices[0].text)
대부분의 모델은 프롬프트 앞에 시작 문장 토큰(BOS, 예: <s>)을 자동으로 붙여요. 이 동작을 확인하고 싶다면 raw_output 파라미터를 쓰면 돼요.
커스텀 프롬프트 템플릿이 필요할 때, 예를 들어 few-shot 감성 분류 템플릿을 만들 때도 prompt에 그대로 넣으면 동작해요.
주요 파라미터
채팅 완성 파라미터가 컴플리션에도 그대로 적용돼요.
temperature: 랜덤성 제어(0~2)max_tokens: 출력 길이 제한top_p,top_k,min_p: 샘플링 파라미터stream: 토큰 단위 스트리밍frequency_penalty,presence_penalty: 반복 줄이기
완전한 파라미터 문서는 API 레퍼런스를 참고하세요.
배포에서 쓰기
컴플리션 API도 전용 배포(on-demand deployment)와 함께 쓸 수 있어요. 이때는 모델 대신 배포 식별자(accounts/<ACCOUNT_ID>/deployments/<DEPLOYMENT_ID>)를 지정해요.
더 알아보기
- 채팅 완성: 대부분의 경우 채팅 완성을 사용
- 스트리밍: 실시간 UX를 위한 스트리밍 응답
- API 레퍼런스: 컴플리션 API 전체 문서