Paweł Łukasiewicz
2024-10-01
Paweł Łukasiewicz
2024-10-01
Udostępnij Udostępnij Kontakt
Wprowadzenie

ChatGPT to chatbot firmy OpenAI, który wykorzystuje przetwarzanie języka naturalnego (NLP) do konwersacji z użytkownikiem na wzór ‘ludzkiej’. Akceptuje dane tekstowe znane jako prompts (podpowiedzi) i opowiada wyłącznie tekstowo (mówimy tutaj o bezpłatnej wersji z której korzystamy). Cechami, które wyróżniają ChatGPT spośród pozostałych rozwiązań jest to, że może generować kod zgodnie z podaną specyfikacją i udziela bardzo opisowej odpowiedzi na wszelkiego rodzaju zapytania czy to z dziedziny edukacji, nauki, kariery, czy nawet niszowych zagadnień technicznych. Pozwala również na debugowanie kodu podanego jako dane wejściowe.

Z uwagi na fakt, że ChatGPT akceptuje polecenia w języku naturalnym, ma tendencję do zwracania dokładniejszych i bardziej precyzyjnych odpowiedzi jeżeli przygotujemy odpowiednio opisowe prompty.

Pora przejść przez szereg przykładów dotyczących pracy backend developera. Poniżej lista wszystkich podpowiedzi wraz z odnośnikiem do danej sekcji:

Wyjaśnienie

Tworzenie oprogramowania polega na ciągłym uczeniu się i wdrażaniu nowych rozwiązań. ChatGPT może nam w tym pomóc wyjaśniając skomplikowane tematy, wzorce projektowe czy koncepcje kryjące się pod różnymi pojęciami. Prompt 'wyjaśnij' (lub z angielskiego explain) może zostać użyty do zrozumienia koncepcji, wyjaśnienia fragmentu kodu lub złożoności algorytmu. Duży plus to naprawdę szczegółowe odpowiedzi.

Schemat, który tutaj możemy stosować to:

Wyjaśnij jak {pojęcie lub funkcja} działa w języku {język programowania}
Wyjaśnij jak działa poniższy kod napisany w języku {język programowania} {kod}
Wyjaśnij złożoność poniższego kodu napisanego w {język programowania} {kod}
lub w języku angielskim:
Explain how the {concept of function} works in {programming language}
Explain how the below code written in {programming langauge} works {code sample}
Explain complexity of below code written in {programming language} {code sample}

Spójrzmy na kilka poniższych przykładów:

Wyjaśnienie wzorca fabryki w C# ChatGPT: wyjaśnienie działania wzorca fabryki Wyjaśnienie działania poniższego kodu w C# ChatGPT: wyjaśnienie działania kodu Wyjaśnienie złożoności kodu w C# ChatGPT: wyjaśnienie złożoności w kodzie

Składnia

Kiedy tworzyłem bloga nie sądziłem, że wyjdę poza obszar języka C#. Minęły lata i mogę potwierdzić, że programiści pracują z bardzo szerokim stosem technologicznym. Nikt z nas nie jest jednak w stanie zapamiętać składni każdego z języków czy używanych technologii. Z drugiej strony podczas nauki nowego języka będzie nam dużo łatwiej poprosić o pomoc, bo wiemy co chcemy osiągnąć mając wzorce innego języka. W tym miejscu z pomocą przychodzi ChatGPT, który rozwieje nasze wątpliwości i w ułamku sekund zwróci nam poprawną składnie danego języka programowania wraz z odpowiednimi przykładami.

Przykładowy prompt, który możemy wykorzystać:

Jaka jest poprawna składnia dla {funkcji, metody} w {język programowania}?
lub w języku angielskim:
What is correct syntax for {function, method} in {programming language}?

Spójrzmy na poniższe przykłady:

Składnia C# ChatGPT: poprawna składnia meody w C# Składnia w Angularze ChatGPT: poprawna składnia funkcji w Angularze

Naprawianie błędów

Spora część developmentu to znajdowanie i naprawianie błędów w kodzie. Wszyscy wiemy, jak to wpływa na naszą produktywność…dodatkowo znacząco wpływa na czas dostarczenia gotowej aplikacji na produkcje. Dodatkowo trzeba się liczyć z faktem, że osoba odpowiedzialna za dany fragment kodu już nie pracuje w naszej firmie albo przebywa na urlopie. Wówczas zrozumienie działania oraz czas znalezienia błędu mogą się znacząco wydłużyć. Tutaj możemy jednak spróbować skorzystać z pomocy ChatGPT, który przejdzie przez dostarczony kod i spróbuje znaleźć rozwiązanie.

Przykładowy prompt, który możemy wykorzystać:

Jak mogę naprawić następujący kod napisany w języku {język programowania}, który powinien (wyjaśnij działanie)? {fragment kodu}
lub odpowiednik w języku angielskim:
How can I fix following code written in {programming language} which should {explain the functioning}? {code snipped}

Zerknijmy na poniższy przykład: ChatGPT: szukanie błędu w kodzie

Najlepsze praktyki

Znajomość najlepszych praktyk i tworzenia czystego kodu jest niezwykle pożądana przy pracy na rozwojem oprogramowania. Tak napisany kod jest łatwy w interpretacji przez innych programistów a dodatkowo sam rozwój i utrzymanie powinno być dużo prostsze.

ChatGPT może nam przedstawić zestaw zasad i zaleceń, których powinniśmy przestrzegać podczas tworzenia oprogramowania.

Przykładowy prompt, który możemy wykorzystać:

Pokaż mi najlepsze praktyki pisania {metod, funkcji, wykorzystania wzorców projektowych} w {język programowania}
lub odpowiednik w języku angielskim:
Show me best practises for writing {method, function, use of design patterns} in {programming language}

ChatGPT: najlepsze praktyki przy pisaniu Unit Testów

Optymalizacja

Zawsze zaleca się pisanie jak najbardziej zoptymalizowanego kodu, ponieważ poprawia to wydajność programu i pomaga oszczędzać zasoby. Optymalizacja może dotyczyć liczby linii kodu, złożoności, optymalizacji zapytań LINQ, zarządzania pamięcią, cache’owania danych czy programowania asynchronicznego.

Przykładowy prompt, który możemy wykorzystać:

Zoptymalizuj następujący kod napisany w języku {język programowania}, który {wyjaśnij działanie}: {fragment kodu}
lub odpowiednik w języku angielskim:
Optimize the following code written in {programming language} which {explain the functioning}: {code snippet}

Spójrzmy na błędnie napisany test, w którym dochodzi do niepotrzebnego blokowania wątku: ChatGPT: poszukiwanie błędów w unit teście

Tworzenie kodu

Jak już doskonale wiecie z poprzednich wpisów, ChatGPT może być również używany do tworzenia fragmentów kodu w oparciu o wymagane podane w poleceniu. Ponownie uczulam, jest to kluczowa część polecenia.

Przykładowy prompt, który możemy wykorzystać:

Napisz program/funkcję, która {wyjaśnij funkcjonalność} w {język programowania}
lub odpowiednik w języku angielskim:
Write program/function to {explain functionality} in {programming language}

Spójrzmy na poniższy przykład w języku C#: ChatGPT: implementacja wzorca obserwatora w C#

Konwersja kodu

Czasami musimy przekonwertować kod z jednego języka na inny. Jeżeli w firmie dojdzie do zmiany stosu technologicznego a my musimy przepisać/napisać od nowa aplikację często będziemy sięgać do starego kodu, żeby przepisać funkcjonalność na nowy, wybrany język programowania. Z drugiej strony, sama nauka nowego języka może być prostsza przy pomocy ChatGPT, ponieważ chatbot może nam pomóc w osiągnieciu zamierzonego rezultatu przy wykorzystaniu wiedzy z dobrze nam znanego języka programowania.

Przykładowy prompt, który możemy wykorzystać:

Przekształć następujący kod {język programowania 1} na {język programowania 2}: {fragment kodu} 
lub odpowiednik w języku angielskim:
Convert following code written in {programming language 1} to {programming langauge 2}: {code snippet}

Niedługo ruszamy z nowym cyklem na TypeScript i jeżeli czas pozwoli to zapoznamy się trochę lepiej z Reactem. Spróbujmy zatem dokonać transformacji kodu z C# na TypeScipt: ChatGPT: konwersja kodu C# na TypeScript

ChatGPT jako interpreter

Tak jak wspomniałem już wcześniej, ChatGPT może działać jako interpreter lub kompilator nie wymagając od nas pobrania żadnych narzędzi. Kod możemy pisać bezpośrednio w przeglądarce. Czy to jest praktyczne rozwiązanie? Pewnie nie, my jednak sprawdzamy możliwości chatbota z perspektywy programistycznej. Takie rozwiązanie może być jednak przydatne w trakcie nauki nowego języka w celu testowania kodu wraz z pełną interpretacją (o ile będziemy jej potrzebowali).

Przykładowy Prompt, który możemy wykorzystać:

Chcę, żebyś działał jak interpreter/kompilator {języka programowania}. Poniżej kod w {język programowania} do wykonania. Tym razem nie potrzebuje żadnych wyjaśnień. Nie zwracaj niczego poza wynikiem działania. Kod: {fragment kodu}
lub odpowiednik w języku angielskim:
I want you to act as interpreter/compiler of {programming language}. Below is the code in {programming language} to execute. It doesn't need any explanation this time. Do not return anything but the result of the action. Code: {code fragment}

Spójrzmy na poniższy przykład: ChatGPT: chatbot jako interpreter

UI Design

Nie wiem jak u Was z kreatywnością, ale kiedy ruszam z nowym projektem często muszę szukać inspiracji. Dokładnie tak samo było z blogiem czy pobocznym projektem jakim jest https://lapksiazke.pl/ – sporo czasu zajęło mi przygotowanie UI/UX dla tych witryn, żeby były w zgodzie ze mną.

Tym razem z pomocą może nam przyjść ChatGPT, który pozwoli nam zaoszczędzić sporo czasu i zaproponować lepszy wygląd naszej witryny bez pomocy zespołu projektowego.

Tutaj wykorzystamy wiedzę z tego wpisu: ChatGPT - role, gdzie postawimy ChatGPT w roli eksperta ds. projektowania stron internetowych. Poprosimy o szereg wytycznych jak podejść do tego tematu. Pamiętajcie, że to tylko przykład bo tak jak robiliśmy w tym wpisie: ChatGPT - witryna internetowa – możemy również poprosić o wygenerowanie kodu czy styli CSS. Ma zaczynamy od początku.

Przykładowy prompt, który możemy wykorzystać:

Chcę, żebyś wczuł się w role specjalisty ds. projektowania stron internetowych. Przedstawię Ci swoje wymagania dotyczące pomocy w zaprojektowaniu lub przebudowanie strony internetowej. Twoją rolą jest zasugerowanie najodpowiedniejszego interfejsu i funkcji, które mogą poprawić doświadczenia użytkownika. Powinieneś wykorzystać całą swoją wiedzę dotyczącą zasad projektowania UI/UI, języków programowania, narzędzi do tworzenia stron internetowych, itd, aby opracować kompleksowy plan projektu. Moja pierwsza prośba brzmi: "Potrzebuję pomocy w utworzeniu {typ witryny} dla {cel}.
I tradycyjnie odpowiednik w języku angielskim:
I want you to get into the roles of a web design specialist. I will give you my requirements to help you design or redesign your website. Your role is to suggest the most appropriate interface and features that can improve the user experience. You should use all your knowledge of UI/UI design principles, programming languages, web development tools, etc. to develop a comprehensive project plan. My first request is, "I need help creating {site type} for {target}.

A tak prezentuje się informacja zwrotna: ChatGPT: pomoc w projekcie witryny

Sugerowanie frameworka

Wybór odpowiedniego frameworka lub biblioteki jest niezwykle ważny przed rozpoczęciem projektu. Może mieć ogromny wpływ na wydajność, skalowalność i złożoność projektu. Możemy skorzystać z asysty ChatGPT, aby uzyskać odpowiedź na pytanie skonstruowane w poniższej (przykładowej) formie:

Poleć odpowiedni framework/bibliotekę dla mojej strony internetowej/projektu aplikacji. Tworzę {typ projektu}
lub w języku angielskim:
Recommend a suitable framework/library for my website/application project. I am creating {project type}

Spójrzcie na poniższą odpowiedź: ChatGPT: wybór właściwego frameworka

Dodawanie komentarzy do kodu

Pisanie komentarzy jest niezwykle ważne podczas tworzenia oprogramowania. Komentarze pozwalają zrozumieć funkcjonalność konkretnej funkcji lub bloku kodu w późniejszym czasie a także pomagają szybciej się zaaklimatyzować i zrozumieć założenia naszej logiki biznesowej osobom dołączającym do projektu w późniejszym czasie. ChatGPT może nam pomóc wygenerować odpowiednie komentarze dla danego fragmentu kodu.

Poniżej przykładowy prompt, który możemy wykorzystać:

Wygeneruj ponownie poniższy fragment kodu, ale dołącz komentarze do każdej linii kodu {fragment kodu}
Oraz odpowiednik w języku angielskim:
Generate the following code snippet again, but attach comments to each line of code {code snippet}

Do poniższego przykładu użyłem kodu C# z jednego z wpisów ale usunąłem wszystkie komentarze: ChatGPT: dodawanie komentarzy w kodzie

Generowanie plików README

Readme jest bardzo ważną częścią repozytorium, która zawiera cel repozytorium i wskazówki dotyczące pobierania i/lub korzystania z projektu (jeżeli takie istnieją). Napisanie dobrego readme pomaga przyciągnąć więcej osób do repozytorium.

Poniżej przykładowy prompt, który możecie wykorzystać:

Wygeneruj dokumentację dla poniższego kodu. Powinieneś dołączyć szczegółowe instrukcje, które pozwolą programiście uruchomić kod na jego komputerze, wyjaśnić co robi kod i wymienić luki w zabezpieczeniach, które/jeśli istnieją w kodzie. {fragment kodu}
Oraz odpowiednik w języku angielskim:
Generate documentation for the following code. You should include detailed instructions that will allow the developer to run the code on their computer, explain what the code does, and list the security vulnerabilities that/if any exist in the code. {code snippet}

Generowanie zbiorów danych

Pamiętacie artykuł: .NET Core: tworzenie danych na potrzeby fake API? Teraz do podobnego zadania możemy wykorzystać ChatGPT. Możemy poprosić model o wygenerowanie danych, określić ich ilość czy format. A wszystko to w przeciągu chwili.

Przykładowy prompt, który możecie wykorzystać:

Wygeneruj zbiór danych {typ danych} zawierający {n} punktów danych dotyczących {produkt/usługa/dane osobowe, itd} z polami zawierającymi {pola}
Oraz odpowiednik w języku angielskim:
Generate a {data type} dataset containing {n} data points for {product/service/personal data, etc} with fields containing {fields}

Spójrzmy na odpowiedź: ChatGPT: generowanie przykładowych danych

Web Scrapping

Web Scrapping to proces zbierania danych ze stron internetowych. Używając ChatGPT możemy to zrobić w bardzo prosty sposób:

Pobierz dane tekstowe z adresu {url} przy użycia języka {podaj język} i biblioteki {podaj bibliotekę}
lub korzystając z odpowiednika z języku angielskim:
Download text data from {url} using language {specify language} and library {specify library}
Dlaczego wspomniałem o bibliotece? Ponieważ może pisaliście w przeszłości podobne projekty i chcecie dodać możliwość zbierania danych z jakiejś innej witryny wykorzystując obecnie używaną bibliotekę, aby zachować spójność kodu. Jedną z takich bibliotek jest Html Agility Pack, której sam używałem.

Spójrzmy na poniższą odpowiedź: ChatGPT: web scrapper i wykorzystanie HTML Agility Pack

Czyli używam jednej z najpopularniejszych bibliotek do tego typu zadań.

SDLC: cykl życia oprogramowania

SDLC to skrót od software development life cycle czyli tłumacząc na język polski: cykl życia oprogramowania.

Do tych etapów zaliczamy:

  • planowanie;
  • analizę;
  • projektowanie;
  • tworzenie oprogramowania;
  • testowanie;
  • wdrażanie.

W tym i w kolejnych podpunktach sprawdzimy jak możemy wykorzystać ChatGPT na różnych etapach.

Zacznijmy od fazy Planowania. Etap planowania jest często pomijany we własnych projektach, ale wszyscy wiemy, jak to wygląda w (praktycznie każdej) firmie. Ten etap pozwala nam zaplanować wszystkie potencjalne wyzwania, które możemy napotkać, określić szacowany koszt czy planowany harmonogram prac. ChatGPT może pomóc nam zdefiniować zakres i wymagania projektu odpowiadając na poniższe polecenia:

Jestem w fazie planowania mojego projektu rozwoju oprogramowania i potrzebuje wskazówek dotyczących {konkretne zadanie/wyzwanie}. Oto kilka szczegółów projektu: {podajemy parę informacji o projekcie, załodze i doświadczeniu, wymaganiach, wstępnym planie czy ryzyku jakie zidentyfikowaliśmy, np. przy integracji z zewnętrznym systemem}
Alternatywnie możemy skorzystać z poniższego polecenia:
Szukam informacji na temat: {podaj interesujące się obszary takie jak architektura oprogramowania, alokacja zasobów do poszczególnych zadań, priorytetyzacja funkcji, planowanie czy rozbudowa pod przyszłe funkcjonalności}
ChatGPT może również rozwiązać prawne wątpliwości dotyczące "powodzenia" projektu, np.: ChatGPT: webscapping - legalność wykorzystania

Analiza i dokumenty SRS

ChatGPT może nam pomóc w przygotowaniu dokumentu SRS zgodnie z opisem projektu. Pozwoli to zaoszczędzić wiele czasu, ponieważ możemy bazować na utworzonym szkielecie, który możemy rozwinąć zgodnie z naszymi potrzebami a w efekcie utworzyć dokument końcowy.

Czym ogólnie są dokumenty SRS? Dokument SRS (Software Requirements Specification) jest kluczowym dokumentem tworzonym na etapie analizy projektu, zwłaszcza w branży oprogramowania. Jego celem jest precyzyjne i kompleksowe opisanie wymagań dotyczących tworzonego systemu lub oprogramowania. Dokument SRS stanowi podstawę dla całego procesu rozwoju oprogramowania i pomaga zespołowi projektowemu oraz klientowi zrozumieć, czego dokładnie oczekuje się od finalnego produktu.

Poniżej główne elementy, który zazwyczaj znajdziemy w takim dokumencie:

  1. Opis ogólny: Wprowadzenie, które zawiera ogólny opis produktu, jego cele, zakres, definicje, założenia oraz ograniczenia.
  2. Wymagania funkcjonalne: Opisuje, jakie funkcje ma posiadać oprogramowanie, jakie czynności ma wykonywać oraz jak ma reagować na różne rodzaje wejść.
  3. Wymagania niefunkcjonalne: Dotyczą aspektów niezwiązanych bezpośrednio z funkcjonalnościami systemu, takich jak wydajność, bezpieczeństwo, skalowalność, czy też łatwość obsługi.
  4. Wymagania dotyczące interfejsu: Określają wymagania dotyczące interfejsu użytkownika, interfejsów sprzętowych i oprogramowania oraz interfejsów komunikacyjnych.
  5. Wymagania dotyczące wydajności: Określają oczekiwane poziomy wydajności systemu, takie jak czas odpowiedzi, szybkość przetwarzania danych itp.
  6. Wymagania dotyczące zarządzania: Dotyczą zarządzania danymi, zarządzania konfiguracją, zarządzania projektem oraz wymagań dotyczących zgodności z przepisami prawnymi i regulacjami.
  7. Inne wymagania: Mogą obejmować aspekty takie jak wymagania dotyczące dokumentacji, testowania, szkolenia użytkowników i wsparcia technicznego.

Dokument SRS jest kluczowym narzędziem w procesie rozwoju oprogramowania, ponieważ służy jako punkt odniesienia dla całego zespołu projektowego, umożliwiając precyzyjne zrozumienie, czego konkretnie wymaga się od tworzonego systemu.

Myślicie, że wiedziałem to wszystko już wcześniej? Nie…ale łatwość zdobywania nowych informacji, aż zachęca do nauki: ChatGPT: dokument SRS

Wróćmy jednak do głównego wątku i sprawdźmy przykładowe prompty, które możemy wykorzystać do etapu analizy projektu:

Wygeneruj dokument SRS dla mojego projektu rozwoju oprogramowania. Szczegóły projektu {podaj opis projektu, wymagania funkcjonalne i biznesowe, założenia i ograniczenia.}
lub
Wygeneruj dobrze zorganizowany dokument SRS zawierający następujące sekcje: Wyprowadzenie, Zakres, Wymagania Funkcjonalne, Interfejs Użytkownika, Architektura Systemu, Zarządzanie danymi, Zewnętrzne integracje, Ograniczenia, Założenia.

My musimy się jedynie upewnić, że dokument będzie zawierał wszystkie wymagane sekcje potrzebne do utworzenia ostatecznej wersji dokumentu.

Projektowanie

ChatGPT może nam pomóc w wyborze odpowiedniego modelu danych i wzorców projektowych, których należy przestrzegać zgodnie ze specyfikacją projektu. Model danych i wzorce projektowe są ważnymi częściami projektu i muszą być mądrze wybrane przed rozpoczęciem pracy. W przeciwnym razie może dojść do utraty pieniędzy i czasu włożonego w rozwój projektu a w efekcie do opóźnienia przy wdrażaniu gotowego rozwiązania.

Poniżej przykładowy prompt, który możemy wykorzystać:

Potrzebuję sugestii dotyczących zaprojektowania efektywnego modelu danych dla mojego projektu oprogramowania. Kilka szczegółów dotyczących projektu: {opis projektu, kluczowe funkcjonalności, wymagania użytkowników, źródła danych}

Rozwój oprogramowania

Wraz z rozwojem projektu czy wzrostem liczby potencjalnych klientów mogą pojawiać się pytania dotyczące np. skalowania i zapewnienia ciągłego działania nawet w przypadku bardzo dużych obciążeń. ChatGPT może nam pomóc w rozwiązaniu naszych problemów.

Spójrzmy na poniższe prompty:

Pracuje nad projektem oprogramowania i potrzebuje porady dotyczącej skalowalności. Szczegóły mojego projektu: {opis projektu, obecnie wykorzystanie i prognozowany wzrost, stos technologiczny}
lub
Szukam porady na temat: architektura, optymalizacja bazy danych, infrastruktura, optymalizacja wydajności. Przedstaw zalecenia i praktyki w celu zapewniania skalowalności mojego projektu.

Zobaczymy jak ChatGPT rozwiąże poniższy problem: ChatGPT: sugestie w optymalizacji architektury

Testowanie

Testowanie to niezwykle ważny element rozwoju każdego oprogramowania. Testy pozwalają zidentyfikować większość (wszystkich nigdy nam się nie uda) błędów lub tzw. edge-casy’ów, które mogą zostać niezauważone. Jak doskonale wiemy każdy błąd na produkcji to spadek satysfakcji użytkowników oraz wpływ na reputację danej firmy.

Doskonałym sposobem na eliminację błędów oraz zapewnienie ciągłości poprawnego działania aplikacji (nawet po dostarczaniu kolejnych funkcjonalności) jest pisanie testów automatycznych uruchamianych po każdej wrzutce na różne środowisko, np. dev, stable czy prod. Dzięki temu już od środowiska deweloperskiego wiemy, że wszystko (teoretycznie) jest w porządku? Czemu teoretycznie? Różnice mogą wynikać z konfiguracji danych środowisk czy dostępności do konkretnych funkcjonalności lub serwisów (jeżeli macie styczność z AWS to doskonale wiecie o czym mówie). Jeżeli nie, zapraszam tutaj: https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/

Wróćmy jednak do sedna sprawy, tj. testów i wykorzystania ChatGPT. Jeżeli dokładnie opiszemy funkcjonalność, którą chcemy przetestować, chatbot wygeneruje nam różne przypadki testowe.

Poniższy prompt będzie przydatny w tej sytuacji:

Napisz mi przypadki testowe dla danej funkcji {opisz działanie}

W efekcie dostaniemy listę przypadków testowych, które powinniśmy rozważyć o ile nie znajdują się już w naszej implementacji: ChatGPT: tworzenie scenariuszy testowych

Wdrożenie

Na tym etapie niezwykle ważny jest wybór strategii wdrażania. Strategia wdrażania definiuje w jaki sposób zmiany do nowszej wersji będą trafiały do użytkowników końcowych tak, aby maksymalnie ograniczyć liczbę przestojów (idealnie, żeby ich nie było) a użytkownik ledwo zauważył wprowadzane zmiany, tzn., aby nie doświadczał żadnych zakłóceń spowodowanych aktualizacją oprogramowania. Możemy poprosić ChatGPT o zasugerowanie strategii wdrażania, która najlepiej pasuje do naszego projektu.

Przykładowy prompt, który możemy wykorzystać:

Jakie są najlepsze strategie wdrażania dla tego projektu oprogramowania? {opis projektu}

Podsumowanie

Jak doskonale widzicie, ChatGPT może wykonywać bardzo szeroki zakres zadań, które mogą ułatwić nasze życie. Od fazy koncepcji i wyjaśnienia danego zagadnienia przez wygenerowanie kodu a nawet pisanie scenariuszy testowych. Wszystko jednak ma swoją cenę. Nie możemy ślepo ufać zwracanym wynikom ponieważ chatbot działa na zasadzie uczenia maszynowego więc może nie dać poprawnych wyników. Z uwagi na dane treningowe mogą się też pojawić bardzo szeroko rozumiane uprzedzenia.

Musicie również pamiętać o bezpieczeństwie danych, które udostępniacie. Nie należy przesyłać wewnętrznego kodu organizacji ani ujawniać żadnych danych poufnych związanych z polityką firmy czy nadchodzącymi projektami. ChatGPT powinien być traktowany jako nasz asystent (którego wyniki jesteśmy w stanie zweryfikować swoim poziomem wiedzy) a nie freelancer, którego zatrudniamy i wierzymy, że dostarczy wszystko poprawnie.