Hlavní poznatky
- Context windows combine prompt and completion, so long histories drain limits faster than expected.
- Při streamování je třeba pečlivě zpracovávat události SSE, aby nedocházelo k poškození JSON nebo ztrátě tokenů.
- JSON mode demands strict schema adherence; malformed responses cause silent parsing failures.
- Předplacené fakturování kryptoměn znamená, že chyby jsou zdarma, ale počítání tokenů musí být přesné, aby nedošlo k překvapením.
Proč může být váš klíč API zamítnut
Klíče API jsou zamítnuty, když klient odešle neplatné hlavičky nebo překročí limity těla požadavku. Server ověřuje autentizační hlavičku před zpracováním jakékoli logiky. Pokud hlavička chybí nebo obsahuje nadbytečné mezery, požadavek okamžitě selže.
Další častou příčinou je odeslání payloadu, který překračuje limit velikosti těla 8 MB. Velká kontextová okna s mnoha zprávami tento prah snadno překročí. Před odesláním zkontrolujte délku pole zpráv a počet tokenů.
- Ujistěte se, že hlavička Authorization správně používá předponu 'Bearer'.
- Verify the request body size stays under 8 MB.
- Zkontrolujte, že je API klíč aktivní a nevypršel.
Pochopení limitů kontextového okna
Kontextové okno zahrnuje jak vstupní prompt, tak vygenerovanou odpověď. Naše API podporuje okno o velikosti 100,000 tokenů, ale musíte zohlednit obě strany. Pokud odešlete 80,000 tokenů kontextu, zbývá vám pouze 20,000 pro odpověď.
Většina modelů má výchozí malé omezení výstupu, pokud nezadáte max_tokens. To může neočekávaně zkrátit dlouhé odpovědi. Nastavte max_tokens na požadovanou délku pouze v případě, že chcete stanovit horní mez. Pamatujte, že toto omezení platí pro celou žádost, ne jen pro vstupní prompt.
Správné zpracování přerušení streamování
Streamování pomocí Server-Sent Events (SSE) vyžaduje robustní zpracování chyb. Pokud dojde k přerušení spojení, můžete přijít o poslední token nebo metadata o využití. Vždy bufferizujte příchozí části a na straně klienta znovu sestavte kompletní odpověď.
Data o využití tokenů jsou obvykle odesílána v posledním bloku streamu. Pokud připojení ukončíte předčasně, můžete si nechat ujít přesný počet tokenů. To ovlivňuje přesnost fakturace v předplacených systémech. Implementujte mechanismus opakování s exponenciálním zpomalováním pro řešení přechodných síťových problémů.
Použijte specializovaného streamovacího klienta, který automaticky zpracovává SSE. To snižuje riziko chyb při parsování a zajišťuje, že zachytíte všechna data.
Chyby při parsování v režimu JSON
Při použití response_format: {"type": "json_object"} musí model vrátit platné JSON. Jakákoliv odchylka způsobí chyby při parsování ve vaší aplikaci. Ujistěte se, že váš prompt explicitně nařizuje modelu výstup pouze ve formátu JSON.
Někdy model zahrnuje bloky kódu Markdown kolem JSON, což naruší přísné parsery. Před parsováním odstraňte obaly . Také ověřte strukturu JSON na straně klienta před použitím dat.
Použijte knihovnu pro validaci schématu, abyste chyby odhalili co nejdříve. Tím předejdete pádům, když model vrátí neočekávané klíče nebo typy.
Překvapení při počítání tokenů a fakturaci
Předplacené fakturace účtuje pouze za skutečné využití tokenů. Chyby a odmítnutí jsou zdarma, což je významná výhoda oproti předplatným modelům. Nicméně počítání tokenů může být složité, pokud nezohledníte celý kontext.
Každá zpráva v historii konverzí se započítává do limitu vstupních tokenů. Dlouhé konverzije vyčerpají vaši předplacenou kreditní částku rychleji, než byste čekali. Pravidelně sledujte své využití, abyste předešli vyčerpání kreditu během relace.
Nastavte upozornění na nízký zůstatek kreditů. To vám zajistí, že budete moci doplnit kredit před selháním vašich požadavků. Pamatujte, že kredity nikdy nevyprší, takže je můžete doplnit kdykoliv vám to vyhovuje.
Vyhněte se měkkým odmítnutím u NSFW promptů
Měkké odmítnutí nastává, když model váhá nebo poskytne částečnou odpověď místo přímé odpovědi. K tomu často dochází u kontroverzních nebo dospělých témat. I v necenzurovaném modelu mohou určité spouštěče způsobit váhání.
Upravte parametr temperature pro snížení náhodnosti. Nižší teplota činí model více deterministickým a méně pravděpodobně používá výmluvy. Také se ujistěte, že váš prompt je jasný a přímý. Vyhněte se nejednoznačnému jazyku, který by mohl model zmást.
Pokud se často setkáváte s měkkými odmítnutími, zkuste mírně přeformulovat zadání. Drobné změny ve formulaci často pomohou překonat váhání a získat přímou odpověď.
Špičky limitu rychlosti a strategie zpětného odstupňování
Rozhraní API umožňuje 300 požadavků za minutu a 8 souběžných požadavků na klíč. Výkyvy v provozu mohou rychle tyto limity překročit. Implementujte exponenciální backoff pro elegantní zpracování chyb při překročení limitu.
Když obdržíte stavový kód 429, počkejte před opakováním pokusu. Začněte krátkým zpožděním a toto zpoždění zvyšujte s každým dalším pokusem. Tím předejdete přetížení serveru během špičkových období.
Sledujte svou rychlost požadavků a příslušně upravte úroveň paralelismu. Pokud odesíláte mnoho současných požadavků, zvažte jejich rozložení v čase. To zajišťuje stabilní propustnost bez překročení limitů.
Struktury payloadů volání funkcí
Volání funkcí vyžaduje specifickou strukturu payloadu. Definujte své funkce v parametru tools a určete tool_choice. Model vrátí volání funkce, pokud určí, že je to vhodná odpověď.
Ujistěte se, že definice funkcí jsou přesné a kompletní. Chybějící parametry nebo nesprávné typy mohou vést k tomu, že model vygeneruje neplatné volání. Vždy ověřte argumenty volání funkce před jejím provedením.
Použijte parametr tool_choice k řízení toho, kdy model volá funkce. Můžete vynutit volání funkce, nechat model, aby se rozhodl, nebo zcela vypnout volání funkcí. To vám poskytuje jemné řízení chování modelu.
Ladění chyb 400 a 500
Chyby 400 signalizují problémy na straně klienta, například neplatný formát JSON nebo chybějící parametry. Chyby 500 naznačují problémy na straně serveru, jako jsou interní chyby nebo časové limity. Rozlišení mezi těmito dvěma typy vám pomůže ladit rychleji.
U chyb 400 zkontrolujte chybovou zprávu poskytnutou v odpovědi. Ta obvykle přímo ukazuje na problém. U chyb 500 zkuste požadavek opakovat po krátkém zpoždění. Pokud chyba přetrvává, kontaktujte podporu s ID požadavku.
Zaznamenávejte podrobnosti o požadavku i odpovědi pro každou chybu. To pomáhá identifikovat vzorce a opakující se problémy. Použijte službu pro logování k sledování chyb v čase a zlepšení integrace vaší API.