Кодирование никогда не будет прежним
Привет, я Йоси Кристиан, доцент и энтузиаст ИИ в ISTTS. В своей работе я недавно использовал OpenAI API, мощный инструмент для использования машинного обучения для решения сложных задач. Сегодня я хотел бы поделиться проектом, над которым я работал, который сочетает эту технологию с уникальным интуитивно понятным интерфейсом, что упрощает создание кода.
Проблема
Создание функционального кода может быть сложной задачей, особенно для новичков в программировании. Даже опытным программистам может показаться утомительным постоянно писать и переписывать функции с нуля. Это проблема, которую я решил решить.
Идея
Идея проста: создать интерфейс, который принимает вводимые пользователем данные, такие как имя функции, параметры, возвращаемое значение и цель, и выводит полный код функции. Но для реализации потребовалось немного магии ИИ — и здесь в игру вступает OpenAI API.
Решение
Я использовал API OpenAI, чтобы использовать большую языковую модель, обученную понимать текст и генерировать ответы. Используя Prompt Engineering, я создал набор инструкций, которые могли принимать ввод на основе формы и преобразовывать его в вывод кода функции на основе выбранного языка.
API OpenAI и оперативное проектирование
Последний API OpenAI использует модель GPT-3.5-turbo, мощный искусственный интеллект, обученный различным интернет-текстам. Но ГПТ-3,5-турбо не просто текст понимает; он тоже может его генерировать. Это делает его идеальным для создания функционального кода из пользовательской формы ввода.
Prompt Engineering разрабатывает правильные инструкции, чтобы направлять ИИ для получения желаемого результата. Я использовал этот процесс, чтобы поручить ИИ принять ввод пользователя и сгенерировать соответствующий код функции.
Прохождение
вот пошаговое руководство по использованию Google Colab для запуска вашего проекта генерации кода OpenAI:
Шаг 1. Откройте Google Colab.
Откройте браузер и посетите веб-сайт Google Colab по адресу https://colab.research.google.com/. Вам нужно будет войти в свою учетную запись Google.
Шаг 2. Запустите новый блокнот
Нажмите «Файл» в верхнем левом углу, затем выберите «Новый блокнот». Это откроет новую записную книжку Python, где вы сможете написать и выполнить свой код.
Шаг 3: Установите OpenAI
В первой ячейке записной книжки введите следующую команду, чтобы установить пакет OpenAI. Затем запустите ячейку, нажав кнопку воспроизведения слева от ячейки или нажав Shift+Enter.
!pip install openai
Шаг 4: Импорт необходимых библиотек
В следующую ячейку импортируйте необходимые библиотеки. Нам понадобится только openai:
import openai
Шаг 5: Установите ключи OpenAI
Установите свои ключи OpenAI. Не забудьте заменить "YOUR-OGANIZATION-KEY" и 'YOUR-API-KEY' вашими реальными ключами. Вам следует использовать более безопасный способ обработки этих ключей, например, переменные среды или Google Cloud Secret Manager.
openai.organization = "YOUR-ORGANIZATION-KEY" openai.api_key = 'YOUR-API-KEY'
Шаг 6: Определите переменные подсказки, используя поле формы Google Colab
Google Colab предоставляет функцию создания полей формы в ячейке, которые можно использовать в качестве интерактивных входных данных.
Чтобы создать поля формы в ячейке, нажмите на три вертикальные точки в правом верхнем углу и выберите «Форма › Добавить форму». Затем вы можете создать свои поля формы и назначить их переменным:
Language = "Python" #@param ["Python", "Java Script", "C++"]
Function_Name = "" #@param {type:"string"}
Return_value = "" #@param {type:"string"}
Parameters = "" #@param {type:"string"}
Purpose = "" #@param {type:"string"}
Ваша форма будет выглядеть так:

Вы можете выбрать нужный язык из раскрывающегося меню и ввести имя функции, возвращаемое значение, параметры и цель непосредственно в записной книжке.
Шаг 7. Сгенерируйте запрос и код функции запроса
После определения ваших переменных вы можете использовать их для создания подсказки и сделать запрос к API OpenAI для получения кода функции:
Prompt = "Create a function in "+Language+" with a function name "+ \
Function_Name + " it will return "+Return_value+" and receive "+ \
Parameters+" as parameters. This function purpose is to "+Purpose+ \
". Only generate the code with explanation comments for each row"
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": Prompt}
]
)
print(response['choices'][0]['message']['content'])
Как только вы запустите эту ячейку, на выходе будет сгенерированная функция Python на основе указанных вами параметров.
Помните, что для использования Google Colab требуется подключение к Интернету, а для использования API OpenAI требуется ключ API, который требует затрат. Обязательно ознакомьтесь с информацией о ценах на API OpenAI, прежде чем использовать его широко.
Например, я ввел этот ввод в свою форму:

Сгенерированный код:
# define a function named get_prime_range with two parameters, lower_bound and upper_bound
def get_prime_range(lower_bound, upper_bound):
# initialize an empty list to store prime numbers
primes = []
# iterate from lower_bound to upper_bound using for loop
for num in range(lower_bound, upper_bound + 1):
# by default 0 and 1 are not prime, so skip them
if num > 1:
# check if the number is prime or not
for i in range(2, int(num/2) + 1):
if (num % i) == 0:
break
else:
# if the number is prime, then append it to the primes list
primes.append(num)
# return the primes list
return primes
Выполнение этой функции с параметрами lower_bound=5 и upper_bound =100 приведет к следующему результату:

Для более сложного примера я попытался попросить OpenAI создать треугольник Паскаля в двумерном массиве:

Сгенерированный код:
import numpy as np
def get_pascal_triangle(level):
#creating a numpy array of given shape
pascal_triangle = np.zeros((level, level), dtype=int)
#filling first column with 1
pascal_triangle[:, 0] = 1
#filling diagonal with 1
np.fill_diagonal(pascal_triangle, 1)
#filling the remaining elements with pascal's formula
for i in range(2, level):
for j in range(1, level):
pascal_triangle[i][j] = pascal_triangle[i-1][j] + pascal_triangle[i-1][j-1]
return pascal_triangle
Выполнение этой функции с level=12 даст следующий вывод:

В заключение, возможность генерировать код функции с использованием модели OpenAI GPT-3.5 на основе заданных входных параметров является мощным инструментом, который значительно помогает в разработке программного обеспечения. Такой подход не только ускоряет процесс написания кода, но и предоставляет ценные возможности для обучения, особенно для начинающих, которые могут увидеть, как конкретная функция может быть реализована на разных языках программирования.
Результаты, полученные с помощью этого метода, действительно впечатляют. Языковая модель OpenAI демонстрирует глубокое понимание принципов и синтаксиса программирования, постоянно генерируя точный и чистый код. Стоит отметить способность модели предоставлять построчные комментарии, способствуя лучшей читабельности и ремонтопригодности кода. Эта функциональность может принести большую пользу тем, кто учится кодировать, поскольку она дает четкое объяснение того, что делает каждая строка кода.
Обсуждаемая нами функция предоставляет интерактивный способ экспериментировать с генерацией кода и может служить катализатором для вдохновения на более сложные проекты. Это свидетельство потенциала и универсальности ИИ в области разработки программного обеспечения. Будущее программирования, безусловно, выглядит захватывающим с интеграцией таких инструментов на базе ИИ.
То, как мы кодируем, кардинально изменится через несколько лет. Мы назвали язык ассемблера низкоуровневым кодом, а текущий язык программирования — высокоуровневым кодом. Это будет Кодекс высшего уровня.