AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

Codex 팁 – DeepInfra 모델을 로컬 Responses API shim으로 연결하기

Codex에서 DeepInfra 호스팅 모델을 쓰려면 단순히 OpenAI 호환 base URL만 바꾸는 것으로는 부족할 수 있다. Codex는 Responses API 형식을 기대하는 반면, DeepInfra의 일반 OpenAI 호환 엔드포인트는 chat completions 형식이기 때문이다.

해결 방식

Bill Erickson의 DeepInfra-Codex-Shim은 로컬 Node.js 프록시를 중간에 둔다.

Codex
  -> local shim /v1/responses
  -> DeepInfra /v1/openai/chat/completions
  -> local shim
  -> Responses-shaped output

Codex는 http://127.0.0.1:8797/v1 같은 로컬 endpoint를 Responses API로 인식하고, shim은 이를 DeepInfra chat completions 요청으로 변환한다. 응답도 다시 Codex가 이해할 수 있는 Responses 형태로 바꾼다.

shim이 처리하는 것

  • system, user, assistant 메시지 변환
  • 함수 도구(function tools)와 함수 호출(function calls)
  • 함수 호출 결과(function call outputs)
  • 기본 token usage
  • 모델 목록 조회
  • DeepInfra streaming chunk를 Responses 스타일 SSE 이벤트로 변환

스트리밍에서 툴 호출은 특히 중요하다. chat completions 제공자는 함수명과 인자를 조각으로 보내기 때문에, shim은 조각을 누적했다가 upstream 스트림이 끝날 때 완성된 function_call 항목으로 내보낸다.

설정 예시

[model_providers.deepinfra]
name = "DeepInfra via local shim"
base_url = "http://127.0.0.1:8797/v1"
env_key = "DEEPINFRA_TOKEN"
wire_api = "responses"

[profiles.deepinfra]
model_provider = "deepinfra"
model = "deepseek-ai/DeepSeek-V4-Flash"

토큰은 로컬 환경변수로 둔다.

export DEEPINFRA_TOKEN="your_deepinfra_api_token"

언제 유용한가

  • Codex의 하네스와 툴 호출 흐름은 유지하되 모델 공급자를 바꾸고 싶을 때
  • 특정 코딩 모델을 DeepInfra 가격·성능 기준으로 벤치마크하고 싶을 때
  • Responses API를 아직 직접 지원하지 않는 OpenAI 호환 제공자를 Codex에 연결할 때

단, 이 방식은 완전한 Responses API 구현이 아니라 실용적인 bridge다. 장기 운영에서는 오류 매핑, rate limit, tool call edge case, 모델별 스트리밍 차이를 별도로 검증해야 한다.

관련 문서

  • codex — 파일·도구·워크플로를 자동화하는 AI 에이전트
  • deepclaude — Claude Code 하네스를 DeepSeek·OpenRouter 백엔드로 쓰는 프록시
  • codexsaver — 저위험 작업을 저비용 워커에 위임하는 Codex MCP 라우터
  • agent-as-a-router — 코딩 작업에 맞는 모델을 경험 기반으로 라우팅하는 프레임워크

참고 자료



AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)