DeepSeek API를 deepseek-v4-flash / deepseek-v4-pro로 마이그레이션: OpenAI와 Anthropic 두 호환 형식 중 무엇을 선택할까
2026년 6월 14일 · 12분 읽기 · Claude / GPT / Gemini / DeepSeek

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

먼저 인터페이스 형식을 고르기: 신념이 아니라 생태계를 보라
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_url와 model만 바꾸면 되어 변경이 가장 적음 |
| 이미 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가 더 기본 선택지에 가깝습니다.

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에서는 thinking을 extra_body에 넣어야 합니다. 사고 강도는 high와 max를 지원합니다(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 체험 크레딧 제공.
관련 글

OpenAI SDK로 Groq GPT-OSS 120B 사용하기: Base URL, 가격, 캐싱
OpenAI SDK의 base URL 한 줄만 바꿔 Groq에서 GPT-OSS 120B를 실행하고, 캐시 토큰 비용을 추정하며 도구 과금 이슈를 피하세요.
2026년 6월 17일 · 19분 읽기

OpenAI SDK로 Gemini API 호출하기: base_url, API Key, 모델명만 바꾸는 마이그레이션 튜토리얼
기존 OpenAI SDK 프로젝트를 위한 Gemini 호환 인터페이스 마이그레이션 체크리스트. 코드, 파라미터 매핑, 가격 포함.
2026년 6월 14일 · 9분 읽기

OpenAI SDK로 Gemini API 호출하기: base_url, key, 모델명만 바꾸는 연동 튜토리얼
기존 OpenAI SDK 코드로 Gemini를 연동할 때 최소 변경은 세 가지 설정이면 충분합니다.
2026년 6월 14일 · 9분 읽기