전체 글로 돌아가기
가이드

DeepSeek API를 deepseek-v4-flash / deepseek-v4-pro로 마이그레이션: OpenAI와 Anthropic 두 호환 형식 중 무엇을 선택할까

2026년 6월 14일 · 12분 읽기 · Claude / GPT / Gemini / DeepSeek

미색 배경의 개발자 마이그레이션 로드맵. 왼쪽에는 이전 모델 deepseek-chat/deepseek-reasoner의 회색 카드가 있고, 화살표가 오른쪽의 deepseek-v4-flash와 deepseek-v4-pro 테라코타색 카드 두 장을 가리키며, 아래는 Ope로 분기됩니다

2026-06-14 기준으로 DeepSeek API를 살펴보면, 가장 먼저 바꿔야 할 것은 prompt가 아니라 모델명입니다. DeepSeek 중국어 가격 페이지에는 매우 명확하게 적혀 있습니다. deepseek-chatdeepseek-reasoner는 베이징 시간 2026/07/24 23:59에 폐기될 예정이며, 호환 기간 동안 전자는 deepseek-v4-flash의 비사고 모드에, 후자는 deepseek-v4-flash의 사고 모드에 대응합니다(DeepSeek 가격 페이지). 프로덕션 코드가 아직도 예전 이름을 쓰고 있다면 마지막 주까지 기다리지 마세요.

미색 배경의 타임라인 그림. 왼쪽에는 2026-06-14 현재 점검 지점, 오른쪽에는 2026-07-24 23:59 베이징 시간 폐기 지점이 표시되어 있고, 가운데는 테라코타색 화살표로 연결되어 있으며, 기존 모델명은 회색으로 희미하게 사라지고 새 모델명은 차콜 그레이로 강조되어 있음

먼저 인터페이스 형식을 고르기: 신념이 아니라 생태계를 보라

DeepSeek은 현재 두 가지 호환 엔드포인트를 동시에 제공합니다. OpenAI 형식 https://api.deepseek.com, Anthropic 형식 https://api.deepseek.com/anthropic입니다(DeepSeek API 첫 호출).

제 제안은 간단합니다.

현재 상황 선택 이유
이미 OpenAI SDK, LangChain, LlamaIndex, Vercel AI SDK의 Chat Completions를 사용 중 OpenAI 형식 base_urlmodel만 바꾸면 되어 변경이 가장 적음
이미 Anthropic SDK, Claude Code, Messages API 구조를 사용 중 Anthropic 형식 system, messages.create, max_tokens 사용 습관이 그대로 유지됨
직접 HTTP wrapper를 작성함 OpenAI 형식 우선 디버깅 자료가 더 많고 필드가 더 범용적임
Claude 도구 체인을 재사용해야 함 Anthropic 형식 DeepSeek이 Anthropic API 생태계를 명시적으로 지원함(DeepSeek Anthropic API)

주의할 점이 하나 있습니다. Anthropic 형식에서는 DeepSeek이 모델명 매핑을 수행합니다. 공식 문서에 따르면 claude-opus로 시작하는 이름은 deepseek-v4-pro로 매핑되고, claude-haiku 또는 claude-sonnet으로 시작하는 이름은 deepseek-v4-flash로 매핑됩니다. 그래도 저는 deepseek-v4-pro 또는 deepseek-v4-flash를 명시적으로 쓰는 것을 권합니다. 프로덕션 동작을 암묵적 매핑에 맡기지 마세요.

모델명 교체: 더 이상 호환 별칭에 의존하지 말기

마이그레이션 표는 두 줄뿐입니다.

기존 모델명 현재 호환 대상 권장 작성 방식
deepseek-chat deepseek-v4-flash 비사고 모드 deepseek-v4-flash + thinking 비활성화
deepseek-reasoner deepseek-v4-flash 사고 모드 deepseek-v4-flash 또는 deepseek-v4-pro + thinking 활성화

기존에 deepseek-reasoner를 코드 리뷰, 복잡한 SQL, 긴 글 추론에 사용했다면 이참에 deepseek-v4-pro도 평가해볼 만합니다. 고객지원, 요약, 분류 정도라면 deepseek-v4-flash가 더 기본 선택지에 가깝습니다.

모델 패밀리 마이그레이션 그림. 왼쪽에는 기존 모델 카드 deepseek-chat과 deepseek-reasoner 두 장, 오른쪽에는 새 모델 카드 deepseek-v4-flash와 deepseek-v4-pro 두 장이 있으며, 서로 다른 선 형태로 비사고 모드와 사고 모드를 나타내고, 테라코타색으로 추천 흐름을 강조함

OpenAI 형식: 최소 변경 버전

DeepSeek의 OpenAI 형식은 여전히 Chat Completions를 사용합니다. OpenAI 공식 인터페이스 자체도 POST /v1/chat/completions의 메시지 목록 스타일이므로(OpenAI API Reference), 대부분의 SDK에서는 두 곳만 바꾸면 됩니다.

# pip install openai
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://api.deepseek.com",
)

resp = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[
        {"role": "system", "content": "你是一个严谨的代码审查助手。"},
        {"role": "user", "content": "检查这段 Python 代码的潜在 bug。"},
    ],
    extra_body={"thinking": {"type": "disabled"}},
    stream=False,
)

print(resp.choices[0].message.content)

사고 모드를 켜려면 마지막 부분을 다음처럼 바꾸면 됩니다.

reasoning_effort="high",
extra_body={"thinking": {"type": "enabled"}}

DeepSeek의 사고 모드는 기본적으로 활성화되어 있으며, OpenAI SDK에서는 thinkingextra_body에 넣어야 합니다. 사고 강도는 highmax를 지원합니다(DeepSeek 사고 모드). 도구 호출 체인이 assistant 메시지를 다시 전달한다면 한 가지 엄격한 규칙을 기억하세요. tool call이 포함된 사고 모드 턴의 경우, 이후 요청에서 reasoning_content를 완전하게 다시 전달해야 하며, 그렇지 않으면 400이 발생합니다.

Anthropic 형식: Claude 도구 체인을 위한 후문 남기기

이미 Anthropic Messages API를 중심으로 시스템 프롬프트, max_tokens, client.messages.create()를 작성해두었다면 Base URL만 직접 바꾸면 됩니다.

# pip install anthropic
import os
import anthropic

client = anthropic.Anthropic(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://api.deepseek.com/anthropic",
)

msg = client.messages.create(
    model="deepseek-v4-pro",
    max_tokens=1000,
    system="你是一个资深后端工程师。",
    messages=[{"role": "user", "content": "给我一个 Redis 缓存穿透的修复方案。"}],
    thinking={"type": "enabled"},
    output_config={"effort": "high"},
)

print(msg.content)

Anthropic 공식 Messages API도 messages.create 구조를 사용하며, 핵심 필드에는 model, max_tokens, system, messages가 포함됩니다(Anthropic Messages API). 따라서 Anthropic 형식을 선택하는 진짜 이유는 “더 고급”이라서가 아니라 Claude 생태계 코드를 덜 고치기 위해서입니다.

비용 추산: 먼저 캐시 미적중 기준으로 계산하기

DeepSeek 중국어 가격 페이지는 백만 tokens 단위로 과금합니다. deepseek-v4-flash는 입력 캐시 적중 0.02위안, 입력 미적중 1위안, 출력 2위안이고, deepseek-v4-pro는 입력 캐시 적중 0.025위안, 입력 미적중 3위안, 출력 6위안입니다(DeepSeek 가격 페이지).

대략 계산해보면, 월 입력 200M, 출력 50M일 때 먼저 전량 미적중으로 계산합니다.

모델 입력 비용 출력 비용 합계
deepseek-v4-flash 200위안 100위안 300위안
deepseek-v4-pro 600위안 300위안 900위안

실제 청구액은 캐시 적중률의 영향을 받습니다. RAG, Agent, 긴 시스템 프롬프트를 사용할 때는 안정적인 접두부를 앞쪽에 배치하세요. 적중률이 올라가면 입력 비용이 눈에 띄게 줄어듭니다. 마이그레이션 첫날부터 가장 낙관적인 캐시 수치로 예산을 잡지는 마세요.

중계 인터페이스 사용자: 편하게 하려면 onehop을 써도 됨

목표가 DeepSeek만 연결하는 것이 아니라 같은 코드에서 Claude, GPT, Gemini를 전환하는 것이라면 onehop은 시간을 아끼는 경로입니다. OpenAI/Anthropic 호환을 지원하며, Base URL을 https://api.onehop.ai/v1로 바꾸면 됩니다. 신규 계정에는 $10이 제공되고, 가격은 공식보다 낮으며, 카드 등록이 필요 없습니다.

OpenAI SDK 예시:

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.environ["ONEHOP_API_KEY"],
    base_url="https://api.onehop.ai/v1",
)

resp = client.chat.completions.create(
    model="claude-sonnet-4-5",
    messages=[{"role": "user", "content": "用三点解释这个 API 迁移计划。"}],
)
print(resp.choices[0].message.content)

Anthropic SDK도 같은 Base URL을 가리키게 할 수 있습니다.

import anthropic, os

client = anthropic.Anthropic(
    api_key=os.environ["ONEHOP_API_KEY"],
    base_url="https://api.onehop.ai/v1",
)

프로덕션 마이그레이션은 저는 이렇게 일정을 잡겠습니다. 오늘 기존 모델명을 교체하고, 이번 주 안에 OpenAI/Anthropic 두 경로의 smoke test를 통과시키고, 이달 말까지 사고 모드와 tool call의 재전달 로직을 보완하고, 7월 중순 전에는 모든 deepseek-chat, deepseek-reasoner를 삭제합니다. 여러 공급자 설정을 덜 유지하고 싶다면 바로 시험해볼 수 있습니다. onehop에서 Claude 등 모델 호출하기, 또는 먼저 크레딧을 받아 경로를 실행해보세요. 가입 즉시 $10 체험 크레딧 제공.