PL ▾

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.

Zaktualizowano

Kluczowe wnioski

  1. Istota proxy to „przekazywanie + mapowanie kluczy + rozliczanie”. Twoje żądanie przechodzi dodatkowy hop, a stabilność i bezpieczeństwo zależą od tej właśnie warstwy.
  2. Trzy najczęstsze pułapki: niewłaściwe przechowywanie kluczy, zwrócenie innego modelu niż oczekiwano, nieprzejrzyste zasady limitów.
  3. 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.
  4. 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.

WymiarBezpośrednie połączenie z jednym modelemProxy agregująceProxy dla jednego modelu
Liczba modeliKilka modeli własnych dostawcyDziesiątki lub setkiJeden
Format interfejsuWłasny format każdego dostawcyZnormalizowany do kompatybilności z OpenAIKompatybilny z OpenAI
Trudność debugowaniaNajniższa, najkrótszy łańcuchNajwyższa, wiele mapowań nazw modeliNiska, tylko jeden model
Typowe zastosowanieStabilna praca z jednym dostawcąCzęste porównywanie różnych modeliStał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.

  1. Czy endpoint GET /v1/models jest publicznie dostępny, a zwracana lista modeli i ich ceny są zgodne ze stroną z cenami?
  2. 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?
  3. Czy limit zapytań na minutę dla każdego klucza jest podany w dokumentacji, a nie tylko w rozmowie z obsługą?
  4. Czy okno kontekstu, maksymalna liczba tokenów wyjściowych w jednym zapytaniu i rozmiar ciała żądania mają podane konkretne wartości?
  5. Czy rozliczenie jest precyzyjne na podstawie tokenów z usage, a saldo jest dostępne do podglądu w dowolnym momencie?
  6. Czy przedpłacony kredyt traci ważność? Czy okres ważności darmowego kredytu próbnego jest jasno określony?
  7. Czy klucz API można zresetować samodzielnie, a stary klucz traci ważność natychmiast?
  8. Czy obsługuje strumieniowanie, a w odpowiedzi znajduje się podsumowanie usage, co ułatwia Ci weryfikację rozliczeń?
  9. Czy jest jasno napisane, czy prompty są wykorzystywane do trenowania modeli?
  10. 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ługuje POST /v1/chat/completions oraz GET /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_tokens domyś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.

Pobierz klucz API