4. Kontekst jako dodatkowe źródło wiedzy

ENHANCER+ · Moduł 1 — Od czatu z modelem do systemu z własną wiedzą  ·  Rozdział 3 z 6

Kontekst to informacje przekazane modelowi na potrzeby konkretnego zadania: fragment instrukcji, treść regulaminu lub wynik wyszukania w bazie wiedzy.

Dodanie kontekstu zmienia podstawę odpowiedzi: model otrzymuje tekst, którego nie musiał znać wcześniej. Samo wklejenie dokumentu nie jest trenowaniem modelu i nie oznacza trwałego zapisania jego treści w parametrach.

W tym rozdziale samodzielnie wybierasz fragment i umieszczasz go obok pytania. Jest to ręczne przygotowanie kontekstu. Automatyczne wyszukiwanie odpowiedniego fragmentu pojawi się w opisie RAG w rozdziale 5.

Instrukcja, która będzie podstawą odpowiedzi

📄 instrukcja.txt — „Instrukcja administratora systemu DocAssist”

Wersja dokumentu 1.4, wersja systemu 1.4, wersja pakietu danych 1.0. Plik TXT nie ma numerów stron — do wskazania miejsca używaj nazwy pliku, wersji i sekcji.

Sekcja 1 — Zakres dokumentu.

DocAssist jest fikcyjnym asystentem dokumentacji. W tym module analizujemy tekst i odpowiedzi modelu. Dokument nie opisuje instalacji ani konfiguracji TLS.

Sekcja 5.2 — Ponowne uruchomienie po zmianie konfiguracji.

Po zmianie pliku /etc/docassist/config.yaml uruchom ponownie usługę, a następnie sprawdź jej stan:

sudo systemctl restart docassist-api
systemctl is-active docassist-api

Prawidłowy wynik to active. Jeżeli wynik jest inny niż active, wyświetl 50 ostatnich wpisów dziennika:

journalctl -u docassist-api -n 50 --no-pager

Sekcja 6.1 — Kopia przed aktualizacją.

Przed rozpoczęciem aktualizacji wykonaj kopię katalogu /var/lib/docassist i zachowaj ją przez 30 dni.

Sekcja 7.1 — Zgłaszanie niejasności.

Jeżeli instrukcja nie obejmuje problemu, zgłoś go prowadzącemu jako brak danych. Nie dopisuj lokalnej procedury na podstawie ogólnej wiedzy.

⚠️ Uwaga

Te polecenia są treścią dokumentu ćwiczeniowego. Ich przeczytanie, przepisanie do odpowiedzi lub zacytowanie nie oznacza wykonania. W zadaniach tego modułu nie uruchamiaj ich w terminalu.

Pytanie, kontekst i zasady odpowiedzi

Pytanie przewodnie brzmi: „Co należy zrobić po zmianie pliku konfiguracyjnego DocAssist, aby sprawdzić poprawność działania usługi?”. Potrzebujesz sekcji 5.2, ponieważ zawiera czynność, polecenie sprawdzające, oczekiwany wynik oraz warunek dalszego działania. Sama sekcja o kopii przed aktualizacją dotyczy innego zadania.

Poniższy schemat rozdziela polecenie dla modelu od analizowanego dokumentu. W miejscu oznaczonym nawiasami wstaw pełną treść sekcji 5.2, łącznie z poleceniami i warunkiem.

📝 Prompt / wejście dla modelu
Odpowiedz wyłącznie na podstawie KONTEKSTU.
Przedstaw kroki i warunki ich wykonania.
Wskaż nazwę pliku, wersję i sekcję.
Jeśli brakuje danych, napisz, czego nie można ustalić.

KONTEKST
Źródło: instrukcja.txt, wersja 1.4, sekcja 5.2
[pełna treść sekcji 5.2]
KONIEC KONTEKSTU

PYTANIE
Co należy zrobić po zmianie pliku konfiguracyjnego DocAssist,
aby sprawdzić poprawność działania usługi?

Oznaczenie granic ułatwia czytanie i analizę wejścia. Nie daje jednak gwarancji, że model zawsze poprawnie oddzieli dane od instrukcji. Dokument źródłowy traktujesz jako materiał do odpowiedzi, a nie jako upoważnienie do wykonywania poleceń lub zmiany zasad pracy asystenta.

Odpowiedź oparta na kompletnym fragmencie

Odpowiedź demonstracyjna zgodna ze źródłem
„Po zmianie /etc/docassist/config.yaml uruchom ponownie usługę poleceniem sudo systemctl restart docassist-api. Sprawdź stan poleceniem systemctl is-active docassist-api; oczekiwany wynik to active. Jeżeli wynik jest inny niż active, wyświetl 50 ostatnich wpisów poleceniem journalctl -u docassist-api -n 50 --no-pager. Źródło: instrukcja.txt, wersja 1.4, sekcja 5.2”.

Zwróć uwagę na warunek. Dokument nie nakazuje wyświetlania dziennika tylko wtedy, gdy pojawi się słowo failed. Mówi o każdym wyniku innym niż active. Zawężenie tego warunku zmieniłoby znaczenie procedury. Podobnie pominięcie oczekiwanego wyniku utrudniłoby ocenę, czy sprawdzenie zakończyło się poprawnie.

Gdy kontekst jest niepełny

Załóżmy, że przekazano tylko pierwsze zdanie sekcji 5.2 oraz polecenie restartu. Model może na tej podstawie opisać ponowne uruchomienie. Nie ma jednak w tym fragmencie polecenia sprawdzającego, oczekiwanego wyniku ani sposobu wyświetlenia dziennika. Odpowiedź powinna wyraźnie wskazać te ograniczenia.

Dobra odpowiedź częściowa
„Fragment zaleca ponowne uruchomienie docassist-api. Nie zawiera sposobu sprawdzenia stanu ani warunku dalszego postępowania”.

Jest użyteczna, ponieważ oddziela to, co wiadomo, od brakujących danych. Dopisanie znajomego polecenia z pamięci naruszyłoby przyjętą zasadę odpowiedzi wyłącznie na podstawie kontekstu.

✍️ Ćwiczenie 3
Dobierz zakres odpowiedzi

Dla pytania przewodniego rozważ trzy zestawy informacji: pełną sekcję 5.2, wyłącznie zdanie o restarcie wraz z poleceniem oraz wyłącznie sekcję 6.1.

  1. Dla każdego zestawu zapisz, na jaką część pytania można odpowiedzieć.
  2. Wypisz informacje, których brakuje w drugim i trzecim zestawie.
  3. Napisz odpowiedź częściową dla drugiego zestawu i odpowiedź zgłaszającą brak danych dla trzeciego.
  4. Wyjaśnij, dlaczego dłuższy fragment nie zawsze oznacza lepszy kontekst.
✅ Sprawdź się: nie uzupełniasz braków tym, co pamiętasz z wcześniejszej lektury pełnej instrukcji. Oceniasz wyłącznie informacje dostępne w danym wariancie.
ENHANCER+ · Politechnika Warszawska · materiał do samodzielnej nauki offline