Co to jest API proxy: zasada działania, typowe ryzyka i lista wyboru
Wielu programistów po raz pierwszy słysząc o „proxy API”, wie tylko, że zmiana adresu i klucza pozwala na wywoływanie modeli LLM, ale nie potrafi wyjaśnić, co dzieje się w środku. Ten artykuł rozkłada pełną ścieżkę żądania od perspektywy DevOps, wyjaśniając trzy kwestie: przekazywanie, klucze i rozliczenia, a następnie wymienia trzy najczęstsze pułapki i podaje listę wyboru oraz dwa polecenia do samodzielnej weryfikacji.
Kluczowe wnioski
- Istota proxy to „przekazywanie + mapowanie kluczy + rozliczanie”. Twoje żądanie przechodzi dodatkowy hop, a stabilność i bezpieczeństwo zależą od tej właśnie warstwy.
- Trzy najczęstsze pułapki: niewłaściwe przechowywanie kluczy, zwrócenie innego modelu niż oczekiwano, nieprzejrzyste zasady limitów.
- Nie wybieraj modelu tylko po cenie. Sprawdź, czy lista modeli jest dostępna, czy kody błędów są standardowe, oraz czy limity i limit zapytań są jasno określone.
- Po otrzymaniu klucza uruchom /v1/models i małe żądanie — w ciągu dziesięciu minut wykluczysz większość problemów.
Ścieżka żądania przez proxy API
Najpierw wyjaśnijmy pojęcia. „Proxy API” to brama wystawiająca standardowy interfejs między Twoją aplikacją a backendem modelu. Twój kod nadal wysyła żądania w formacie OpenAI, ale wskazuje base_url na adres bramy, a klucz zastępuje kluczem wydawanym przez proxy.
W tej jednej transmisji brama zazwyczaj wykonuje trzy czynności.
- Przekazywanie żądań: Waliduje format ciała żądania, uzupełnia domyślne parametry, a następnie przekazuje je do backendu. Odpowiedź backendu (w tym fragmenty strumieniowania SSE) jest zwracana do Ciebie w całości lub po lekkiej obróbce.
- Mapowanie kluczy: Posiadasz klucz wydany przez bramę, który ma sens tylko w jej obrębie. Proxy identyfikuje Cię, sprawdza saldo i uprawnienia do modeli. Klucze używane do komunikacji z backendem pozostają wewnętrznie i nie pojawiają się w Twoim kodzie.
- Rozliczenie i limity: Po każdym żądaniu brama odejmuje saldo na podstawie liczby tokenów wejściowych i wyjściowych z pola usage, mnożąc je przez cenę jednostkową. Jednocześnie liczy liczbę zapytań na minutę dla danego klucza i zwraca błąd 429 po przekroczeniu limitu.
Połączenie tych trzech elementów wyjaśnia, dlaczego doświadczenia z proxy są różne: implementacja warstwy przekazywania wpływa na opóźnienia i stabilność strumieniowania, warstwa kluczy określa zakres szkód przy wycieku, a warstwa rozliczeń decyduje o przejrzystości rachunków.
Różnice w porównaniu z bezpośrednim połączeniem z jednym modelem
Usługa bezpośrednia oznacza wysyłanie żądań bezpośrednio do oficjalnego domeny dostawcy modelu, gdzie jedno konto odpowiada jednemu zestawowi modeli, zasad rozliczeń i dokumentacji. Usługi proxy przyjmują dwie główne formy, różniące się liczbą „podpiętych” zasobów.
| Wymiar | Bezpośrednie połączenie z jednym modelem | Proxy agregujące | Proxy dla jednego modelu |
|---|---|---|---|
| Liczba modeli | Kilka modeli własnych dostawcy | Dziesiątki lub setki | Jeden |
| Format interfejsu | Własny format każdego dostawcy | Znormalizowany do kompatybilności z OpenAI | Kompatybilny z OpenAI |
| Trudność debugowania | Najniższa, najkrótszy łańcuch | Najwyższa, wiele mapowań nazw modeli | Niska, tylko jeden model |
| Typowe zastosowanie | Stabilna praca z jednym dostawcą | Częste porównywanie różnych modeli | Stały model, wysoka przewidywalność |
Jeśli Twoja aplikacja zależy od jednego modelu, korzyści z agregacji są nieprzydatne, a Ty ponosisz ryzyko niejednoznaczności „który model kryje się pod nazwą”. Z kolei przy cotygodniowych testach porównawczych agregacja oszczędza dużo pracy konfiguracyjnej. Nie ma tu bezwzględnej przewagi — kluczowe jest określenie, do której kategorii pasujesz.
Nasza usługa należy do ostatniej kategorii: oferujemy jeden model o identyfikatorze uncensored z interfejsem kompatybilnym z OpenAI. Aby dowiedzieć się więcej o kompromisach i kosztach tej architektury, przeczytaj Koszty i kompromisy API AI bez ograniczeń.
Trzy najczęstsze ryzyka
Bezpieczeństwo kluczy
Klucz pośredniczący jest równoważny z kartą przedpłaconą — kto go ma, ten może wydać Twoje środki. Typowe ścieżki wycieku to: wpisanie klucza do kodu frontendu, wrzucenie go do publicznego repozytorium, wklejenie do zgłoszenia lub zrzut ekranu z czatu. Zalecamy umieszczanie go tylko w zmiennych środowiskowych po stronie serwera, a frontend powinien zawsze odpytywać Twój backend; w razie podejrzenia wycieku natychmiast go zresetuj, a stary klucz powinien stracić ważność natychmiast. Sprawdź też, czy usługa pozwala na samodzielny reset i czy stary klucz przestaje działać natychmiast po resecie, a nie np. „po kilku godzinach”.
Podmiana modelu
To najczęstszy temat dyskusji w usługach agregujących: żądasz modelu A, a otrzymujesz tańszy model B. Trudno to ocenić na podstawie dokumentacji — należy to zweryfikować poprzez zachowanie. Możesz ustawić stały zestaw pytań znanymi odpowiedziami, ustawić temperature i testować wielokrotnie, obserwując, czy styl odpowiedzi jest stabilny; możesz też zapytać o /v1/models i sprawdzić, czy lista odpowiada stronie rozliczeniowej. Niejasne nazwy modeli lub duże różnice w zachowaniu tego samego modelu w różnych porach dnia są sygnałem ostrzegawczym.
Nieprzejrzyste limity
Niektóre usługi w dokumentacji podają tylko „rozsądne użytkowanie”, ale w szczycie ruchu cicho zwalniają lub odrzucają zapytania, co objawia się losowymi timeoutami. Dojrzałe podejście to podanie liczby zapytań na minutę na klucz i zwracanie kodu 429 przy przekroczeniu limitu, zamiast zawieszania połączenia. Przy wyborze koniecznie zapytaj: czy limit dotyczy klucza czy konta, jaki błąd zwraca przy przekroczeniu limitu i czy przy braku środków zwracany jest osobny kod błędu.
Checklista wyboru usługi proxy
Poniższą listę możesz skopiować bezpośrednio do dokumentacji oceny i odhaczać kolejne punkty.
- Czy endpoint
GET /v1/modelsjest publicznie dostępny, a zwracana lista modeli i ich ceny są zgodne ze stroną z cenami? - Czy odpowiedzi błędów są zwracane w formacie JSON z polami code i message, czy kody 401, 402, 429 i 503 są rozróżniane?
- Czy limit zapytań na minutę dla każdego klucza jest podany w dokumentacji, a nie tylko w rozmowie z obsługą?
- Czy okno kontekstu, maksymalna liczba tokenów wyjściowych w jednym zapytaniu i rozmiar ciała żądania mają podane konkretne wartości?
- Czy rozliczenie jest precyzyjne na podstawie tokenów z usage, a saldo jest dostępne do podglądu w dowolnym momencie?
- Czy przedpłacony kredyt traci ważność? Czy okres ważności darmowego kredytu próbnego jest jasno określony?
- Czy klucz API można zresetować samodzielnie, a stary klucz traci ważność natychmiast?
- Czy obsługuje strumieniowanie, a w odpowiedzi znajduje się podsumowanie usage, co ułatwia Ci weryfikację rozliczeń?
- Czy jest jasno napisane, czy prompty są wykorzystywane do trenowania modeli?
- Czy niewspierane funkcje (np. wektoryzacja, obrazy, audio) są oznaczone w sposób rzetelny, a nie niejasny?
Idealna ocena jest nierealna, ale jeśli nie jesteś w stanie odpowiedzieć na przynajmniej dwa z pierwszych pięciu pytań, zalecamy najpierw przetestować usługę na małej kwocie, zamiast doładowywać dużą gotówkę.
Weryfikacja w ciągu 10 minut po otrzymaniu klucza
Bez względu na wybór usługi, przed wdrożeniem warto poświęcić 10 minut na podstawową weryfikację. Pierwszy krok: pobierz listę modeli i upewnij się, że zwrócone id są zgodne z oczekiwaniami:
curl -s https://api.llmzhongzhuan.com/v1/models \
-H "Authorization: Bearer $API_KEY"
Drugi krok: wyślij małe zapytanie i sprawdź, czy w odpowiedzi pojawia się pole usage i czy jego wartości są realistyczne. Poniższy przykład wymusza na modelu powtórzenie daty, aby sprawdzić, czy nie zmyśla informacji, których nie zna. Jest to wstępny test zachowania, a nie rygorystyczna ocena:
curl -s https://api.llmzhongzhuan.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "用一句话介绍你自己,然后复述今天的日期是几号。"}],
"max_tokens": 200
}'
Zapisz te dwa kroki w skrypcie wdrożeniowym i uruchamiaj go przy każdej zmianie klucza lub usługi. Jeśli w odpowiedzi nie ma pola usage lub wartości w nim są wyraźnie niezgodne z długością promptu, oznacza to problem z przejrzystością rozliczeń – przed doładowaniem większej kwoty warto to wyjaśnić. Aby dowiedzieć się, jak podłączyć API w różnych frameworkach, zapoznaj się z przewodnikiem po konfiguracji frameworków.
Parametry naszej usługi do porównania z listą
Poniżej znajdziesz rzeczywiste parametry naszej usługi, dzięki czemu możesz od razu sprawdzić każdy punkt z listy, bez konieczności ciągłego przewijania dokumentacji.
- Adres endpointu:
https://api.llmzhongzhuan.com/v1, obsługujePOST /v1/chat/completionsorazGET /v1/models, autoryzacja za pomocą klucza Bearer. - Dostępny jest tylko jeden model o id
uncensored; obsługuje tylko tekst, brak wsparcia dla wektorów, obrazów, audio, wideo i fine-tuningu. - Okno kontekstu wynosi 100,000 tokenów (suma tokenów wejściowych i wyjściowych),
max_tokensdomyślnie ustawione na 2048, maksymalnie 32,000; maksymalny rozmiar ciała zapytania to 8 MB. - 300 zapytań na minutę na klucz; przy przekroczeniu limitu zwracany jest kod 429; kod 503 upstream_busy oznacza, że należy spróbować ponownie później; kod 402 no_credit zwracany jest przy wyczerpaniu środków lub wygaśnięciu okresu próbnego.
- Ceny: 0,25 USD za milion tokenów wejściowych, 1,00 USD za milion tokenów wyjściowych; płatność z góry, brak subskrypcji, saldo nie wygasa.
- Prompty nie są wykorzystywane do trenowania modeli.
Dokładne dane znajdziesz na stronie z cenami i dokumentacji. Nowe konto otrzymuje 0,50 USD kredytu próbnego ważnego przez 7 dni. Rejestracja nie wymaga podawania informacji o płatności, więc możesz przetestować powyższą procedurę.
Najczęściej zadawane pytania
Jaka jest największa różnica między proxy a bezpośrednim wywołaniem oficjalnego endpointu?
Proxy dodaje warstwę bramki między Tobą a modelem, odpowiedzialną za przekierowanie, wymianę kluczy i rozliczenia. Dłuższy łańcuch wymienia się na ujednolicony format interfejsu i elastyczne rozliczenia, ale kosztem jest konieczność zaufania stabilności i uczciwości tej dodatkowej warstwy.
Jak sprawdzić, czy usługa proxy nie podmienia modeli?
Wykonaj wielokrotne testy z tym samym promptem i stałą wartością temperature, aby sprawdzić stabilność odpowiedzi, a następnie zweryfikuj listę z endpointu /v1/models pod kątem zgodności ze stroną z cenami. W przypadku usług oferujących tylko jeden model niepewność ta jest mniejsza ze względu na pojedyncze id.
Co zrobić, jeśli klucz proxy zostanie wykradziony?
Natychmiast zresetuj klucz w panelu i upewnij się, że stary klucz traci ważność. W przyszłości przechowuj klucz tylko w zmiennych środowiskowych po stronie serwera, a frontend niech pobiera go przez własny backend.
Na jakie elementy zwrócić uwagę przy wyborze proxy?
Najpierw sprawdź, czy lista modeli jest publicznie dostępna, czy kody błędów są poprawne i czy limit zapytań na minutę jest jasno określony. Dopiero potem sprawdzaj okno kontekstu i ważność salda. Ceny porównuj na końcu.
Jaki limit zużycia jest bezpieczny do początkowego testu?
Najpierw przetestuj darmowy kredyt lub małe saldo, wykonując zapytania do /v1/models oraz kilka typowych requestów, a dopiero potem zwiększaj zużycie. Nie zalecamy wpłacania dużej kwoty na samym początku.
Wypełnij formularz, aby uzyskać klucz
Utwórz konto, skopiuj klucz i zmień Base URL. Konfiguracja jest prosta.