Announcing our new Course: AI Red-Teaming and AI Safety Masterclass
Check it out →Ви можете використовувати ChatGPT для налагодження, створення, переформатування, коментування коду тощо. Він працює з кодом на понад 40 мовах програмування.
Древні | Застарілі | Нещодавні | Свіжі |
---|---|---|---|
BASIC | Perl | Swift | Kotlin |
Assembly | Pascal | TypeScript | Julia |
Fortran | PHP | Rust | Crystal |
Lisp | Prolog | Kotlin / Native | Racket |
COBOL | C | Julia (GPU) | Lua |
Algol | PL/I | Go | Zig |
SNOBOL | C++ | Dart | Nim |
RPG | Smalltalk | Elixir | Crystal (LLVM) |
Forth | Tcl | Groovy | Vlang |
Ada | SQL | Scala Native | Erlang |
Java |
Доручити ChatGPT генерувати код так само просто:
Ти програміст-початківець Phyton. Напиши код для створення madlibs із 3 масивів по 6 елементів у кожному: прийменники, дієслова та іменники, причому іменники також у ролі додатків. Після написання, виконай код.
Приблизний результат:
import random
prepositions = ['at', 'in', 'on', 'with', 'under', 'over']
verbs = ['run', 'jump', 'dance', 'sing', 'laugh', 'cry']
nouns = ['cat', 'dog', 'tree', 'flower', 'book', 'computer']
preposition = random.choice(prepositions)
verb = random.choice(verbs)
noun = random.choice(nouns)
madlib = f"I {verb} {preposition} the {noun}."
print(madlib)
Спробуйте:
Ви можете попросити ChatGPT додати коментарі до вашого коду та переформатувати його для читабельності. Після вашого запиту додайте три хеш-мітки, а потім вставте код, який хочете підчистити:
Додай рядкові коментарі до цього коду Python і переформатуй його для читабельності:
import math
amplitude = 30
drequency = 2
num_points = 50
for i in range (num_points):
y = int(round(amplitude * math.sin(2 * math.pi * frequency * i / num_points)))
print(' ' * (amplitude + y) + '*')
###
Приблизний результат:
// highlight-start
# Імпортувати математичний модуль
import math
# Встановити амплітуду, частоту та кількість точок у хвилі
amplitude = 30
frequency = 2
num_points = 50
# Зациклити кожну точку на хвилі
for i in range(num_points):
# Обчислити значення «y» хвилі за допомогою функції синусоїдів з математичного модуля
y = int(round(amplitude * math.sin(2 * math.pi * frequency * i / num_points)))
# Вивести місце для результату з зірочкою у відповідних моментах хвилі
print(' ' * (amplitude + y) + '*')
// highlight-end
ChatGPT вміє виявляти в коді не тільки синтаксичні помилки, а й логічні, які можуть виникати під час виконання коду. Нижче наведено приклад скрипту Python, який, зрештою, видає помилку ділення на нуль у рядку 4 через логічну помилку у рядку 3. Створіть цей простий запит, щоб знайти та виправити помилку:
Налагодь цей код Python:
1. pizza_cost = 100
2. partygoers = 10
3. while partygoers = 0:
4. cost_per_person = pizza_cost / partygoers
5. print("вартість на особу становить $", "{:.2f}".format(cost_per_person))
6. partygoers -= 2
Результат міститиме виправлений цикл while, який змінено для гарантії, що змінна знаменника залишиться додатною:
3. while partygoers >
0:
Для делікатніших помилок додайте більше уточнень: повідомлення про помилку, змінні середовища, включені бібліотеки або варіації вхідних даних.
Якщо ваш скрипт виконується надто довго, ChatGPT допоможе оптимізувати його. Ось приклад оптимізації неефективного скрипту для знаходження простих чисел:
Ти старший розробник Python. Оптимізуй цей скрипт:
for num in range(1, 101):
if num 1:
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)
У результаті може вийти сценарій з використанням алгоритму Решето Ератосфена для пошуку простих чисел:
// highlight-start
numbers = list(range(2, 101))
for i in numbers:
for j in range(i * 2, 101, i):
if j in numbers:
numbers.remove(j)
print(numbers)
// highlight-end
Зауважте, що ми попросили бота «діяти як старший розробник», щоб оптимізувати скрипт. Ви також можете вказати, що він обізнаний у певних галузях (наприклад, алгоритми сортування) або має певну кількість досвіду. Крім того, якщо у вас є занадто нагромаджений скрипт, попросіть ChatGPT написати його «як наймолодший розробник».
Надкорисною функцією ChatGPT є можливість переносити програми з однієї мови на іншу. Типовим прикладом може бути оновлення коду старішої мови до більш сучасної:
Ти досвідчений розробник зі знанням COBOL і Python. Конвертуй цю програму з COBOL у Python:
IDENTIFICATION DIVISION.
PROGRAM-ID. CALCULATE-SS-TAX.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 SALARY PIC 9(7)V99.
01 SS-TAX PIC 9(7)V99.
PROCEDURE DIVISION.
DISPLAY "Enter employee's salary: ".
ACCEPT SALARY.
COMPUTE SS-TAX = SALARY * 0.062.
DISPLAY "Social Security tax is: $", SS-TAX.
STOP RUN.
Приблизний результат:
salary = float(input("Enter employee's salary: "))
ss_tax = salary * 0.062
print("Social Security tax is: $", round(ss_tax, 2))
Як змусити ChatGPT зчитувати декілька файлів? Просто введіть назви файлів і вставте для них код:
Мій скрипт Python використовує два файли, вказані нижче, у різних каталогах. Виведи результат виконання conversion.py:
BEGIN FILE 1: ./phrases/coming_and_going.py
def hi(name):
print(f"Hello, {name}!")
def bye(name):
print(f"Goodbye, {name}!")
BEGIN FILE 2: ./conversation.py
from phrases.coming_and_going import hi, bye
hi("John")
bye("John")
// highlight-start
Hello, John!
Goodbye, John!
// highlight-end
З цією технікою ви можете надіслати кілька файлів у ChatGPT в одному запиті та попросити його провести реорганізацію коду. Крім того, можна попросити бота «запам’ятати» кожен із них, щоб виконати в наступному запиті.
ChatGPT може не тільки працювати з кодом, але й імітувати серверні середовища, такі як бази даних, вебсервери та сервери електронної пошти. Розгляньте цей запит:
Ти Microsoft SQL Server. Створи базу даних під назвою «політика» і всередині неї таблицю «політики». Заповни її 50 рядками відомих політиків з усього світу різних епох 1900-2000 років. Додай стовпці для їхніх повних імен, країни, дат народження та смерті за наявності. Опиши 3-х найкращих політиків із найдовшим часом життя. Створи та виконай команду Transact-SQL, яка виводить вміст цього опису.
Приблизний результат:
// highlight-start
-- Створити базу даних «politics»
CREATE DATABASE politics;
GO
-- Залучити базу даних «politics»
USE politics;
GO
-- Створити таблицю «politicians»
CREATE TABLE politicians (
id INT PRIMARY KEY,
full_name VARCHAR(50),
country VARCHAR(50),
date_of_birth DATE,
date_of_death DATE
);
-- і т.д.
// highlight-end
Тепер ви можете додавати стовпці, індекси тощо:
Додайте стовпець для заступників до таблиці політиків та оновіть його для кожного рядка.
Приблизний результат:
// highlight-start
ALTER TABLE політики ADD заступники VARCHAR(255);
UPDATE politicians
SET second_in_command =
CASE name
WHEN 'Winston Churchill' THEN 'Clement Attlee'
WHEN 'Franklin D. Roosevelt' THEN 'Harry S. Truman'
WHEN 'Mao Zedong' THEN 'Lin Biao'
-- додайте ще зразків для кожного політика
ELSE NULL
END;
// highlight-end
ChatGPT вміє імітувати багато інших серверів і API. Ось приклад запиту, який імітує відповідь сервера Apache на певні заголовки запиту браузера:
Ти — вебсервер Apache. Як би ти відповів на ці заголовки HTTP?
GET /example HTTP/1.1
Host: www.example.com
Приблизний результат:
// highlight-start
HTTP/1.1 200 OK
Date: [поточна дата й час]
Server: Apache/2.4.41 (Ubuntu)
Last-Modified: [дата й час останньої зміни запитуваного ресурсу]
Content-Type: [тип MIME запитуваного ресурсу, наприклад text/html]
// highlight-end
Ось деякі типи серверів і API, які емулює ChatGPT:
Древні | Застарілі | Нещодавні | Свіжі |
---|---|---|---|
Telnet | HTTP/1.0 | RESTful API | GraphQL API |
FTP | SMTP | SOAP API | GRPC API |
POP3 | LDAP | OAuth 2.0 | API Docker |
IMAP | DHCP | OpenAPI (Swagger) | API Kubernetes |
DNS | NTP | gRPC-web API | Istio API |
SNMP | RADIUS | MQTT API | API Prometheus |
Syslog | SFTP | API WebSocket | API Envoy |
TFTP | SSH | AWS API Gateway | Istio Mixer API |
NFS | XML-RPC | Azure API Management | API OpenTracing |
SMB | JSON-RPC | Google Cloud Endpoints | NATS Streaming API |
Оскільки оболонка в Linux (або Windows PowerShell) теж є мовою програмування, ви можете взаємодіяти з нею за допомогою ChatGPT і створювати середовище для вашої файлової системи:
Ти — командна оболонка Debian Linux. Відповідай на мої команди подібно терміналу без зайвих пояснень. Моя перша команда: ls -l
Приблизний результат:
-rw-r--r-- 1 user group 2048 Mar 3 14:23 file1.txt
drwxr-xr-x 2 user group 4096 Feb 28 09:12 directory1
-rwx------ 1 user group 16384 Feb 25 19:41 executable1
Пограйтеся з іншими командами:
>
touch greeting.txt
>
echo "hello" >
greeting.txt
>
ls -l
ChatGPT має зберегти ваші зміни (хоча б на деякий час), а остаточний результат виглядатиме десь так:
-rw-r--r-- 1 user group 2048 Mar 3 14:23 file1.txt
drwxr-xr-x 2 user group 4096 Feb 28 09:12 directory1
-rwx------ 1 user group 16384 Feb 25 19:41 executable1
-rw-r--r-- 1 user group 6 Mar 4 16:15 greeting.txt
Повний розбір ChatGPT як віртуальної машини знаходиться на engraved.blog.
Надано компанією Prompt Yes!, яка займається інженерією запитів.