Введение в вызов функций OpenAI
Введение в функции OpenAI вызов на новый уровень
В соответствии с Forbes, рынок искусственного интеллекта предположительно достигнет 1 811,8 млрд долларов к 2030 году. Представление моделей OpenAI API, таких как Давинчи, GPT Turbo, GPT Turbo 3.5 или GPT 4, буквально взорвало мир искусственного интеллекта. Представление моделей OpenAI API, таких как Давинчи, GPT Turbo, GPT Turbo 3.5 или GPT 4, буквально взорвало мир искусственного интеллекта.
Сцена искусственного интеллекта преобразилась с возникновением языковых моделей OpenAI API, которые обладают множеством функций, но имели некоторые ограничения в извлечении данных. Инженеры представили вызов функций для преодоления данного ограничения и упрощения своей работы. Вызов функций OpenAI быстро набирает популярность среди разработчиков и инженеров благодаря своим продвинутым возможностям.
Необходимость вызова функций Open AI
В технически ориентированной сфере Open AI языковые модели доминируют над всеми моделями машинного обучения своими моделями чат-чат и генерации текста.
Традиционно, инженеры использовали промпт-инжиниринг в Open AI API для получения соответствующего ответа, а также использовали регулярные выражения (RegEx) для обработки неструктурированных данных. Хотя RegEx эффективен, разработчикам приходится использовать сложные промпты, что требует много времени, чтобы получить желаемый результат.
- Является ли Python Ray быстрой дорогой к распределенным вычислениям?
- Лучшие способы использования функции Browse With Bing в ChatGPT
- Как использовать ChatGPT для Google Sheets
Появление вызова функций OpenAI в июне 2023 года помогает справиться с этой проблемой. Он сделал OpenAI API более удобным для разработчиков и уменьшил необходимость в RegEx. Модели GPT Turbo 3.5 и GPT 4 мудро используют вызов функций в качестве расширенной поддержки, которая служит примером для извлечения структурированных данных.
Разведка вызова функций Open AI
Вызов функций является надежным способом полностью использовать возможности модели GPT и сделать API завершения чата более эффективным. Вызов функций OpenAI принимает пользовательские функции в качестве входных данных и генерирует лучше структурированный результат, чем RegEx. Разработчики привыкли работать с предопределенными структурами данных и типами. Выходы моделей GPT 3.5 и GPT 4 теперь регулярны и организованы с пользовательскими входами, что делает процесс извлечения данных более плавным для разработчиков. Некоторые преимущества использования вызова функций OpenAI для разработчиков:
- Улучшенные результаты: С помощью структурированных данных эта функция преобразует естественный язык в вызовы API и запросы к базе данных для получения лучших результатов.
- Настройка: Благодаря введению пользовательских функций, разработчики могут настраивать функции для извлечения данных, так как у них есть контроль над функциями, в отличие от RegEx.
- Извлечение данных: Разработчики могут легко извлекать сложные данные с использованием вызова функций OpenAI, поскольку они привыкли работать с предопределенными структурами данных и типами.
Начало работы
Введение организации ChatGPT изменило то, как люди мощно воспринимают искусственный интеллект. Из-за этой огромной популярности многие люди желают понять его логику. Начинающим вот несколько доверенных ресурсов, чтобы начать работу с OpenAI:
Учебники Python: Начав программироание с Python в правильном направлении, вы можете быстро учиться и делать чудеса.
- Используйте введение в Python руководство
- Учебник Python для науки о данных
- Читайте написание кода на Python для начинающих
Вебинары: В сети доступно много отличных видеороликов о Python и Open AI.
- Изучайте на начинающий в Python вебинаре.
- Ознакомьтесь с Open AI через это видео.
API Python можно изучить, создав бесплатного чат-бота на Python. здесь.
Использование OpenAI без вызова функций
Чтобы понять, какую гибкость дает вызов функций OpenAI, нужно посмотреть, как модель API GPT 3.5 Turbo проверяет согласованность вывода без вызова функций. Сначала сгенерируйте секретный ключ OpenAI, чтобы получить доступ ко всем инструментам на сайте.
Перейдите на сайт OpenAI > Создание учетной записи > Подтверждение вашей учетной записи > Перейдите в свою учетную запись и управляйте своими ключами API > Создайте ключ.
Чтобы использовать OpenAI без вызова функций, давайте рассмотрим пример и протестируем его, создав новую записную книжку в Google Colab Notebook:
- Установите OpenAI, используя ячейку Google Colab Notebook.
pip install openai#import csv
- Напишите описание для студента.
- student_one = “Ракеш – студент второго курса, обучается на отделении нейронауки в IIT Мадрас. У него 8 баллов CGPA. Ракеш известен своими биотехническими навыками и является членом Нейро клуба университета.”
- Напишите другое описание в следующей ячейке.
prompt = f'''Извлеките следующую информацию из предоставленного текста и верните ее в формате JSON: имя, специальность, колледж, оценка, клуб. Вот текст, из которого нужно извлечь информацию: {student_one}'''#import csv
- Теперь настроим API для получения ответа на запрос.
import openai import jsonopenai_response = openai.ChatCompletion.create( model = 'gpt-3.5-turbo', messages = [{'role': 'user', 'content': prompt}])answer = openai_response['choices'][0]['message']['content']answer_json = json.loads(answer)answer_json#import csv
- Это даст нам следующий вывод: {‘name’: ‘Ракеш’, ‘major’: ‘нейронаука’, ‘college’: ‘IIT Мадрас’, ‘grade’: ‘8’, ‘club’: ‘Нейро клуб’}
Использование OpenAI с вызовом функций
Теперь мы можем создавать функции, которые соответствуют нашим потребностям, чтобы получать точные результаты при использовании вызова функций OpenAI. Это улучшило процесс использования API для разработчиков. Ниже приведен правильный синтаксис с примером извлечения информации о студенте для написания пользовательской функции OpenAI:
function_one = [ { 'name': 'info_of_student', 'description': 'Получить информацию о студенте по тексту', 'parameters': { 'type': 'object', 'properties': { 'name': { 'type': 'string', 'description': 'Имя студента' }, 'major': { 'type': 'string', 'description': 'Основная специальность.' }, 'school': { 'type': 'string', 'description': 'Название колледжа.' }, 'grades': { 'type': 'integer', 'description': 'CGPA студента.' }, 'club': { 'type': 'string', 'description': 'Клубы, в которых участвует студент.' }}}}]#import csv
Ура! Вы успешно создали свою первую пользовательскую функцию с использованием вызова функций OpenAI.
Применение вызова функций OpenAI
После создания функции вы можете практически реализовать и написать функцию с помощью Python, используя библиотеку OpenAI, создавая запросы для извлечения данных. Например,
- Создайте информацию о новом студенте по вашему усмотрению.
- Используйте этот код для вызова функции.
student_info = [student_one, student_two]for stu in student_info: response = openai.ChatCompletion.create( model = 'gpt-3.5-turbo', messages = [{'role': 'user', 'content': stu}], functions = function_one, function_call = 'auto' ) response = json.loads(response['choices'][0]['message']['function_call']['arguments']) print(response)#import csv
- Ниже вы можете увидеть, что использование вызова функций OpenAI дает нам гораздо лучший результат и легко работает с большим объемом данных о студентах.
Код без использования функций API работает хорошо для небольшого количества студентов, как вы можете видеть выше, но вызов функций OpenAI дает потрясающие результаты для большего объема данных, как видно выше.
Множественные пользовательские функции с вызовом функций OpenAI
Вы можете использовать несколько пользовательских функций, чтобы полностью использовать возможности моделей GPT. Теперь давайте примем вызов и создадим еще один пример использования различных функций для получения информации о колледже для студентов:
- Создайте описание и напишите функцию для ввода информации о колледже.
function_two = [{
'name': 'info_of_college',
'description': 'Получить информацию о колледже из текста',
'parameters': {
'type': 'object',
'properties': {
'name': {
'type': 'string',
'description': 'Название колледжа.'
},
'country': {
'type': 'string',
'description': 'Страна колледжа.'
},
'no_of_students': {
'type': 'integer',
'description': 'Количество студентов в школе.'
}
}
}
}}]#import csv
- Теперь создайте информацию о колледже с помощью GPT и сохраните ее в
#import csvfunctions = [function_one[0], function_two[0]]info = [student_one, college_one]for n in info: response = openai.ChatCompletion.create( model = 'gpt-3.5-turbo', messages = [{'role': 'user', 'content': n}], functions = functions, function_call = 'auto' ) response = json.loads(response['choices'][0]['message']['function_call']['arguments']) print(response)
- Множественные функции упрощают рабочий процесс разработчиков.
Создание приложения
Множественные функции могут использоваться для разработки полноценного приложения. С помощью вызова функций OpenAI можно создавать большие приложения с более обширными данными. Давайте создадим это приложение поэтапно, вставляя различные входные данные:
- Сначала давайте напишем две функции на языке Python для извлечения информации.
def student_info(name, major, school, cgpa, club):
return f"{name} - студент {major}, учится в {school} с средним баллом {cgpa}. Член {club}."def school_info(name, country, num_students):
return f"{name} находится в {country} и имеет {num_students} студентов."#import csv
- Затем создайте список student_one, random_prompt и college_one. Далее сгенерируйте ответы, используя текст из списка, и определите вызовы функций, применяя аргументы и выводите результаты для всех трех примеров.
info = [ student_one, "Где находится Париж?", college_one]for i, sample in enumerate(info): response = openai.ChatCompletion.create( model = 'gpt-3.5-turbo', messages = [{'role': 'user', 'content': sample}], functions = [function_one[0], function_two[0]], function_call = 'auto' ) response = response["choices"][0]["message"] if response.get('function_call'): function_used = response['function_call']['name'] function_args = json.loads(response['function_call']['arguments']) available_functions = { "info_of_college": get_college, "info_of_student": get_student } fuction_to_use = available_functions[function_used] response = fuction_to_use(*list(function_args .values())) else: response = response['content'] print(f"\nans#{i+1}\n") print(response)#import csv
- Ура! Вы создали приложение с помощью OpenAI, используя несколько функций и отвечая в соответствии с запросом.
Заключение
От создания нескольких функций до использования пользовательских функций для создания приложений – новые инструменты, такие как вызов функций OpenAPI, дают разработчикам больше возможностей превратить свой код в жизнь с помощью инновационных решений и улучшают проекты, основанные на OpenAI, с использованием Function Calling. Будущее приносит приятные сюрпризы с каждой новой версией API и постоянно развивающимися и улучшающимися языковыми моделями.