Generarea de cod
Notă: Această secțiune este în curs de dezvoltare.
LLM-urile precum ChatGPT sunt foarte eficiente la generarea de cod. În această secțiune, vom acoperi multe exemple despre cum să folosești ChatGPT pentru generarea de cod.
Configurarea
Playground-ul OpenAI (Modul Chat) și modelul gpt-3.5-turbo sunt folosite pentru toate exemplele de mai jos.
Ca și cu toate modelele de chat de la OpenAI, poți folosi un Mesaj de Sistem pentru a defini comportamentul și formatul răspunsurilor. Vom folosi următorul Mesaj de Sistem pentru exemplele de prompt-uri:
Ești un asistent de cod util care poate învăța un dezvoltator junior cum să codeze. Limba ta de alegere este Python. Nu explica codul, doar generează blocul de cod în sine.Exemplu de bază
Mesajul Utilizatorului va fi apoi prompt-ul în sine cu instrucțiunea codului specific pe care vrei ca modelul să-l genereze. Mai jos este o captură de ecran a primului prompt de bază pentru generarea de cod. Observă că codul final a fost generat de Asistent.
Prompt
Scrie cod care întreabă utilizatorul pentru numele său și spune "Salut"Transformarea comentariilor în cod
Poți folosi și capacitățile de generare de cod ale acestor LLM-uri pentru a genera cod doar din comentarii. Să ne uităm la un alt exemplu care transmite instrucțiunile ca un bloc de comentarii:
Prompt
"""
1. Creează o listă de filme
2. Creează o listă de rating-uri pentru aceste filme
3. Combină-le pentru a face un obiect json de 10 filme cu rating-urile lor.
"""Ieșire
movies = ["The Shawshank Redemption", "The Godfather", "The Dark Knight", "Schindler's List", "Pulp Fiction", "The Lord of the Rings: The Return of the King", "Forrest Gump", "Star Wars: Episode V - The Empire Strikes Back", "Inception", "The Silence of the Lambs"]
ratings = [9.3, 9.2, 9.0, 8.9, 8.9, 8.9, 8.8, 8.7, 8.7, 8.6]
movie_ratings = {}
for i in range(len(movies)):
movie_ratings[movies[i]] = ratings[i]
json_object = json.dumps(movie_ratings, indent=4)
print(json_object)Important: Codul generat arată ca cod funcțional. Cu toate acestea, ieșirea nu conține o declarație de import importantă, adică
import json. Deși aceste modele generează cod funcțional, trebuie să acorzi atenție atentă la detalii mici precum aceasta și să te asiguri întotdeauna că testezi codul tău.
Completarea funcțiilor sau următoarea linie
Aceste LLM-uri au fost de asemenea incorporate în instrumente precum GitHub Copilot care le face utile pentru dezvoltatori. O funcție utilă este capacitatea modelului de a completa funcții.
Prompt
# funcție pentru a înmulți două numere și a adăuga 75 la rezultat
def multiply(Ieșire
a, b):
result = a * b
result += 75
return resultGenerarea interogărilor MySQL
În afară de exemplul de bază de generare de cod de mai sus, poți folosi modelul pentru a genera cod util care ar putea fi folosit în alte aspecte ale programării precum crearea și testarea interogărilor MySQL.
Să zicem că ai un set de date cu unele informații pe care le poți include ca parte a prompt-ului și apoi să-l instruiești să genereze o interogare specifică. De exemplu:
Prompt
"""
Tabelul departments, coloanele = [DepartmentId, DepartmentName]
Tabelul students, coloanele = [DepartmentId, StudentId, StudentName]
Creează o interogare MySQL pentru toți studenții din departamentul de Informatică
"""Ieșire
SELECT students.StudentId, students.StudentName
FROM students
INNER JOIN departments
ON students.DepartmentId = departments.DepartmentId
WHERE departments.DepartmentName = 'Computer Science';Modelul generează o interogare! Cu toate acestea, în acest exemplu am inventat baza de date, deci nu avem o bază de date pentru a testa interogarea generată. Dacă testezi acest exemplu, ar putea fi util să ai această bază de date creată. Din fericire, poți folosi ChatGPT pentru a genera și aceasta pentru tine.
Generarea schemelor de bază de date
O abordare este folosirea unei versiuni modificate a promptului de mai sus cu instrucțiuni ușor diferite pentru a genera o schemă de bază de date:
Tabelul departments, coloanele = [DepartmentId, DepartmentName]
Tabelul students, coloanele = [DepartmentId, StudentId, StudentName]
Creează o schemă de bază de date validă cu tabelele de mai sus și coloanele.Modelul a generat următoarea schemă:
CREATE TABLE departments (
DepartmentId INT PRIMARY KEY,
DepartmentName VARCHAR(50)
);
CREATE TABLE students (
DepartmentId INT,
StudentId INT PRIMARY KEY,
StudentName VARCHAR(50),
FOREIGN KEY (DepartmentId) REFERENCES departments(DepartmentId)
);Poți crea o bază de date temporară folosind ceva de genul sqliteonline.com.
Generarea datelor de test
Voi avea nevoie și de date fictive pentru a testa dacă interogarea originală generată a fost validă. Să folosim ChatGPT și pentru aceasta! Prompt-ul ar putea arăta ceva de genul următor:
CREATE TABLE departments (
DepartmentId INT PRIMARY KEY,
DepartmentName VARCHAR(50)
);
CREATE TABLE students (
DepartmentId INT,
StudentId INT PRIMARY KEY,
StudentName VARCHAR(50),
FOREIGN KEY (DepartmentId) REFERENCES departments(DepartmentId)
);
Având schema de bază de date de mai sus, generează instrucțiuni de inserare valide care includ 4 rânduri pentru fiecare tabel.Ieșirea cu instrucțiunile de inserare:
INSERT INTO departments (DepartmentId, DepartmentName)
VALUES (1, 'Computer Science'), (2, 'Mathematics'), (3, 'Physics'), (4, 'Biology');
INSERT INTO students (DepartmentId, StudentId, StudentName)
VALUES (1, 101, 'John Doe'), (1, 102, 'Jane Doe'), (2, 201, 'Alice Smith'), (2, 202, 'Bob Johnson');Acum când ai baza de date și datele fictive, poți testa interogarea originală. Pe baza datelor fictive, rezultatul ar trebui să fie două rânduri cu Jane Doe și John Doe.
Explicația codului
Dacă învați să programezi într-o anumită limbă, poate fi util să întrebi modelul să explice anumite părți ale codului. Să reutilizăm interogarea generată și să întrebăm modelul să o explice.
Dacă folosești același Mesaj de Sistem de mai sus, fii atenți la cum îți instruiești modelul. De exemplu, dacă folosim următorul exemplu, modelul va plânge că este un asistent de cod în Python, dar încă oferă o explicație. Uneori, modelul refuză să genereze ceea ce îți soliciti deoarece este conceput să urmeze Mesajul de Sistem.
Prompt
SELECT students.StudentId, students.StudentName
FROM students
INNER JOIN departments
ON students.DepartmentId = departments.DepartmentId
WHERE departments.DepartmentName = 'Computer Science';
Explicația de mai sus a SQL-ului.Ieșire
Din păcate, ca un asistent de cod în Python, nu pot genera cod SQL. Cu toate acestea, pot explica scopul SQL-ului furnizat.
Acest SQL-ul selectează coloanele `StudentId` și `StudentName` din tabelul `students`, unde coloana `DepartmentName` din tabelul `departments` este egală cu 'Computer Science'. Pentru a realiza acest lucru, instrucțiunea efectuează o intersecție internă pe coloana `DepartmentId` între tabelele `students` și `departments`.
În termeni mai simpli, este selectat numele și ID-urile studenților care sunt înscriși în departamentul de Informatică.Secțiuni viitoare
- Editarea codului - Exemplu în curând!
- Depanarea codului - Exemplu în curând!
- Practicile cele mai bune - În curând!
