Budowa chatbota CLI
8. Plan sprawdzenia chatbota
8.2. Diagnoza błędów i jedna zmiana
Lokalne chatboty, agenci i systemy RAG z własną bazą wiedzy
Instrukcja krok po kroku · materiał uzupełniający
Budujemy chatbota w konsoli
Porównanie A/B
Najpierw znajdź etap, w którym pojawia się błąd. Potem zmień jeden parametr i ponów ten sam zestaw.
| Objaw | Najpierw sprawdź |
|---|---|
| Odpowiedniej informacji nie ma w bazie | Zakres dokumentów i wynik przygotowania w M2. |
| Informacja jest w źródle, nie ma jej we fragmencie | Ekstrakcję, czyszczenie i podział. |
| Fragment istnieje, ale nie mieści się w top-k | Ranking, parafrazę pytania i model embeddingowy. |
| Jest w top-k, nie ma go w sources | Próg podobieństwa i budżet kontekstu. |
| Jest w sources, odpowiedź przekłamuje treść | Prompt, instrukcje, zachowanie warunków i model generujący. |
| Wynik urywa się w połowie zdania | done_reason i limit num_predict. |
| Po nowym pytaniu widzisz stare źródła | Aktualizację stanu interfejsu. |
Porównaj top_k = 3 i top_k = 5
- Zachowaj folder pierwszego pomiaru jako punkt odniesienia A.
- Zakończ uruchomione programy. W
config.jsonzmień tylkotop_kz 3 na 5. - Uruchom ponownie
ewaluacja.py. Nie musisz przebudowywać indeksu: baza i model embeddingowy są te same. - Porównaj te same ID w obu folderach. Sprawdź Hit@k, kompletność kontekstu, odpowiedź, liczbę źródeł i odmowy.
- Wybierz konfigurację na podstawie wyników całego zestawu. Zapisz także pogorszenia. Jeśli zwiększenie top-k nie pomogło, wróć do diagnozy.
Więcej fragmentów może dodać potrzebny wyjątek, ale też szum. W tym kodzie budżet kontekstu może sprawić, że nie wszystkie pięć fragmentów trafi do promptu. Dlatego porównuj ranking z sources.
Przykład rzeczywistego pomiaru przygotowawczego
Podczas sprawdzania tego materiału 29.09.2026, na podanych modelach i dziesięciu fragmentach DocAssist, wariant top-k = 3 uzyskał Hit@k = 4/5, a top-k = 5 uzyskał 5/5. W obu wariantach wykonano po osiem pytań bez błędów technicznych. Trzy przypadki bez oczekiwanego źródła wyłączono z mianownika tej miary.
W T03 fragment o przywróceniu kopii był na czwartej pozycji. Zwiększenie top-k wprowadziło go do kontekstu, ale odpowiedź nadal nie eksponowała jasno wymaganej procedury. W wariancie z pięcioma fragmentami odpowiedź T04 nie zawierała etykiety źródła. To przykład poprawy wyszukiwania, która nie wystarcza do akceptacji całego chatbota. Nie jest to wynik, który masz odtworzyć słowo w słowo. Wykonaj własny pomiar i ocenę.
Szablon krótkiego wniosku
Przypadek i result_id:
Objaw:
Dowód w źródle / rankingu / kontekście / odpowiedzi:
Przypuszczalna przyczyna:
Jedyna zmiana A → B:
Wynik na tym przypadku:
Wynik na pozostałych przypadkach:
Decyzja i ograniczenia:Warto wiedzieć. Temperatura 0 i stały seed pomagają utrzymać podobne warunki, lecz nie gwarantują identycznego tekstu na wszystkich urządzeniach i wersjach. Dla ważnych przypadków wykonaj kilka prób i opisz rozrzut. Próg podobieństwa dobieraj na oznaczonym zestawie; nie przenoś przypadkowej wartości z innego modelu.
Punkt kontrolny
- Zmieniłeś jeden element, a nie cały przepływ naraz.
- Potrafisz uzasadnić przyjęcie lub odrzucenie zmiany.
Instrukcja uczestnika · Python i Ollama · wydanie 29.09.2026