공급자 라우팅
하나의 모델이 둘 이상의 공급자에서 제공되는 경우가 있습니다. 예를 들어 bytedance/seedance-2.0은 volcengine과 byteplus 양쪽에서 제공됩니다. ofox는 기본적으로 공급자를 자동 선택하며, provider.type으로 요청을 특정 공급자에 고정할 수 있습니다.
기본 라우팅 동작
provider 필드를 보내지 않으면 ofox는 해당 모델을 현재 제공하는 채널에 가중치를 두어 요청을 분배합니다. 개별 요청을 어느 공급자가 처리할지는 예측할 수 없습니다.
공급자 지정
공급자 이름을 type 필드에 지정합니다. 필드 위치는 모델 종류에 따라 다릅니다:
Gemini 네이티브 프로토콜은 본문의 extra_body.provider를 무시합니다 — 요청은 정상 반환되고 제약은 적용되지 않으며 오류도 없습니다. 이 프로토콜에서는 X-OfoxAI-Provider-Type 헤더를 사용하세요. 프로토콜별 필드 계약은 API · 공급자 라우팅에 있습니다.
채팅 모델
cURL
curl https://api.ofox.ai/v1/chat/completions \
-H "Authorization: Bearer $OFOX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-5.5",
"messages": [{ "role": "user", "content": "..." }],
"extra_body": {
"provider": { "type": "bedrock" }
}
}'공식 OpenAI SDK를 사용할 때 extra_body는 요청 본문에 문자 그대로의 키로 존재해야 합니다. TypeScript SDK는 파라미터 객체에 작성한 그대로 전송합니다. Python SDK의 extra_body= 인자는 내용을 본문 최상위로 병합하므로, 키를 한 단계 더 중첩하거나 요청 헤더로 전달해야 합니다.
사용 가능한 공급자
ofox가 현재 지원하는 공급자는 다음과 같습니다. 괄호 안은 짧은 이름이며 전체 이름과 동등하게 사용할 수 있습니다:
모든 공급자가 모든 모델을 제공하지는 않습니다. 특정 모델을 어떤 공급자가 제공하는지, 각 공급자가 어떤 프로토콜을 지원하는지는 모델 카탈로그 의 해당 모델 페이지에 표시됩니다. 프로그램에서는 GET /v2/models/catalog/{provider}/{slug}?include=provider_price가 반환하는 provider_cards[]가 같은 데이터입니다.
채팅 모델
채팅 모델은 위 표의 대부분 공급자에 분산되어 있습니다. 정확한 제공 관계와 프로토콜 지원 여부는 각 모델 페이지를 기준으로 합니다.
비디오 모델
bytedance/seedance-* 계열은 아래 두 공급자가 제공하며, 두 공급자의 콘텐츠 정책이 다릅니다:
byteplus는 seedance가 모든 이용자에게 적합하지 않은(NSFW) 콘텐츠를 생성하도록 허용하고, volcengine은 표준 심사를 적용합니다. 그러한 콘텐츠가 필요하면 provider.type: "byteplus"를 명시적으로 지정해야 합니다. 지정하지 않으면 가중 분배로 요청이 volcengine에 전달되어 심사에서 거부될 수 있습니다.