Skip to content

v0.31.0 - Audyt RWA + 2 naprawy

Choose a tag to compare

@mtsle mtsle released this 28 Jul 18:27
· 102 commits to main since this release

v0.31.0 - Audyt RWA (RAG/retrieval/koszt) + 2 naprawy

Kompleksowy audyt RAG-owej polowki produktu wedlug metodologii RWA (Retrieval/
Topical boundary/Grounding/Anti-halucynacje/Koszt/Cache/Inkrementalne
indeksowanie), zlecony przez usera jako osobna praca w jednym czacie, bez
subagentow. Pelny raport: plany/KROK23-ETAP2-RWA-AUDYT.md. Zero P0. Dwa
znaleziska P1 wdrozone na decyzje usera, trzecie (G1 - pokazanie zrodel
gosciowi) swiadomie odlozone jako rekomendacja.

R1 - tytul strony wzmacnial tylko pierwszy fragment

Indexer.php sklejal title . text PRZED chunkowaniem, wiec zakotwiczenie
tytulem ("Cennik", "Godziny otwarcia") trafialo embeddingiem wylacznie do
chunk_index=0. Fragmenty 2+ tej samej strony (gdzie realnie leza liczby/
szczegoly) tratowaly ten sygnal przy wyszukiwaniu. Teraz: chunking na samej
tresci, tytul dolaczany do KAZDEGO fragmentu PO podziale.

Efekt uboczny: content_hash wszystkich fragmentow sie zmienia - pierwszy
reindeks po aktualizacji przeliczy embeddingi calej bazy (jednorazowy koszt
w ramach limitu 20/dobe, klikniety swiadomie jak zawsze - nie ukryty).

F1 - brak sygnalu "tresc zmienila sie od ostatniego indeksowania"

Istniejacy IndexNotice pilnowal wylacznie zgodnosci przestrzeni
embeddingow (model/taskType), nie swiezosci tresci. Wlasciciel edytujacy
cene czy godziny nie dostawal zadnego przypomnienia o reindeksie - bot
mogl cicho serwowac nieaktualne dane.

Nowe: KnowledgeRepository::stale_post_count() (JOIN wp_posts.post_modified
vs updated_at fragmentow, zero wywolan API) + KnowledgeRepository:: touch_post() (odswieza updated_at przy skip-unchanged, zeby wpis bez
zmiany tresci nie utknal jako "niesiwiezy" na zawsze) + nowa klasa
Admin\FreshnessNotice (piaty komunikat kokpitu, ten sam wzorzec co
IndexNotice - bez dismiss/nonce, gasnie sam po reindeksie).

Swiadomie odlozone

G1 - zrodla (tytul+URL fragmentow) sa liczone w RagService, ale nigdy
nie trafiaja do goscia (zweryfikowane grepem assets/js/*). Zmiana
kontraktu REST /ask + frontu - user zdecydowal nie wdrazac teraz.
Rekomendacja zostaje w raporcie audytu.

Odbior

runner 49/49 plikow tests/*.php - 0 niezaliczonych (2 realne regresje
  znalezione i naprawione: atrapy FakeWpdb/AF_Wpdb w
  krok5-indexer-test.php/krok7-audit-fixes-test.php nie mialy metody
  update(), ktora teraz wola touch_post() - dopisana z realna semantyka)
php -l czysto na wszystkich zmienionych/nowych plikach
budzet API: 0 - caly zestaw statyczny/z atrapami
zero zmian schematu bazy (DB_VERSION bez zmian, '5')

Metoda: glowna sesja, bez subagentow/tokenizatora (wyrazne zyczenie usera).

NASTEPNY KROK: Krok 23 etap 2 - "RWA" (responsywnosc/RWD) wraca na
liste etapow K23 - ten release byl praca WSTAWIONA poza kolejnoscia etapow
(inne znaczenie skrotu "RWA", wyjasnione i potwierdzone przez usera w
sesji). Etapy K23 bez zmian: 3. Testy obciazeniowe, 4. Testy segmenty,
5. Testy while, 6. Audyt, 7. Dokumentacja, 8. Kompatybilnosc Batch,
9. LICENSE/readme.txt, 10. Domkniecie.