W miarę rozwoju sztucznej inteligencji, ChatGPT stał się jednym z najbardziej zaawansowanych modeli generatywnych, który potrafi odpowiadać na różnorodne pytania i prowadzić rozmowę z użytkownikami. Jednak istnieje pewien aspekt, który odgrywa kluczową rolę w uzyskiwaniu trafnych i zrozumiałych odpowiedzi – kontekst. Przyjrzyjmy się czym jest i jak definiować kontekst w ChatGPT w naszych zapytaniach.
Czym jest kontekst w ChatGPT?
Kontekst odnosi się do informacji, która poprzedza lub towarzyszy danemu zapytaniu. Może obejmować kilka różnych elementów, takich jak poprzednie pytania lub wypowiedzi, temat rozmowy, informacje o użytkowniku czy też kontekst społeczno-kulturowy. Wykorzystanie kontekstu jest nieodłącznym elementem skutecznej komunikacji międzyludzkiej, a teraz staje się kluczowym czynnikiem dla ChatGPT.
Kontekst odgrywa kluczową rolę w zrozumieniu intencji użytkownika oraz w generowaniu trafnych odpowiedzi przez ChatGPT. Bez uwzględnienia kontekstu, model mógłby dostarczyć ogólnych odpowiedzi, które niekoniecznie odzwierciedlają intencje lub pytania użytkownika. Jednak dzięki dostarczeniu odpowiedniego kontekstu, ChatGPT jest w stanie dostarczyć bardziej spersonalizowane i dokładne odpowiedzi.
Małe zmiany w kontekście mogą prowadzić do zupełnie innych odpowiedzi. Przykładowo, jeśli użytkownik zadał pytanie “Jakie są najpopularniejsze przełączniki dostępowe firmy Cisco w 2019 roku?“, ChatGPT może odpowiedzieć na podstawie dostępnych informacji do momentu jego treningu. Jednak jeśli kontekst zostanie zmieniony na “Jakie są najpopularniejsze przełączniki dostępowe firmy Cisco w 2022 roku?“, odpowiedź ChatGPT również się zmieni, ponieważ model nie miał dostępu do informacji z przyszłości. Pamiętajmy, w momencie gdy powstawał ten artykuł ChatGPT ma ograniczenia w zakresie wiedzy i aktualności do września 2021 roku.
Jak tworzyć kontekst zapytania
Aby skutecznie wspomóc tworzenie automatyzacji sieci komputerowych za pomocą ChatGPT, warto uwzględnić kilka kluczowych elementów w definiowaniu kontekstu zapytania. Oto kilka wskazówek, które mogą pomóc:
- Opis problemu: Dokładnie opisz problem lub cel, z którym chcesz się zautomatyzować w sieci komputerowej. Wyjaśnij, jakie zadania lub operacje muszą być wykonane automatycznie. Im bardziej szczegółowy opis, tym łatwiej będzie ChatGPT zrozumieć kontekst i dostarczyć odpowiednie odpowiedzi.
- Architektura sieciowa: Przedstaw informacje na temat aktualnej architektury sieciowej. Obejmuje to topologię sieci, rodzaje urządzeń sieciowych (routery, przełączniki, firewalle itp.) i ich konfigurację. Podanie tych szczegółów pozwala ChatGPT lepiej zrozumieć kontekst i dostosować odpowiedzi do specyfiki sieci.
- Technologie i protokoły: Określ używane technologie i protokoły sieciowe. Na przykład, czy sieć wykorzystuje protokół TCP/IP, MPLS, BGP czy inne? Informacje o technologiach i protokołach pomogą ChatGPT dostarczyć odpowiedzi, które są zgodne z danymi technologiami i uwzględniają ich specyficzne funkcje.
- Cel automatyzacji: Wyjaśnij, dlaczego chcesz zautomatyzować określone zadania lub operacje sieciowe. Czy chodzi o usprawnienie procesów, zoptymalizowanie wydajności, zarządzanie bezpieczeństwem czy coś innego? Wyjaśnienie celu automatyzacji pozwoli ChatGPT lepiej zrozumieć kontekst i dostarczyć odpowiedzi, które skupiają się na osiągnięciu tych celów.
- Wymagania i ograniczenia: Przedstaw istotne wymagania i ograniczenia, które muszą być uwzględnione podczas tworzenia automatyzacji sieci. Na przykład, czy istnieją ograniczenia dotyczące dostępnych zasobów, bezpieczeństwa, skalowalności czy zgodności ze standardami branżowymi? Przekazanie tych informacji pozwoli ChatGPT generować odpowiedzi, które uwzględniają te wymagania i ograniczenia.
I jeszcze jedna uwaga – szukanie najlepszej odpowiedzi to często kolejne iteracje zapytań, w których zawężamy kontekst zapytania. Jednak aby dobrze zawężać kontekst musimy mieć wiedzę z zakresu, o który pytamy. ChatGPT nie pokryje braków w naszej wiedzy.
Przykład pracy z kontekstem w ChatGPT
Na koniec tego artykułu przykład wykorzystania kontekstu, a także tego, że nawet dla nas zdefiniowany kontekst nie koniecznie oznacza dobrą definicję dla ChatGPT. Zachęcam Cię do samodzielnego testowania jakie odpowiedzi wygeneruje ChatGPT czy to dla mojego przykładu, czy innego, który sobie wymyślisz.
Zadałem ChatGPT-3.5 pytanie o to jak powinna wyglądać lista kontrolna ACL przypisana do firewalla Cisco ASA. Jako kontekst podałem informację o usługach, które z Internetu muszą być dostępne. Jego odpowiedź znajdziesz na zrzucie ekranu, który widzisz po prawej stronie.
Odpowiedź wygenerowana przez ChatGPT nie zawiera informacji o adresach IP, bo tych danych w kontekście zabrakło. Konfiguracja sama w sobie jest poprawna i zgodna z dobrymi praktykami dopuszczając ruch na wskazanych przez nas portach oraz odrzucając i logując wszystkie inne połączenia.
Wyobraźmy sobie, że ktoś atakuje naszą sieć i nie do końca wiemy co atakuje ani jak się bronić. Zmieniliśmy zatem kontekst zapytania prosząc o rady jak się bronić.
Odpowiedź jaką uzyskaliśmy jest mniej poprawna i pełna niż w poprzednim zapytaniu. Owszem, ChatGPT wykorzystał kontekst ataku na nas i kontekst najlepszych praktyk obrony przed atakiem umieszczając wpis blokujący wszelki ruch do naszej sieci jako pierwszy wpis w ACL. Nie uwzględnił jednak kontekstu identyfikacji atakowanej usługi przez logowanie połączeń (na końcu żadnego z wpisów nie ma parametru log).
Napiszcie w komentarzu jak udało Wam się zmodyfikować kontekst zapytania by osiągnąć optymalną odpowiedź!