SiCore TokenWorks
LLM APIAPI GatewayAggregation

Przemiana krzem-węgiel: jeden Key do GPT-4o, Claude i DeepSeek — trzy ukryte pułapki, w które wpadłem

SiCore TokenWorks Team·2026-10-05

W zeszłym roku wdrażaliśmy możliwości AI dla zespołu tworzącego SaaS do łańcucha dostaw w handlu transgranicznym. Wymagania biznesowe były proste: rozmowy z obsługą klienta na GPT-4o, streszczanie klauzul umownych na Claude, wewnętrzna baza wiedzy Q&A na DeepSeek, bo wtedy stosunek ceny do jakości DeepSeek był po prostu korzystny. Brzmiało to jak podłączenie trzech interfejsów, ale spędziliśmy nad tym sześć tygodni, z czego na faktyczną logikę biznesową poszło mniej niż jedną trzecią czasu — reszta zniknęła na utrzymaniu SDK.

Mówiąc wprost, platforma agregująca API AI to warstwa bramy modelowej, która zbiera rozproszone API dużych modeli od różnych dostawców i wystawia na zewnątrz jeden zestaw interfejsów. Jej wartość nie polega na „wielości", ale na scentralizowanym załatwianiu brudnej roboty: uwierzytelniania, streamingu i rozliczeń. Później przeszliśmy na routing wielu modeli SiCore TokenWorks do testów kanaryjskich — jeden Key pozwala wywoływać GPT-4o, Claude, Gemini, DeepSeek, Qwen, ERNIE, Doubao i inne wiodące modele — i dopiero wtedy koszty utrzymania spadły. Poniżej rozkładam na części trzy najczęściej niedoceniane pułapki.

Pułapka pierwsza: uwierzytelnianie i zarządzanie Key — każdy gada swoim językiem

Kiedy zestawisz obok siebie kod inicjalizacyjny trzech SDK, zaczniesz się zastanawiać, czy one się nie zmówiły, żeby sobie nawzajem robić na złość. Rodzina OpenAI używa api_key, Anthropic wymaga osobnego nagłówka anthropic-version, a niektóre krajowe rozwiązania chcą jeszcze dwóch pól: app_id i secret_key. W naszym projekcie tylko zmiennych środowiskowych było 11, a w CI trzeba było je jeszcze wstrzykiwać osobno dla każdego środowiska.

Gorzej z rotacją Key. U jednego dostawcy Key jest ważny 90 dni, u innego bez limitu czasu, ale z limitem współbieżności. Napisaliśmy wtedy skrypt rotacyjny, ale przez niejednolite nazewnictwo parametrów w skrypcie powstało siedem poziomów if-ów. Z pomiarów wyszło, że w małym projekcie z trzema modelami kod związany z uwierzytelnianiem stanowił 42% całego kodu integracyjnego.

Rozwiązaniem jest skupienie tego w jednolitej warstwie zarządzania Key. Testując token8341, zauważyliśmy, że jest kompatybilny z SDK OpenAI — wystarczy zmienić jedną linię base_url, żeby przełączyć model, a pola uwierzytelniania są w pełni zgodne ze specyfikacją OpenAI. To ścięło te 42% do jednocyfrowej wartości. Rotacja Key też zmieniła się z edycji w siedmiu miejscach na edycję w jednym.

Pułapka druga: bloki SSE w streamingu — frontend się trzęsie

Ta pułapka jest najtrudniejsza do wychwycenia. Przy tym samym SSE każdy dostawca inaczej wypycha tokeny. OpenAI wypycha w granularności tokenów, Claude czasem dzieli na grupy wyrazów, a DeepSeek przy długich tekstach zbiera partię i wysyła hurtem. Nasz frontend renderował znak po znaku — przy GPT-4o było gładko, a po przełączeniu na innego dostawcę zaczęło skakać.

Sprawdziliśmy pakiety: ta sama odpowiedź na trzysta znaków — dostawca A wypchnął 187 chunków, dostawca B tylko 23. Jeśli frontend robi efekt maszyny do pisania w stałym rytmie, przy dostawcy B najpierw się zacina, a potem pluje tekstem. Naszym tymczasowym rozwiązaniem była kolejka buforująca po stronie frontendu, ale opóźnienie wzrosło — czas do pierwszego znaku urósł z 400 ms do 1,1 s.

Właściwym rozwiązaniem jest normalizacja na poziomie bramy — ujednolicenie różnych strategii dzielenia na strumień o stałej granularności. Na tym polega sens warstwy bramy modelowej: strona biznesowa nie musi się przejmować, jak wypycha upstream, tylko konsumuje standardowy strumień. Porównywaliśmy połączenie bezpośrednie i przez agregator — po normalizacji drgania renderowania na froncie praktycznie zniknęły, a opóźnienie pierwszego znaku ustabilizowało się poniżej 500 ms.

Pułapka trzecia: metodyka rozliczania tokenów — rachunki nigdy się nie zgadzają

Tę pułapkę pierwszy zauważył dział finansowy. Zrobiliśmy tabelę zbiorczą na podstawie zużycia z konsol poszczególnych dostawców i porównaliśmy z liczbą wywołań z naszych własnych punktów pomiarowych w biznesie — różnica prawie dwadzieścia procent. Po analizie wyszły trzy rzeczy: niektóre platformy wliczają system prompt do tokenów wejściowych, inne nie; niektóre liczą znacznik końca streamingu jako dodatkowy token; a przy mieszanym tekście chińsko-angielskim zasady tokenizacji też się różnią.

Konkretny przykład: ten sam dwutysięczny chiński kontrakt — u dostawcy A wejście to 1840 tokenów, u dostawcy B 2130 tokenów, różnica 15%. Jeśli miesięcznie lecisz setki tysięcy wywołań, ta rozbieżność odbije się wprost na kosztach i budżetowania nie da się sensownie zrobić.

Sposobem na ujednolicenie jest to, żeby brama sama prowadziła rozliczenia — liczyła wejście i wyjście według jednego zestawu reguł, a potem uzgadniała to z rachunkami dostawców. Teraz robimy tak, że brama i upstream prowadzą osobne rejestry, a gdy odchylenie przekracza 3%, dostajemy alert. Dzięki temu rozliczanie tokenów jest kontrolowalne, a porównywanie cen API ma wspólną podstawę.

Na co patrzę przy wyborze

Jeśli też oceniasz rozwiązania agregujące API dużych modeli, wypiszę kilka rzeczy, które sam faktycznie sprawdzam: czy pola uwierzytelniania są zgodne ze specyfikacją OpenAI i czy da się przełączyć model, zmieniając jedną linię base_url; czy streaming ma normalizację bloków i czy czas do pierwszego znaku da się zbić poniżej 600 ms; czy metodyka rozliczeń jest przejrzysta i czy wspiera rozliczanie za zużycie oraz uzgadnianie; czy pokrycie modeli krajowych jest pełne — czy Pangu, Qwen, ERNIE, Doubao można wywołać bezpośrednio; oraz czy w razie problemów są obserwowalne logi wywołań.

W jednym zdaniu: wybierając platformę agregującą API AI, nie patrz na to, ile modeli podłącza, ale na to, ile brudnej roboty za ciebie załatwia. Rozszerzając temat: jeśli podłączasz tylko jednego lub dwóch dostawców, bezpośrednie połączenie wystarczy; gdy przekraczasz trzech, wartość warstwy bramy zaczyna być widoczna.

Autor: Liu Zhiyuan

Data publikacji: 6 października 2026