🎯 Definicja

Generowanie kodu przez duże modele językowe (LLM), takie jak ChatGPT, polega na tworzeniu fragmentów kodu programistycznego na podstawie instrukcji w języku naturalnym. Modele mogą tworzyć funkcje, zapytania, klasy, schematy baz danych, debugować, uzupełniać oraz wyjaśniać kod w różnych językach programowania.

🔑 Kluczowe punkty

  • LLM mogą generować kod z instrukcji tekstowych albo komentarzy w kodzie.
  • Najlepsze rezultaty osiąga się przy dobrej inżynierii promptów (np. komunikaty systemowe).
  • Możliwe są różne zadania: kodowanie, wyjaśnianie, debugowanie, edytowanie.
  • Modele dobrze radzą sobie z Pythonem, SQL, JavaScriptem i innymi głównymi językami programowania.
  • W generowanym kodzie mogą pojawiać się drobne błędy – kod powinien być zawsze testowany.

📚 Szczegółowe wyjaśnienie

Komunikaty systemowe

Przykładowy komunikat systemowy w OpenAI Playground:

You are a helpful code assistant that can teach a junior developer how to code. Your language of choice is Python. Don't explain the code, just generate the code block itself.

Scenariusze użycia

1. Generowanie prostego kodu

Prompt:

Write code that asks the user for their name and say "Hello"

Wynik:

name = input("What is your name? ")
print(f"Hello, {name}")

2. Z komentarzy do kodu

Prompt:

"""
1. Create a list of movies
2. Create a list of ratings
3. Combine them to a JSON object and print
"""

Wynik (z brakującym import json!):

import json
 
movies = [...]
ratings = [...]
# kod tworzący słownik, zapis do JSON itd.

3. Uzupełnianie funkcji

Prompt (fragment funkcji):

# function to multiply two numbers and add 75 to it
def multiply(

Wynik:

a, b):
    result = a * b
    result += 75
    return result

4. Zapytania SQL

Prompt:

Table departments, columns = [DepartmentId, DepartmentName]
Table students, columns = [DepartmentId, StudentId, StudentName]
Create a MySQL query for all students in the Computer Science department

Wynik:

SELECT students.StudentId, students.StudentName
FROM students
INNER JOIN departments
ON students.DepartmentId = departments.DepartmentId
WHERE departments.DepartmentName = 'Computer Science';

5. Generowanie schematu bazy danych

Prompt:

Create a valid database schema with the above tables and columns

Wynik:

CREATE TABLE ...

6. Fikcyjne dane INSERT

Prompt:

...generate INSERT statements with 4 rows per table

Wynik:

INSERT INTO departments ...
INSERT INTO students ...

7. Wyjaśnianie kodu

Mimo ograniczeń systemowego promptu (w tym przypadku ograniczonego do Pythona), model potrafi udzielić wyjaśnienia:

Prompt:

Explain the SQL statement

Model:

This SQL selects students from the Computer Science department…

💡 Przykład zastosowania

Uczeń programowania korzysta z ChatGPT do nauki poprzez eksperymenty:

  • wpisuje komentarze zamiast kodu,
  • generuje zapytania SQL dla swojej bazy danych MySQL,
  • tworzy szkielet projektu w Pythonie,
  • zleca modelowi wyjaśnienie, gdzie jest błąd w kodzie.

📌 Źródła

👽 Brudnopis

  • Modele radzą sobie coraz lepiej z kodem – GPT-4, Claude, Gemini, Copilot
  • Generowanie z komentarzy (prompt = comment → code) działa jak “AI pair programmer”
  • SQL, Python – dobre wsparcie, ale testować zawsze!
  • Braki: importy, typy danych, lub nieaktualne składnie
  • Debugowanie, edytowanie – ChatGPT lepszy z kontekstem (np. „Why does this function fail?”)
  • GitHub Copilot stosuje podobne podejście (token prediction w edytorze)