SDK 및 프레임워크 통합
모든 SDK는 동일한 세 단계로 GateLLM에 연결됩니다. SDK를 찾고 base_url 규칙과 주의사항을 확인한 뒤 패턴을 복사하세요.
게이트웨이는 프로토콜 지향적입니다: 어떤 SDK를 쓰든 OpenAI / Anthropic / Gemini / DashScope / Realtime / MCP를 사용한다면, base_url을 게이트웨이로 지정하고 액세스 키를 교체하는 것만으로 구성된 모든 모델 — 다른 벤더 모델로의 프로토콜 교차 호출 포함 — 을 호출할 수 있습니다.
base_url을 게이트웨이로 지정
기본값은 https://your-gateway.gatellm.io 입니다 — /v1 포함 여부는 SDK마다 다릅니다(각 예시에 정확한 값을 표기).
게이트웨이 액세스 키로 교체
업스트림 sk-… 키가 아닙니다 — 같은 액세스 키가 SDK가 기대하는 헤더에 맞춰 들어갑니다.
게이트웨이 모델 이름 사용
콘솔에서 구성한 이름을 쓰세요 — 벤더의 공식 이름이 아닙니다.
Authorization: Bearer <key>x-api-key: <key>x-goog-api-key: <key>SDK 선택 매트릭스
| SDK / 프레임워크 | 언어 | 프로토콜 | 문서 |
|---|---|---|---|
공식 벤더 SDKGitHub 예제 ↗ | |||
| OpenAI SDK | Python, Node.js | OpenAI | 예시 |
| Anthropic SDK | Python, Node.js | Anthropic | 예시 |
| Google GenAI SDK | Python, JavaScript | Gemini | 예시 |
| OpenAI-compatible third parties | Python, Node.js | OpenAI-compatible | 예시 |
DashScope 네이티브 | |||
| DashScope SDK | Python | DashScope | 예시 |
통합 SDK 및 게이트웨이GitHub 예제 ↗ | |||
| Vercel AI SDK | TypeScript | OpenAI / Anthropic | 예시 |
| LiteLLM | Python | OpenAI-compatible | 예시 |
| Portkey | Node.js, Python | OpenAI-compatible | 예시 |
| Braintrust / Langbase | TypeScript, Python | OpenAI-compatible | 예시 |
| Semantic Kernel | Python, .NET | OpenAI-compatible | 예시 |
| Spring AI | Java | OpenAI-compatible | 예시 |
오케스트레이션 프레임워크GitHub 예제 ↗ | |||
| LangChain | Python, TypeScript | OpenAI / Anthropic | 예시 |
| LangGraph | Python, TypeScript | OpenAI / Anthropic | 예시 |
| LlamaIndex | Python, TypeScript | OpenAI-compatible | 예시 |
| CrewAI | Python | OpenAI-compatible (LiteLLM) | 예시 |
| AutoGen / AG2 | Python | OpenAI-compatible | 예시 |
| DSPy | Python | OpenAI-compatible | 예시 |
| Haystack | Python | OpenAI-compatible | 예시 |
| Llama Stack | Python | OpenAI-compatible | 예시 |
에이전트 SDK | |||
| OpenAI Agents SDK | Python, TypeScript | OpenAI Responses | 예시 |
| Claude Agent SDK | Python, TypeScript | Anthropic | 예시 |
| Pydantic AI | Python | OpenAI-compatible | 예시 |
| Google ADK | Python | OpenAI-compatible (LiteLLM) | 예시 |
| Mastra | TypeScript | OpenAI-compatible | 예시 |
| Microsoft Agent Framework | .NET, Python | OpenAI-compatible | 예시 |
| MCP SDK | Python, TypeScript | MCP | 예시 |
실시간 및 오디오 | |||
| Realtime WebSocket | Any WS client | OpenAI Realtime | 예시 |
| openai_audio (ASR / TTS) | Python, Node.js | OpenAI audio | 예시 |
로컬 / 자체 호스팅 | |||
| Ollama | REST | OpenAI-compatible (upstream) | 예시 |
| vLLM | REST | OpenAI-compatible (upstream) | 예시 |
| llama.cpp server | REST | OpenAI-compatible (upstream) | 예시 |
| SGLang | REST | OpenAI-compatible (upstream) | 예시 |
| Text Generation Inference (TGI) | REST | OpenAI-compatible (upstream) | 예시 |
| LM Studio | REST | OpenAI-compatible (upstream) | 예시 |
주의사항
벤더의 공식 이름도, 업스트림 모델 ID도 아닙니다 — 콘솔에서 지정한 이름입니다. 이름이 틀리면 404 model_not_found가 발생합니다.
OpenAI SDK는 /v1을 사용하고, Anthropic SDK는 루트를 사용하며(내부에서 /v1/messages를 붙임), Vercel AI SDK의 createAnthropic은 /v1을 사용합니다(내부에서 /messages를 붙임). 잘못 지정하면 경로 세그먼트가 하나 더 붙거나 빠집니다.
업스트림이 Responses 프로토콜 모델이면 max_tokens가 더 낮은 하한(예: ≥16)을 가진 max_output_tokens로 바뀔 수 있습니다 — 너무 작으면 400이 발생합니다.
Claude / Gemini의 사고 콘텐츠와 서명은 그대로 전달되거나 제거됩니다 — content 배열에서 type == "text"인 요소를 취하고, content[0]이 텍스트라고 가정하지 마세요.
Chat Completions가 아니라 Responses API를 호출합니다. 업스트림이 openai(Chat)라면 OpenAIChatCompletionsModel로 명시적으로 전환하고, openai_response라면 문자열 모델 이름이 그대로 동작합니다.
OpenAI 클래스는 인식하는 계열만 허용하고 사용자 정의 게이트웨이 이름을 거부합니다 — OpenAILike(Python)를 사용하거나 모델 정보를 명시적으로 선언하세요.
base_url은 프레임워크 파라미터가 아니라 OPENAI_API_BASE 환경 변수이며, 모델에는 openai/ 접두사가 필요합니다.
알 수 없는 모델 이름은 기본 목록에서 오류가 납니다 — model_info를 명시적으로 선언해 검사를 우회하세요.
base_url은 http_options.base_url로 전달하며(/v1 없음), 키는 x-goog-api-key 헤더에 들어갑니다.