Przegląd
Passthrough API przekazuje natywne requesty providera przez GoModel bez tłumaczenia body requestu ani odpowiedzi. Używaj go, gdy biblioteka kliencka oczekuje natywnego API providera zamiast API kompatybilnego z OpenAI. Na przykład Anthropic SDK wysyła requesty do/v1/messages, więc możesz skierować je na bazowy URL passthrough dla Anthropic w GoModel:
v1 i przekazuje request do upstreamu
jako natywne wywołanie Anthropic:
Jak to działa
Ścieżki passthrough mają taki kształt:ALLOW_PASSTHROUGH_V1_ALIAS=true, co jest wartością domyślną:
GOMODEL_MASTER_KEY
lub zarządzane klucze uwierzytelniające, klient musi wysłać bearer token GoModel:
Authorization i X-Api-Key przed przekazaniem
requestu, a następnie dołącza dane uwierzytelniające providera upstreamu skonfigurowane na
serwerze. Dla Anthropic GoModel używa skonfigurowanego ANTHROPIC_API_KEY.
Ponieważ passthrough jest natywny dla providera, odpowiedź również jest natywna.
Dla Anthropic messages odpowiedź używa schematu wiadomości Anthropic, a nie
schematu chat completion OpenAI.
Gdy śledzenie użycia jest włączone, udane odpowiedzi inferencji passthrough
są zapisywane: liczby tokenów są odczytywane ze zdarzeń usage SSE w odpowiedziach
streamingowych i z pola usage w odpowiedziach JSON, więc koszty i budżety
uwzględniają ruch passthrough tak jak każdą inną ścieżkę.
Kontrola dostępu
Passthrough sięga bezpośrednio do konta providera z danymi uwierzytelniającymi serwera, w tym do ścieżek, których gateway nie potrafi ograniczyć do wywołującego, takich jakGET /files. Dlatego dostęp jest ograniczony:
GOMODEL_MASTER_KEY– zawsze ma dostęp do passthrough.- Zarządzane klucze API – domyślnie tworzone bez dostępu do passthrough. Klucze,
które istniały przed wprowadzeniem dostępu do passthrough, go zachowują. Klucz bez
dostępu dostaje
403z kodem błędupassthrough_access_denied. - Allowlisty modeli – body, które wskazuje
model, jest sprawdzane z allowlistą wywołującego. Request, który nie wskazuje modelu, działa na całym providerze, więc allowlista musi obejmować całego providera (anthropic/) lub wszystko (/). Klucz ograniczony doanthropic/claude-sonnet-4-6może wywołaćPOST /p/anthropic/v1/messagesdla tego modelu, ale nieGET /p/anthropic/v1/models.
"passthrough_access": true
w POST /admin/auth-keys), na stronie API Keys w dashboardzie lub później.
Może go przyznać tylko globalny admin (master key lub klucz dashboardu bez
ścieżki użytkownika), ponieważ klucz passthrough sięga poza każdą ścieżkę
użytkownika; admin ograniczony do ścieżki użytkownika dostaje 403 admin_scope_denied, ale może ten dostęp odebrać.
Przykład z Anthropic SDK
Ustaw bazowy URL Anthropic SDK na ścieżkę passthrough dla Anthropic w GoModel. Użyj tokenu GoModel jako uwierzytelniania bearer w Anthropic SDK.not-needed, zamiast auth_token lub authToken. GoModel usuwa X-Api-Key
z requestów passthrough przed przekazaniem ich do upstreamu.
Obecne ograniczenia
Passthrough jest celowo wąski, dopóki API jest w wersji beta.openai,anthropic,openrouter,kilo,zai,sglang,vllm,llamacpp,llmd,deepseek,edenaiijevsą włączone domyślnie.- Chutes obsługuje passthrough, ale wymaga jawnego włączenia przez operatora, ponieważ
passthrough może przekazywać natywne ścieżki providera, które nie identyfikują modelu.
Dodaj
chutesdoENABLED_PASSTHROUGH_PROVIDERStylko wtedy, gdy świadomie chcesz udostępnić tę powierzchnię. - GoModel nie tłumaczy body requestów ani odpowiedzi passthrough.
modelwskazany w body JSON passthrough jest sprawdzany z allowlistą modeli wywołującego niezależnie od rozmiaru body, aż do skonfigurowanego limitu body; większe body jest odrzucane z błędem tego limitu. Body, które powtarza polemodelnajwyższego poziomu, jest odrzucane, ponieważ to upstream decydowałby, które wygrywa. Request, który nie wskazuje modelu, wymaga uprawnienia do całego providera (zobacz Kontrola dostępu).- Konto upstreamu jest współdzielone. Klucz z dostępem do passthrough może sięgać
do obiektów na nim, takich jak pliki czy batche, utworzonych przez inne klucze. Przyznawaj
passthrough_accesstylko kluczom, którym ufasz w zakresie całego konta providera. - Natywne body błędów i kody statusu providera są przekazywane dalej, zamiast być konwertowane na odpowiedzi kompatybilne z OpenAI.
- Funkcje zależne od kompatybilnych z OpenAI kształtów requestów lub odpowiedzi mogą nie
działać dla ruchu passthrough tak samo jak dla ruchu
/v1.
Powiązane zmienne środowiskowe
Ścieżki passthrough są domyślnie włączone:ENABLED_PASSTHROUGH_PROVIDERS na typy providerów, które chcesz udostępnić.