Автор: HB AI Little Rocket
Я HB из AI Rocket, и я исследую и пишу обо всех вещах на пересечении ИИ и языка, начиная от LLM, чат-ботов, голосовых ботов, сред разработки, латентных пространств, ориентированных на данные, и многого другого.
пример
начальный опыт
OpenAI добавил функцию «вызов функции» , что это такое?
Давайте сначала вызовем API, чтобы испытать его.
Ниже представлен документ JSON, отправленный модели. Цель этого вызова — создать файл JSON, который можно использовать для отправки в API отправки электронной почты.
Вы можете видеть, что имя функции — , и определены три параметра, , и , которые являются телом электронной почты.
send_email
to_address
subject
body
Запрос пользователя:
Send Cobus from humanfirst ai an email asking for the monthly report?
curl --location 'https://api.openai.com/v1/chat/completions' \ --header 'Тип контента: application/json' \ --header 'Авторизация: Bearer sk-xxxx' \ --data '{ "model" : "gpt-3.5-turbo-0613" , "messages" : [ { "role" : "user" , "content" : "Отправить Cobus от humanfirst ai электронное письмо с запросом ежемесячного отчета?" } ], "функции" : [ { "имя" : " «Пожалуйста, отправьте электронное письмо». , "параметры" : { "тип" : "объект" , "свойства" : { "to_address" : { "тип" : "строка" , "описание" : "На адрес электронной почты" }, "тема" : { " тип" : "строка" , "описание" : "тема письма" }, "тело" : { "тип" : "строка" } } ] } '
Ниже приведен возвращенный JSON
{ «id» : «chatcmpl-7TQuwzJpQAY470saQM2RPfxwF6DDE» , «объект» : «chat.completion» , «создано» : 1687249338 , «модель» : «gpt-3.5-turbo-0613» , «выбор» : [ { «index» : 0 , «сообщение» : { «роль» : «помощник» , «контент» : null , «вызов_функции» : { «имя» : «send_email», "аргументы" : "{\n \"to_address\": \"[email protected]\",\n \"subject\": \"Запрос ежемесячного отчета\",\n \"body\": \"Привет, Кобус, \\n\\nНадеюсь, у тебя все хорошо. Не могли бы вы поделиться со мной ежемесячным отчетом? Было бы здорово получить его до конца недели.\\n\\nСпасибо,\\n[Ваше имя]\"\n}" } } , "finish_reason" : "function_call" } ], "usage" : { "prompt_tokens" : 86 , "completion_tokens" : 82 , "total_tokens" : 168 } }
Модель GPT вернет имя вызываемой функции и соответствующие параметры (в поле).send_email
arguments
{ "to_address" : "[email protected]" , "subject" : "Запрос ежемесячного отчета" , "body" : "Привет, Кобус,\n\nНадеюсь, у вас все хорошо. Не могли бы вы поделиться ежемесячным отчетом со мной? Было бы здорово получить его до конца недели.\n\nСпасибо,\n[Ваше имя]" }
Это очень полезно: сторонние приложения могут предоставлять несколько функций/сервисов (аналогично подключаемым модулям), а модель GPT может автоматически выбирать различные функции/сервисы в соответствии с инструкциями пользователя.
Теперь еще раз посмотрите на пример, будет понятнее.
использовать
Согласно официальной документации сайта , вызовы функций позволяют более надежно получать структурированные данные из моделей. Например, вы можете:
-
Создавайте чат-ботов, которые отвечают на вопросы, вызывая внешние API (например, плагин ChatGPT).
-
Например, определите такую функцию, как или
send_email(to: string, body: string)
get_current_weather(location: string, unit: 'celsius' | 'fahrenheit')
-
-
Преобразование естественного языка в вызовы API
-
Например, преобразуйте «Кто мои лучшие клиенты?» в и вызовите свой внутренний API
get_customers(min_revenue: int, created_before: string, limit: int)
-
-
Извлечение структурированных данных из текста
-
Например, определите функцию с именем или
extract_data(name: string, birthday: string)
sql_query(query: string)
-
Основная последовательность шагов для вызова функции следующая:
-
Вызывает модель с набором функций, определенных в пользовательском запросе и параметрах функции.
-
Модель может вызвать функцию; в этом случае содержимое будет представлять собой строковый объект JSON, соответствующий пользовательской схеме (примечание: модель может генерировать недопустимые параметры JSON или фиктивные параметры).
-
Разбирает строку как JSON в коде и вызывает функцию с предоставленными аргументами (если они есть).
-
Вызовите модель еще раз, добавив ответ функции в качестве нового сообщения, и модель агрегирует результаты обратно пользователю.
ИИ маленькая ракета
AI Rocket уже поддерживает вызовы функций,ивы можете это испытать.gpt-3.5-turbo-16k
gpt-3.5-turbo-0613
gpt-3.5-turbo-16k-0613