한 줄 정의

Chat Completions(챗 컴플리션스)는 대화형 API 호출 인터페이스 이름이야. DeepSeek 문맥에서는 /chat/completions 엔드포인트를 뜻하고, 앱이나 서버가 messages 배열과 모델 값을 보내면 답변, 스트리밍, JSON 출력, 도구 사용 결과를 받는 경로라고 보면 돼.

중요한 건 이 이름이 모델 자체가 아니라는 점이야. 예를 들어 deepseek-chatDeepSeek Reasoner는 이 인터페이스 위에서 고르는 모델 별칭이고, 챗 컴플리션스는 그 별칭을 실어 보내는 호출 방식이야.

실제로 무엇을 하나

이 인터페이스는 멀티턴 대화, 구조화된 출력, 도구 호출처럼 대화형 작업을 한 경로로 묶어 줘. DeepSeek의 2026년 5월 3일 기준 공식 참조는 messages를 필수 입력으로 두고, system, user, assistant, tool 역할을 한 요청 안에서 함께 받는다고 설명해. stream=true를 켜면 서버가 SSE로 조각 응답을 보내고 data: [DONE]으로 끝내며, 완료 뒤에는 usage.prompt_cache_hit_tokens, prompt_cache_miss_tokens, completion_tokens 같은 사용량 필드를 돌려줘. 여기서 토큰은 과금과 길이 계산에 쓰는 기본 단위야.

실무에서 자주 쓰는 장면은 두 가지야. 첫째, 여러 번 오가는 챗봇이나 업무 도우미야. DeepSeek 가이드는 이 API가 상태 비저장형이라서, 2번째 질문을 보낼 때는 1번째 답변까지 messages에 다시 붙여 보내야 한다고 적어. 둘째, 에이전트 흐름이야. 2024년 7월 25일 공지 기준으로 여기에 JSON Output, Function Calling, Chat Prefix Completion이 붙었고, JSON 출력은 response_format={"type":"json_object"}처럼 강제할 수 있어. 그래서 검색, 크롤링, 내부 도구 실행처럼 모델 바깥 함수를 끼우는 자동화 경로에서 자주 쓰여.

왜 중요한가

이 용어가 중요한 이유는 문서와 로그를 읽을 때 층위를 바로 가르게 해 주기 때문이야. “챗 컴플리션스를 쓴다”는 말은 특정 모델 성능을 뜻하는 게 아니라, 대화형 메시지 포맷과 응답 계약을 따르는 호출 방식을 뜻해. 여기에 어떤 모델을 태우는지는 날짜와 제품 정책에 따라 달라질 수 있어.

DeepSeek 사례가 그 차이를 잘 보여줘. 2025년 1월 20일 R1 출시 공지는 같은 대화형 호출 경로에서 reasoning 별칭으로 DeepSeek R1을 호출하라고 안내했어. 그 뒤 변경 로그는 chat 별칭과 reasoning 별칭이 비추론 모드와 사고 모드(thinking mode)를 나누는 호환 이름으로 계속 이어졌다고 적어. 즉, 인터페이스는 유지돼도 실제 뒤에 붙는 모델은 바뀔 수 있다는 뜻이야.

주의해서 볼 점

첫째, 이 경로는 상태 저장형 서비스가 아니야. 대화 기록을 서버가 대신 오래 보관한다고 생각하면 바로 설계가 틀어져. DeepSeek 가이드대로 이전 질문과 답변을 매번 messages에 다시 넣는 쪽이 기본이야.

둘째, 대화형 경로와 /completions를 섞으면 안 돼. DeepSeek는 2024년 7월 25일에 전자를 role이 있는 메시지 대화용으로, 후자를 중간 채우기 완성 베타(FIM completion beta)용으로 나눠 소개했어. 전자는 system, user, assistant, tool 역할을 다루고, 후자는 코드나 문장 중간 채우기처럼 completion 자체에 더 가까워.

셋째, reasoning 모델을 붙일 때는 일반 채팅보다 후속 처리 규칙이 더 까다로워질 수 있어. 공식 참조는 스트리밍 조각에 reasoning_content가 들어올 수 있다고 적고, R1 릴리스 공지는 같은 포맷에서 reasoning 모델을 따로 가격 책정했어. 그래서 이 인터페이스를 그냥 “채팅 응답 한 번 받는 API” 정도로만 보면, tool call 이후 메시지 재구성이나 로그 설계에서 실수가 나기 쉬워.