Featured

Asystent Nauki Linuksa stworzony przy pomocy AI

Linuks to niezwykle potężny system operacyjny, ale jego pełne możliwości często są ukryte za setkami komend i skryptów. Dlaczego więc nie stworzyć inteligentnego asystenta, który nie tylko podpowie, jakie polecenie wykonać, ale też sam je uruchomi? W tym artykule opisuję krok po kroku, jak stworzyłem takiego asystenta nauki Linuksa, korzystając z języka C oraz API ChatGPT.

Wymagania początkowe

  • Środowisko programistyczne na Linuksie (kompilator GCC i terminal).
  • Dostęp do API OpenAI – wymagany klucz API, który można wygenerować na platformie OpenAI.
  • Zainstalowane biblioteki libcurl i cJSON – używane do komunikacji z API i przetwarzania odpowiedzi w formacie JSON.

Cel projektu

Naszym celem było stworzenie asystenta, który:

  • Rozumie naturalny język: Użytkownik wpisuje opis zadania, np. „wylistuj pliki w katalogu domowym”.
  • Generuje polecenie Linuksa: Korzystamy z modelu ChatGPT, aby przekształcić opis w konkretne polecenie, np. ls -la ~.
  • Automatycznie wykonuje polecenie: Program pyta użytkownika o zgodę na uruchomienie wygenerowanego polecenia, a następnie je wykonuje.

Realizacja projektu krok po kroku

1. Podstawowy skrypt w języku C

Zaczęliśmy od stworzenia programu, który komunikuje się z API OpenAI za pomocą biblioteki libcurl. Odpowiedzi w formacie JSON parsujemy przy użyciu biblioteki cJSON.

snprintf(post_data, sizeof(post_data),
"{\"model\": \"gpt-3.5-turbo\", \"max_tokens\": 20, \"messages\": [{\"role\": \"system\", \"content\": \"Generuj jedno polecenie linuksowe na podstawie opisu. Bez wyjaśnień.\"}, {\"role\": \"user\", \"content\": \"%s\"}]}",
prompt);

2. Potwierdzenie wykonania polecenia

Program pyta użytkownika, czy chce wykonać wygenerowane polecenie:

printf("Czy chcesz je wykonać? (wciśnij Enter dla 'tak', wpisz 'nie', aby anulować): ");
if (strlen(confirm) == 0 || strcmp(confirm, "tak") == 0) {
    system(command);
}

Wynik końcowy

Gotowy program działa w następujący sposób:

  1. Użytkownik uruchamia program z opisem zadania, np.: ce "zaktualizuj system linux".
  2. Program generuje polecenie: apt update && apt upgrade -y.
  3. Użytkownik potwierdza wykonanie polecenia.
  4. System zostaje zakutalizowany.

Podsumowanie

Tworzenie asystenta nauki Linuksa pozwala łączyć nowoczesne technologie (API OpenAI) z praktyczną wiedzą o Linuksie i programowaniu w języku C. Taki asystent może być niezwykle przydatny zarówno dla początkujących, jak i bardziej zaawansowanych użytkowników.