llm 0.33 skida privremeno ograničenje i prelazi na httpx2

Izdanje 0.32.1 je nove instalacije držalo na okupu tako što je ograničilo OpenAI-jev Python paket ispod 3.0.0. To je bila mjera za predah, a 0.33 donosi pravu popravku: prelazi na biblioteku OpenAI 3.x i mijenja HTTP klijent s httpx na httpx2. Uz to stižu i izmjene koje se vide u svakodnevnom radu, među njima opcija --key na komandama za ugnježdavanje i izlazi serverskih poziva alata koji se konačno pojavljuju u llm logs.

Izdanje 0.32.1 objavljeno je 21. avgusta i sav njegov sadržaj bio je jedan red: ograničenje verzije koje je zaustavilo pucanje novih instalacija. Popravka umjesto koje je stajalo stigla je dan kasnije. llm 0.33, objavljen 22. avgusta, prelazi na OpenAI-jevu Python biblioteku 3.x i premješta HTTP klijent s httpx na httpx2. Ograničenje izlazi Kvar koji je 0.32.1 zakrpio došao je uzvodno: OpenAI-jev paket je prestao da zavisi od httpx-a, a llm je httpx uvozio, a da ga nije prijavio. Ograničavanje paketa ispod 3.0.0 zadržalo je staru zavisnost, pa su instalacije proradile bez prepisivanja. Time je llm ostao zaključan na staro glavno izdanje biblioteke koju ne kontroliše, a to je dug koji nosi kamatu. 0.33 ga vraća. Zavisnost je sada prijavljena, a klijent je httpx2, pa nova instalacija više ne zavisi od toga šta neko drugi slučajno povuče sa sobom. Šta se još promijenilo Tri dodatka nešto znače onome ko llm koristi za više od pojedinačnog upita. llm embed i llm embed-multi primaju --key, a Python metode primaju key=. Ključ se prosljeđuje po pozivu, pa dodatak više ne mora da mijenja zajedničko stanje modela da bi upotrijebio drugi. Dodaci koji čitaju self.key nastavljaju da rade kroz zamjenu radi saglasnosti. llm logs sada prikazuje izlaz serverskih poziva alata u odjeljku Tool results i označava ih ključem server_executed u izlazima --json i --short. Do sada tog izlaza u zapisu jednostavno nije bilo. llm prompt -t smije da se ponovi, pa se podešavanje modela iz jednog šablona spaja s upitom iz drugog. Greške koje su ranije bile tihe schema_dsl() sada podiže opisan ValueError za nepoznatu vrstu polja ili za dvaput navedeno ime polja. Ranije je nepoznatu vrstu tretirao kao nisku, a ponovljeno ime je prepisivalo ranije polje — a takvo podrazumijevano ponašanje od štamparske greške pravi pogrešan rezultat umjesto prijave greške. Događaji toka razmišljanja koji nose podatke isporučioca, a nemaju tekst čuvaju se kao ReasoningPart, pa neprozirno stanje poput Anthropicovih potpisa i redigovanog razmišljanja preživi put u oba smjera umjesto da bude odbačeno.