fix(llm): pusta odpowiedz modelu to blad, nie pusta strona #17
Reference in New Issue
Block a user
Delete Branch "fix/empty-llm-response"
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?
Objaw
W Kalendarzu horoskop wyswietla sie poprawnie. W Interpretacjach zapytanie wychodzi,
wraca — i nic sie nie pokazuje, bez zadnego komunikatu.
Przyczyna
Model potrafi oddac pusta tresc (
finish_reason=length,completion_tokens=0).generate()zwracalo wtedy pusty tekst bez bledu, a dalej:i
llm_errornie byl ustawiony → zero wyjasnienia. Klasyczna cicha awaria.Skad asymetria miedzy ekranami: prompt natalny jest znacznie wiekszy (13 obiektow ×
fasety × oryginalne opisy z bazy) i wypelnia okno kontekstu modelu lokalnego — na odpowiedz nie
zostaje miejsca. Prompt okresowy jest mniejszy i sie miesci. Dlatego Kalendarz dzialal,
a Interpretacje nie.
Naprawa
Wspolny straznik
_require_text()dla obu dostawcow: pusta lub bialoznakowa odpowiedz podnosiLLMError. Komunikat prowadzi do przyczyny, a nie tylko stwierdza fakt:Anthropic sprowadzony do wspolnego ksztaltu diagnostyki (
input_tokens/output_tokens).Dzieki sciezce
llm_erroruzytkownik dostaje powod ORAZ gotowy prompt do recznego uzycia.Weryfikacja
diagnostyki w komunikacie, oraz ze poprawna odpowiedz nadal przechodzi. Calosc: 148 passed.
zgloszony objaw — po poprawce zamiast pustej strony pojawia sie pelny komunikat z diagnostyka.
Co to znaczy dla Ciebie w praktyce
Poprawka sprawia, ze zobaczysz przyczyne. Sam horoskop natalny na modelu lokalnym najpewniej
nadal sie nie zmiesci, dopoki nie zrobisz jednego z:
num_ctxw Ollamie (domyslny bywa mocno za maly na prompt natalny),Objaw zgloszony przez uzytkownika: w Kalendarzu horoskop wyswietla sie poprawnie, w Interpretacjach zapytanie wychodzi, wraca — i NIC sie nie pokazuje. Bez zadnego komunikatu. Przyczyna: model potrafi oddac pusta tresc (finish_reason=length, completion_tokens=0), a generate() zwracalo wtedy pusty tekst BEZ bledu. Widok sprawdza {% if prompt_result.horoscope %} -> falsz -> nie renderuje nic, a llm_error nie jest ustawiony -> zero wyjasnienia. Cicha awaria. Asymetria miedzy ekranami wynika z rozmiaru promptu: natalny (13 obiektow x fasety x opisy z bazy) wypelnia okno kontekstu modelu lokalnego i na odpowiedz nie zostaje miejsca; okresowy jest mniejszy i sie miesci. - wspolny straznik _require_text() dla obu dostawcow: pusta lub bialoznakowa odpowiedz podnosi LLMError, - komunikat PROWADZI DO PRZYCZYNY: podaje finish_reason i zuzycie tokenow oraz radzi zmniejszyc budzet promptu / zwiekszyc num_ctx / LLM_MAX_TOKENS, - Anthropic sprowadzony do wspolnego ksztaltu diagnostyki (input/output_tokens). Dzieki temu uzytkownik widzi powod ORAZ gotowy prompt do recznego uzycia. Zweryfikowane na zywym stosie z atrapa modelu oddajaca pusta tresc: zamiast pustej strony pojawia sie pelny komunikat z diagnostyka. Testy: 148 passed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>