Vodič i uvid

Usmjeravanje razine usluge u pristupniku AI API-ja: brzo, standardno, osigurano i paketno bez hard kodiranja pružatelja usluga

Praktična arhitektura za izlaganje razina opterećenja AI-a neutralnih prema pružatelju usluga na pristupniku, zatim mapiranje svakog zahtjeva na brzi, standardni, osigurani ili skupni kapacitet s kontrolama zakupca, analitikom i evidencijom naplate.

Usmjeravanje na razini usluge je sloj pravila koji odlučuje zaslužuje li zahtjev umjetne inteligencije premium kapacitet niske latencije, normalan kapacitet na zahtjev, rezerviranu propusnost ili asinkronu obradu s popustom. Bez tog sloja, aplikacijski timovi obično kodiraju zastavice specifične za pružatelja usluga, nazive implementacije i skupne krajnje točke izravno u kodu proizvoda. Zbog toga je kašnjenjem, cijenom, kvotom i ponašanjem naplate zakupca teško upravljati.

Gateway bi trebao otkriti namjeru radnog opterećenja, a ne mehaniku pružatelja usluga. Proizvodni tim trebao bi moći reći "ovo je interaktivni odgovor podrške" ili "ovo je noćni posao obogaćivanja", dok gateway mapira tu namjeru na pravu opciju uzvodnog kapaciteta i bilježi što se zapravo dogodilo.

Problem čitača: klase kapaciteta postaju logika aplikacije

Timovi koji koriste više od jednog pružatelja modela često počinju s jednostavnim usmjeravanjem modela: pošaljite ovaj ID modela ovom pružatelju. Usmjeravanje postaje teže kada davatelji izlažu različite klase kapaciteta:

  • Premijum rukovanje zahtjevima niske latencije za staze usmjerene prema korisniku.
  • Standardni dijeljeni kapacitet za uobičajeni sinkroni promet.
  • Namjenski ili osigurani kapacitet za predvidljivu propusnost.
  • Skupni ili asinkroni API-ji za radna opterećenja otporna na kašnjenje.
  • Ponašanje prelijevanja kada je rezervirani kapacitet iscrpljen.

Ako svaka aplikacija sama rješava ove izbore, organizacija gubi kontrolu nad četiri stvari: tko može koristiti premium kapacitet, koliko to košta, što se događa kada kapacitet nije dostupan i je li odabrana razina dovoljno poboljšala proizvod da opravda potrošnju.

Praktični obrazac je staviti sloj kvalitete usluge neutralan prema davatelju unutar AI API pristupnika.

Činjenice za nadogradnju

Pojedinosti se razlikuju ovisno o pružatelju usluga, ali nekoliko vidljivih činjenica podupire dizajn na razini pristupnika.

  • Činjenica: Neki davatelji izlažu razinu usluge po zahtjevu za vrhunsku obradu. OpenAI opisuje brzi način rada kao opciju po zahtjevu pomoću parametra service_tier i kaže da se naplaćuje skuplje u odnosu na standardnu ​​obradu. OpenAI također navodi da je prioritetna obrada preimenovana u brzi način rada 30. srpnja 2026., dok su service_tier=priority i service_tier=fast prihvaćeni za API zahtjeve.
  • Činjenica: Premium rukovanje zahtjevima možda nije zaseban univerzum kvota. OpenAI napominje da se ograničenja stope brzog načina rada dijele s drugim razinama usluge i da brzi porast prometa može pokrenuti ponašanje brzine povećanja gdje se dio prometa umjesto toga može poslati standardnoj obradi.
  • Činjenica: Razina usluge može biti dimenzija izvješćivanja i naplate. OpenAI kaže da API korisnici mogu grupirati podatke nadzorne ploče upotrebe prema razini usluge i stavci retka. Anthropic dokumentira standard, priority i batch kao vrijednosti razine usluge u API izvješćima o korištenju.
  • Činjenica: Batch API-ji mogu značajno smanjiti troškove za asinkroni rad. Dokumentacija o cijenama Anthropic kaže da njegova serija API podržava asinkronu obradu velikih količina uz 50% popusta na ulazne i izlazne tokene. Dokumentacija Google Gemini Batch API opisuje velika asinkrona radna opterećenja uz 50% standardne cijene, s kompromisima u pogledu obrta kao što je do 24 sata za neke poslove velikog volumena.
  • Činjenica: Omogućena propusnost je zasebni model kapaciteta. Microsoft dokumentira da je Azure OpenAI omogućio protok kao namjenski kapacitet, za razliku od standardnih implementacija gdje se kapacitet dijeli, a protok može varirati ovisno o potražnji. Microsoft također dokumentira prelijevanje s osiguranih implementacija na standardne implementacije u istom Azure OpenAI resursu.

Preporuka je da se svaki izraz pružatelja ne odražava u kodu aplikacije. Preporuka je da se ti mehanizmi normaliziraju u poslovno orijentirane razine pristupnika.

Definirajte razine pristupnika neutralne prema pružatelju usluga

Započnite imenovanjem razina za ponašanje radnog opterećenja, a ne terminologiju dobavljača. Korisna prva taksonomija je:

Razina pristupnika Tipično radno opterećenje Očekivana latencija Stanje troškova Zadano ponašanje na stariju verziju
interactive_fast Glasovne petlje, chat uživo, radnje korisnika visoke vrijednosti Najniža praktična latencija Dopuštena premija Nastavi standardno ili neuspješno brzo, ovisno o tijeku rada
interactive_standard Normalni chat, podrška pri izradi nacrta, interni kopiloti Sinkrono Zadana cijena Ponovni pokušaj, zamjena ili vraćanje kontrolirane pogreške
reserved_capacity Predvidljiv proizvodni promet sa stalnim korištenjem Predvidljiva propusnost Unaprijed plaćeni ili angažirani kapacitet Prelijte se samo kada to politika dopušta
background_discount Ocjene, obogaćivanje, sažimanje, ugrađivanja, izvješća Asinkroni Preferiramo popust Stavite u red čekanja dok skupni put ne bude dostupan
emergency_fallback Reakcija na incident ili privremena eskalacija klijenta Ovisno o politici Kontrolirana iznimka Istječe automatski nakon prozora odobrenja

Ovaj popis razina namjerno je malen. Ako stvorite dvadeset razina, programeri će zaobići sustav. Gateway još uvijek može preslikati jednu neutralnu razinu na nekoliko internih mehanizama specifičnih za pružatelja usluga.

Odvojite traženu razinu od odabrane razine

Pozivatelj bi trebao poslati traženu razinu, ali pristupnik bi trebao zabilježiti i traženu razinu i stvarno odabranu razinu. To nije uvijek isto.

Primjer metapodataka zahtjeva:

{
  "model": "support-chat-default",
  "messages": [...],
  "metadata": {
    "workflow": "customer_support_reply",
    "tenant_id": "tenant_123",
    "requested_gateway_tier": "interactive_fast",
    "end_user_id": "u_789"
  }
}

Primjer zapisa o otpremi:

{
  "request_id": "req_abc",
  "tenant_id": "tenant_123",
  "api_key_id": "key_live_456",
  "workflow": "customer_support_reply",
  "model_alias": "support-chat-default",
  "requested_gateway_tier": "interactive_fast",
  "selected_provider": "provider_a",
  "selected_provider_tier": "fast",
  "tier_outcome": "selected_as_requested",
  "downgrade_reason": null,
  "input_tokens": 1840,
  "output_tokens": 420,
  "latency_ms": 1420,
  "estimated_cost_usd": "0.0312",
  "settled_cost_usd": "0.0308"
}

Ako se premium zahtjev šalje u standardnu obradu zbog ograničenja rampe ili pravila proračuna stanara, to mora biti vidljivo:

{
  "requested_gateway_tier": "interactive_fast",
  "selected_provider_tier": "standard",
  "tier_outcome": "downgraded",
  "downgrade_reason": "tenant_premium_budget_exhausted"
}

Ova razlika sprječava lažnu analitiku. Ako nadzorne ploče prikazuju samo ono što je pozivatelj zatražio, financije će vidjeti premium namjeru, ali ne i premium izvršenje. Ako nadzorne ploče prikazuju samo uzlazne rezultate, proizvodni timovi neće znati kada je njihovom tijeku rada osjetljivom na latenciju odbijen premium kapacitet.

Izradite matricu mogućnosti prije usmjeravanja

Uslužni usmjerivač treba matricu mogućnosti. Matrica bi trebala odgovoriti: za dati model, regiju, stanara i tijek rada, koji su mehanizmi kapaciteta dostupni?

Minimalni broj polja:

  • provider
  • model_or_deployment
  • regions
  • supports_sync
  • supports_batch
  • supports_premium_tier
  • supports_provisioned_capacity
  • supports_spillover
  • provider_tier_values
  • billing_line_items
  • known_downgrade_behavior
  • tenant_allowlist

Pojednostavljeni primjer:

gateway_tier_map:
  interactive_fast:
    preferred:
      - provider: openai
        request_params:
          service_tier: fast
      - provider: anthropic
        request_params:
          service_tier: priority
    fallback:
      - gateway_tier: interactive_standard
        allowed_when: policy.allows_standard_downgrade

  background_discount:
    preferred:
      - provider: anthropic
        mode: batch
      - provider: gemini
        mode: batch
    fallback:
      - queue: delayed_retry
        allowed_when: true

  reserved_capacity:
    preferred:
      - provider: azure_openai
        deployment_class: provisioned
    fallback:
      - provider: azure_openai
        deployment_class: standard
        allowed_when: policy.allows_spillover

Ova bi matrica trebala biti konfiguracijski, a ne raspršeni kod. Promjene naziva davatelja, regionalna dostupnost i način naplate mijenjat će se s vremenom. Ažuriranje pravila pristupnika sigurnije je od ponovnog postavljanja svake aplikacije koja poziva API.

Klasificirajte radna opterećenja prije odabira kapaciteta

Najteži dio nije mapiranje pružatelja usluga. Odlučuje koji zahtjevi zaslužuju koju razinu.

Dobri kandidati za interactive_fast

  • Glasovni pomoćnici gdje kašnjenje prekida razgovor.
  • Chat s klijentima o konverzijama visoke vrijednosti ili putovima zadržavanja.
  • Operacije čovjeka u petlji gdje agent aktivno čeka.
  • Proizvodni incidenti gdje latencija izravno utječe na ublažavanje.

Dobri kandidati za interactive_standard

  • Interni kopiloti.
  • Podržite izradu nacrta gdje čovjek može tolerirati normalno vrijeme odgovora.
  • Značajke proizvoda kod kojih je vrijeme odgovora važno, ali nije kritično.

Dobri kandidati za background_discount

  • Noćno sažimanje.
  • Veliko obogaćivanje dokumenata.
  • Izvanmrežne evaluacije.
  • Skupno ugrađivanje se osvježava.
  • Analitičko označavanje i generiranje izvješća.

Dobri kandidati za reserved_capacity

  • Stabilna radna opterećenja velike količine proizvodnje.
  • Ugovorena radna opterećenja korisnika s predvidljivim obvezama protoka.
  • Promet koji ne može tolerirati bučne varijacije susjeda i ima dovoljno iskorištenja da opravda namjenski kapacitet.

Jednostavno pravilo pravila glasi: nemojte dopustiti pozivateljima da odaberu vrhunski kapacitet samo zato što više vole brzinu. Zahtijeva deklarirani tijek rada, dozvolu stanara i proračunsku omotnicu.

Primjena dopuštenja stanara i APIključeva

Svaki stanar i API ključ trebaju imati dopušteni skup razina. Novi ključevi trebali bi imati standardne i pozadinske razine, a ne premium razine.

Primjer pravila zakupca:

{
  "tenant_id": "tenant_123",
  "allowed_gateway_tiers": [
    "interactive_standard",
    "background_discount"
  ],
  "premium_tier": {
    "enabled": false,
    "monthly_budget_usd": "0.00",
    "approval_required": true
  },
  "reserved_capacity": {
    "enabled": true,
    "deployment_pool": "support-prod-ptu",
    "allow_spillover_to_standard": true,
    "spillover_monthly_budget_usd": "500.00"
  }
}

Primjer nadjačavanja na razini ključa:

{
  "api_key_id": "key_voice_prod",
  "allowed_gateway_tiers": ["interactive_fast"],
  "workflow_allowlist": ["voice_control_loop"],
  "premium_daily_budget_usd": "75.00",
  "max_premium_traffic_percent": 15
}

Pravilo razine ključa sprječava slučajno proširenje. Razvojni programer ne može uzeti ključ namijenjen glasovnom prometu i koristiti ga za skupnu skriptu sažimanja osim ako tijek rada također nije dopušten.

Izričito degradiranje dizajna i ponašanje prelijevanja

Ponašanje na starijoj verziji odluka je o proizvodu, a ne samo o infrastrukturi. Kada premium ili osigurani kapacitet nije dostupan, pristupnik bi trebao odabrati jedan od četiri puta:

  • Nastavite prema standardu: Korisno kada je dostupnost važnija od dosljednosti latencije.
  • Red: Korisno za pozadinske poslove i skupna radna opterećenja.
  • Brza neuspjeh: Korisno kada bi spor odgovor bio gori od izostanka odgovora, kao što su uske petlje u stvarnom vremenu.
  • Zamolite pozivatelja da pokuša ponovno: Korisno kada klijent može sigurno ponovno pokušati s odmakom i sačuvanim ključem idempotencije.

Primjer pravila:

downgrade_policy:
  voice_control_loop:
    requested_tier: interactive_fast
    if_fast_unavailable: fail_fast
    error_code: tier_capacity_unavailable

  customer_support_reply:
    requested_tier: interactive_fast
    if_fast_unavailable: proceed_on_standard
    record_outcome: downgraded

  nightly_document_enrichment:
    requested_tier: background_discount
    if_batch_unavailable: queue
    max_queue_delay_hours: 24

  contracted_api_customer:
    requested_tier: reserved_capacity
    if_reserved_exhausted: spillover_to_standard
    require_spillover_budget: true

Ne skrivaj prelijevanje. Prelijevanje može poboljšati dostupnost, ali mijenja troškove i SLO tumačenje. Fakture i analitika trebaju pokazati zahtjev za rezerviranim kapacitetom, događaj prelijevanja, standardni kapacitet koji se stvarno koristi i razlog.

Povežite usmjeravanje na razini usluge s naplatom

Gateway ne može kontrolirati premijsku potrošnju ako izbor razine nije dio glavne knjige. Pohranite ova polja za svaki zahtjev ili posao:

  • Zatražena razina pristupnika.
  • Odabrana razina davatelja ili klasa kapaciteta.
  • Ishod razine: odabrano, smanjena, nadograđena, u redu čekanja, prelijevanje, odbijeno.
  • Razlog ishoda.
  • Tenant, API identifikatori ključa, korisnika i tijeka rada.
  • Nadimak modela i uzvodni model ili implementacija.
  • Procijenjeni trošak prije otpreme.
  • Podmirenje troškova nakon što se utvrdi korištenje davatelja usluga.
  • Latencija i broj ponovnih pokušaja za sinkrone zahtjeve.
  • Vrijeme skupne predaje, vrijeme dovršetka i status unosa rezultata za asinkrone poslove.

S tim poljima pristupnik može odgovoriti na pitanja koja će postaviti financije i inženjerstvo:

  • Koji su stanari ovaj tjedan koristili premium kapacitet?
  • Koji su tijekovi rada uzrokovali najveću potrošnju?
  • Koliko su se često premium zahtjevi smanjivali na standardne?
  • Je li interactive_fast poboljšana p95 latencija dovoljno da opravda premiju?
  • Koliko je pozadinska skupna obrada uštedjela u usporedbi sa sinkronom standardnom obradom?
  • Koliko je standardnog prelijevanja generirao osigurani kapacitet?

Važna preporuka: fakturirajte stvarno korištenu razinu, dok također prikazujete traženu razinu za radni kontekst. Inače će stanari biti iznenađeni cijenom ili zavedeni u pogledu kvalitete usluge.

Dodajte zaštitne ograde kako premium ne bi postao zadani

Kad timovi otkriju bržu razinu, mogli bi je pretjerano koristiti. Stavite ograničenja u gateway prije širokog predstavljanja.

  • Premijski proračun po stanarima: Čvrsti mjesečni i dnevni limiti.
  • Odobrenje tijeka rada: Premium dopušten samo za imenovane tijekove rada.
  • Ograničenje udjela prometa: Na primjer, ne više od 10% sinkronih zahtjeva stanara smije koristiti interactive_fast bez odobrenja.
  • Upozorenje sa standardnog na premium: Upozorenje kada se nadogradi tijek rada koji inače koristi standard.
  • Upozorenje o premium stopi sagorijevanja: Upozorenje kada predviđena potrošnja premaši odobrenu omotnicu.
  • Automatski istek: Privremena hitna nadjačavanja trebala bi isteći bez ručnog čišćenja.
  • Provjere prihvatljivosti paketa: Blokiraj skupne poslove iz sinkronih premium razina kada zadovolje skupne kriterije.

Zaštitne ograde trebaju biti okretne. Tijekom incidenta, ovlašteni operater će možda morati odobriti privremeno nadjačavanje premije. To nadjačavanje mora imati razlog, odobravatelja, proračun, vrijeme isteka i revizijski zapis.

Slijed implementacije

Sigurno uvođenje ne počinje posvuda uključivanjem premium usmjeravanja. Počnite s mjerenjem.

1. Dodajte klasifikaciju razine u sjeni

Klasificirajte svaki zahtjev u predloženu razinu pristupnika, ali još nemojte mijenjati usmjeravanje. Zabilježite predloženu razinu uz postojeće metapodatke o kašnjenju, cijeni i tijeku rada. Ovo otkriva koliko bi prometa prešlo na premium, serijski ili rezervirani kapacitet ako bi se pravila provodila.

2. Napravite matricu sposobnosti

Navedite mehanizme pružatelja usluga, podržane modele, regije, ograničenja, polja za izvješćivanje i poznato ponašanje na nižu verziju. Tretirajte nepoznato ponašanje na nižu verziju kao rizik dok se ne testira.

3. Provedba dopuštenja stanara u načinu rada na suho

Zabilježite hoće li svaki zahtjev biti dopušten, smanjen, stavljen u red čekanja ili odbijen. Podijelite rezultate s vlasnicima proizvoda prije provedbe.

4. Omogući jednu razinu za jednu kohortu

Odaberite uski tijek rada, kao što je staza odgovora podrške uživo ili noćni posao sažimanja. Omogućite relevantnu razinu pristupnika za malu skupinu stanara. Izmjerite latenciju p50, latenciju p95, trošak, stopu prelaska na stariju verziju, stopu pogreške i poslovne metrike okrenute korisniku gdje su dostupne.

5. Proširi samo kada podaci to podržavaju

Ako premium razina poboljšava kašnjenje, ali ne i rezultate proizvoda, ograničite je. Ako skupna obrada smanjuje troškove bez štete na ponašanje proizvoda, proširite je. Ako je osigurani kapacitet neaktivan, ponovno pregledajte obvezu ili usmjerite više predvidljivog prometa u njega.

Kompromisi za eksplicitnost

  • Premijum razine niske latencije mogu poboljšati odziv, ali mogu dijeliti ograničenja brzine ili pokretati ograničenja rampe. Oni nisu zamjena za oblikovanje ograničenja brzine.
  • Omogućeni kapacitet poboljšava predvidljivost, ali može uzalud trošiti novac kada je iskorištenost niska. Standardni ili paketni kapacitet može biti bolji za promet koji je tolerantan na kašnjenje.
  • Skupna obrada može smanjiti trošak tokena, ali mijenja ponašanje proizvoda jer su odgovori asinkroni i mogu stići puno kasnije.
  • Nazivi slojeva neutralni prema pružateljima usluga pojednostavljuju aplikacijski kod, ali pristupnik mora održavati ažurnu matricu mogućnosti jer pružatelji usluga koriste različite nazive, ograničenja, linije naplate i ponašanje prema nižoj verziji.
  • Automatsko vraćanje na stariju verziju poboljšava dostupnost, ali može zamagliti SLO i očekivanja naplate osim ako pristupnik ne bilježi stvarnu korištenu razinu.
  • Stroge kontrole zakupaca sprječavaju iznenadnu potrošnju, ali pretjerano stroga pravila mogu blokirati hitne proizvodne tijekove rada osim ako ne postoji kontrolirani put nadjačavanja.

Predviđanje: razina usluge postat će prvorazredna dimenzija usmjeravanja

Predviđanje: Kako API-ji modela sazrijevaju, razina usluge postat će jednako važna za AI usmjeravanje kao izbor modela, regija i prozor konteksta. Timovi se neće pitati samo "koji bi model trebao odgovoriti na ovo?" Pitat će se "koji model, pod kojom klasom kapaciteta, za koji proračun stanara, s kojom politikom niže razine?"

Preporuka: Sada dizajnirajte knjigu pristupnika i model pravila tako da se nove klase kapaciteta pružatelja mogu dodati bez mijenjanja koda aplikacije. Čak i ako počnete samo sa standardnim i serijskim, koristite polja kao što su requested_gateway_tier, selected_provider_tier i tier_outcome od početka.

Poduzimajući kontrolni popis

  • Definirajte najviše pet razina pristupnika neutralnih prema pružatelju usluga.
  • Zahtijevaj svaki API ključ da deklarira koje razine i tijekove rada može koristiti.
  • Izradite matricu mogućnosti pružatelja usluga za premium, standardno, osigurano, grupno i prelijevo ponašanje.
  • Zabilježite zatraženu razinu, odabranu razinu, ishod prelaska na nižu ili prelijevanja, kašnjenje, upotrebu i podmireni trošak.
  • Zadani novi ključevi za standardne ili pozadinske razine.
  • Dodajte premium proračune, ograničenja udjela prometa i upozorenja.
  • Napravite eksplicitno ponašanje prema tijeku rada na nižu verziju.
  • Počnite s metrikom u sjeni prije provedbe.
  • Prvo uvedite premium ili osigurani kapacitet za malu skupinu.
  • Proširite samo kada latencija, pouzdanost ili poslovna metrika opravdavaju trošak.

Zaključak

Usmjeravanje na razini usluge pripada AI API pristupniku jer je to odluka međusektorske politike. Utječe na kašnjenje, troškove, kvote, dozvole stanara, fakture i operativna očekivanja. Aplikacijski timovi ne bi trebali kodirati nazive razina ili klase implementacije specifične za pružatelja usluga samo da bi izrazili hitnost radnog opterećenja.

Praktični pristupnik izlaže neutralne razine kao što su interactive_fast, interactive_standard, reserved_capacity i background_discount. Preslikava te razine u mehanizme specifične za pružatelja usluga, provodi dopuštenja stanara, bilježi stvarni ishod i čini premium kapacitet namjernom iznimkom, a ne zadanim putem.

Povezano čitanje

FAQ

Često postavljana pitanja

Trebaju li aplikacije izravno odabrati razine usluga specifične za pružatelja?
Obično ne. Aplikacije bi trebale slati namjeru radnog opterećenja ili razinu pristupnika neutralnu prema pružatelju usluga. Gateway bi to trebao prevesti u parametre specifične za pružatelja usluga, implementacije, batch API-je ili pravila prelijevanja.
Je li premium kapacitet niske latencije zamjena za upravljanje ograničenjem brzine?
Ne. Premium razine mogu i dalje dijeliti ograničenja stope ili na njih može utjecati ponašanje rampe. Gateway i dalje treba procjenu kvote, burst izravnavanje, pravednost zakupca i politiku ponovnog pokušaja.
Kada bi radno opterećenje trebalo koristiti batch umjesto sinkronog standardnog kapaciteta?
Koristite skupinu kada proizvod može tolerirati asinkrono dovršavanje: izvanmrežne evaluacije, obogaćivanje dokumenata, noćni sažeci, skupna ugrađivanja i generiranje izvješća uobičajeni su kandidati.
Što treba evidentirati za naplatu?
Zabilježite zatraženu razinu pristupnika, stvarnu razinu pružatelja ili klasu kapaciteta, sniženje ili ishod prelijevanja, razlog, zakupca, ključ, tijek rada, upotrebu tokena, kašnjenje, procijenjeni trošak i podmireni trošak.