Announcing our new Course: AI Red-Teaming and AI Safety Masterclass

Check it out →
🔓 Злом запиту
💼 Основні застосунки🟦 Допрацювання коду

🟦 Допрацювання коду

Востаннє оновлено Сандер Шульхофф August 7, 2024 року

Ви можете використовувати ChatGPT для налагодження, створення, переформатування, коментування коду тощо. Він працює з кодом на понад 40 мовах програмування.

ДревніЗастаріліНещодавніСвіжі
BASICPerlSwiftKotlin
AssemblyPascalTypeScriptJulia
FortranPHPRustCrystal
LispPrologKotlin / NativeRacket
COBOLCJulia (GPU)Lua
AlgolPL/IGoZig
SNOBOLC++DartNim
RPGSmalltalkElixirCrystal (LLVM)
ForthTclGroovyVlang
AdaSQLScala NativeErlang
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:

ДревніЗастаріліНещодавніСвіжі
TelnetHTTP/1.0RESTful APIGraphQL API
FTPSMTPSOAP APIGRPC API
POP3LDAPOAuth 2.0API Docker
IMAPDHCPOpenAPI (Swagger)API Kubernetes
DNSNTPgRPC-web APIIstio API
SNMPRADIUSMQTT APIAPI Prometheus
SyslogSFTPAPI WebSocketAPI Envoy
TFTPSSHAWS API GatewayIstio Mixer API
NFSXML-RPCAzure API ManagementAPI OpenTracing
SMBJSON-RPCGoogle Cloud EndpointsNATS 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!, яка займається інженерією запитів.

Edit this page
Word count: 0
Copyright © 2024 Learn Prompting.