feat(llm): horoskop powstaje zawsze — kontynuacja, okna kontekstu, budzet max #18
Reference in New Issue
Block a user
Delete Branch "feat/llm-context-budget"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Zawiera i zastepuje PR #17 (ten sam obszar — pusta odpowiedz modelu).
Dlaczego Anthropic zwracal pustke — przyczyna potwierdzona w dokumentacji API
Domyslnym modelem byl
claude-sonnet-5, ktory przy pominietym parametrzethinkingwlacza myslenie adaptacyjne, a
thinking.displaydomyslnie jest"omitted". Tokenymyslenia licza sie do
max_tokens— wiec przyLLM_MAX_TOKENS=2000cala tura wychodzilajako bloki
thinkingz pustym tekstem. Parser filtrowaltype == "text"i oddawal pusty string.Opus 4.8 bez
thinkingnie mysli, wiec tam objaw by nie wystapil — stad „pustke dostajena anthropicu", a nie wszedzie.
Gwarancja: horoskop powstaje zawsze (wszyscy trzej dostawcy)
generate()to teraz petla, nie pojedynczy strzal:Realizuje to wprost Twoja sugestie „podzielic prompt na serie pytan i odpowiedzi w ramach
jednej rozmowy" — i jest odporniejsze niz jedno wielkie zadanie, bo kazda tura miesci sie
w timeoucie HTTP, a dlugosc odpowiedzi przestaje byc ograniczona jedna tura.
Detal, ktory latwo przeoczyc: kontynuacja konczy sie tura uzytkownika. Claude
odrzuca prefill w turze asystenta bledem 400, wiec naiwne „dopisz asystenta i wyslij"
by nie zadzialalo. Jest na to osobny test.
thinkingjest teraz konfigurowany jawnie:adaptive+effort: high(jakosc tekstu),z wylacznikiem
ANTHROPIC_THINKING=off.Okna kontekstu i rezerwa na odpowiedz (
app/llm/limits.py)<DOSTAWCA>_CONTEXT_WINDOW,<DOSTAWCA>_MAX_OUTPUT) — modele wychodza szybciej, niz aktualizuje sie kod;nigdy odwrotnie;
/v1/messages/count_tokens), reszta szacuje —od tego zalezy, czy w oknie w ogole zostanie miejsce na horoskop.
Suwak i ostrzezenie
Doszly poziomy „bardzo obszerny (~120 tys.)" i „maksymalny kontekst modelu" — ten
drugi liczy sie z okna wybranego modelu po odjeciu rezerwy (Opus 4.8: 870 000 tokenow
promptu; model lokalny: 2 096 — bo ma male okno).
Powyzej 90 tys. tokenow pojawia sie ostrzezenie, ale wyslanie jest nadal mozliwe
i okno odpowiedzi zostaje pelne — dokladnie jak prosiles. Przy wyniku widac plan tokenow,
liczbe tur i ostrzezenia.
Domyslny model Anthropic zmieniony na
claude-opus-4-8.Weryfikacja
kontynuacji, brak prefillu asystenta, tura z samego myslenia, rezerwa na odpowiedz,
prog ostrzezenia, nadpisania z ENV.
3 tury, obie czesci tekstu obecne, znacznik konca odciety.
Czego swiadomie NIE zrobilem
Trybu agenta — dla zadania „napisz tekst z dostarczonych danych" nie ma czego
narzedziowo wywolywac; petla kontynuacji rozwiazuje problem dlugosci prosciej i taniej.
Jesli kiedys horoskop mialby sam siegac do bazy w trakcie pisania, wtedy tryb agenta
zacznie miec sens — powiedz, to wroce do tematu.
46a21427dbto163ace4283