Budowa chatbota CLI
7. Uruchomienie chatbota z dokumentami
7.1. Pamięć rozmowy i komendy
Lokalne chatboty, agenci i systemy RAG z własną bazą wiedzy
Instrukcja krok po kroku · materiał uzupełniający
Budujemy chatbota w konsoli
Jasne granice interfejsu
Zapis historii nie oznacza jeszcze rozumienia pytań uzupełniających. W tej wersji RAG każda wiadomość merytoryczna powinna być samodzielnym pytaniem.
| Komenda | Działanie | Wywołanie modelu |
|---|---|---|
| /sources | Źródła ostatniej poprawnie zakończonej tury; po błędzie bieżącej tury lista jest pusta. | Nie |
| /history | Wyświetlenie maksymalnie trzech ostatnich udanych tur od ostatniego /clear. | Nie |
| /clear | Wyczyszczenie pamięci i źródeł w sesji. Pliki na dysku pozostają. | Nie |
| /exit | Zakończenie programu. | Nie |
Dwa sposoby użycia historii w tej książce
W czat_llm.py trzy pary wiadomości trafiają do modelu. W chatbot.py historia służy tylko do wyświetlania przez /history. Nie przekazujemy poprzednich odpowiedzi jako faktów do RAG. Odpowiedź modelu nie staje się dokumentem źródłowym.
Jak zadawać pytania uzupełniające w wersji podstawowej
| Niepełna wiadomość | Samodzielne pytanie |
|---|---|
| A co potem? | Co należy sprawdzić po ponownym uruchomieniu usługi DocAssist? |
| A po godzinach? | Jak zgłosić awarię całego zespołu poza godzinami dyżuru operatora DocAssist? |
| Jaki ma limit? | Jaka jest zalecana wartość timeout_seconds w dokumentacji DocAssist? |
Niepełne pytanie może otrzymać przypadkową odpowiedź, ponieważ ten program nie rozpoznaje automatycznie niejasnego odniesienia. To jawne ograniczenie prototypu. Przed dodaniem pamięci semantycznej warto najpierw upewnić się, że poprawnie działa pojedyncze pytanie.
Ćwiczenie kontroli stanu
- Po udanej odpowiedzi wpisz pustą wiadomość. Program nie powinien uruchomić modelu.
- Wpisz
/sources. W tej implementacji źródła są puste, bo niepoprawne pytanie rozpoczęło nową turę i wyczyściło poprzednią listę. - Ponownie zadaj pełne pytanie, a potem
/clear. Sprawdź, że pamięć jest pusta, lecz wcześniejszy plik wyniku nadal istnieje.
Punkt kontrolny
- Nie mylisz historii wyświetlanej z historią przekazaną modelowi.
- Potrafisz przeredagować „a potem?” na pełne pytanie.
Instrukcja uczestnika · Python i Ollama · wydanie 29.09.2026