7. Uruchomienie chatbota z dokumentami

7.2. Dalszy rozwój na podstawie modułu 5

Lokalne chatboty, agenci i systemy RAG z własną bazą wiedzy

Instrukcja krok po kroku · materiał uzupełniający

Budujemy chatbota w konsoli

Plan rozszerzenia

Odniesienie: M5 R3–R6   |   Czas: 10 min, opcjonalnie

Gdy podstawowy chatbot działa, możesz rozszerzyć projekt o przygotowanie samodzielnego pytania i kontrolowany wybór narzędzi. To oddzielny etap, który wymaga własnych testów.

Jak dołożyć rozumienie pytań uzupełniających

  1. Zapisuj ograniczoną historię i rozpoznaj, czy nowe pytanie jest samodzielne.
  2. Dla odniesienia do wcześniejszej wypowiedzi przygotuj pytanie samodzielne. Jeśli nie wiadomo, do czego odnosi się użytkownik, poproś o doprecyzowanie.
  3. Zachowaj pytanie oryginalne i pytanie samodzielne w wyniku.
  4. Uruchom nowe wyszukiwanie dla pytania samodzielnego. Poprzednia odpowiedź LLM nie może zastąpić dokumentów.

W pakiecie Studenta M5 przeanalizuj resolve_followup_question(), assistant_step() i run_assistant() z kod/m5_tools.py. Kursowa obsługa odniesień ma własny kontrakt i ograniczenia; nie jest uniwersalnym rozumieniem wszystkich wypowiedzi.

Gdzie zaczyna się mechanizm agentowy

Wpisanie /sources uruchamia regułę zapisaną przez autora programu. Samo to nie oznacza, że model wybrał narzędzie. W M5 model może zaproponować jedną z dozwolonych funkcji, a kod sprawdza nazwę, argumenty i reguły wykonania.

Funkcja z M5Cel
answer_from_documentsNowa odpowiedź RAG na pytanie.
show_last_sourcesOdczyt źródeł ostatniego zakończonego RAG.
get_document_metadataOdczyt metadanych dokumentu o jawnym ID.

Nie podłączaj eval(), dowolnych poleceń powłoki ani wykonywania tekstu zwróconego przez model. Do prototypu z tej książki nie są potrzebne. Nie kopiuj jednego pliku M5 do obecnego katalogu: jego zależności, indeks i kontrakty należą do całego pakietu Studenta M5.

Punkt kontrolny

  • Potrafisz wskazać, które rozszerzenie wymaga nowego kontraktu wyniku i nowych przypadków testowych.
  • Wiesz, że działający chatbot konsolowy nie wymaga mechanizmu agentowego.

Instrukcja uczestnika · Python i Ollama · wydanie 29.09.2026