Начало работы с функцией вызова функций OpenAI

 

Автор: HB AI Little Rocket

Я HB из AI Rocket, и я исследую и пишу обо всех вещах на пересечении ИИ и языка, начиная от LLM, чат-ботов, голосовых ботов, сред разработки, латентных пространств, ориентированных на данные, и многого другого.

 

пример

 

изображение-20230620170901449

 

начальный опыт

OpenAI добавил функцию «вызов функции» , что это такое?

Давайте сначала вызовем API, чтобы испытать его.

Ниже представлен документ JSON, отправленный модели. Цель этого вызова — создать файл JSON, который можно использовать для отправки в API отправки электронной почты.

Вы можете видеть, что имя функции — , и определены три параметра, , и , которые являются телом электронной почты.send_emailto_addresssubjectbody

Запрос пользователя: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_emailarguments

{ 
"to_address" : "[email protected]" , "subject" : "Запрос ежемесячного отчета" , "body" : "Привет, Кобус,\n\nНадеюсь, у вас все хорошо. Не могли бы вы поделиться ежемесячным отчетом со мной? Было бы здорово получить его до конца недели.\n\nСпасибо,\n[Ваше имя]" }  
  
  

Это очень полезно: сторонние приложения могут предоставлять несколько функций/сервисов (аналогично подключаемым модулям), а модель GPT может автоматически выбирать различные функции/сервисы в соответствии с инструкциями пользователя.

 

Теперь еще раз посмотрите на пример, будет понятнее.

изображение-20230620170901449

 

использовать

Согласно официальной документации сайта , вызовы функций позволяют более надежно получать структурированные данные из моделей. Например, вы можете:

  • Создавайте чат-ботов, которые отвечают на вопросы, вызывая внешние API (например, плагин ChatGPT).

    • Например, определите такую ​​функцию, как илиsend_email(to: string, body: string)get_current_weather(location: string, unit: 'celsius' | 'fahrenheit')

  • Преобразование естественного языка в вызовы API

    • Например, преобразуйте «Кто мои лучшие клиенты?» в и вызовите свой внутренний APIget_customers(min_revenue: int, created_before: string, limit: int)

  • Извлечение структурированных данных из текста

    • Например, определите функцию с именем илиextract_data(name: string, birthday: string)sql_query(query: string)

 

Основная последовательность шагов для вызова функции следующая:

  1. Вызывает модель с набором функций, определенных в пользовательском запросе и параметрах функции.

  2. Модель может вызвать функцию; в этом случае содержимое будет представлять собой строковый объект JSON, соответствующий пользовательской схеме (примечание: модель может генерировать недопустимые параметры JSON или фиктивные параметры).

  3. Разбирает строку как JSON в коде и вызывает функцию с предоставленными аргументами (если они есть).

  4. Вызовите модель еще раз, добавив ответ функции в качестве нового сообщения, и модель агрегирует результаты обратно пользователю.

 

ИИ маленькая ракета

AI Rocket уже поддерживает вызовы функций,ивы можете это испытать.gpt-3.5-turbo-16kgpt-3.5-turbo-0613gpt-3.5-turbo-16k-0613

 

{{о.имя}}
{{м.имя}}

рекомендация

отmy.oschina.net/u/6793601/blog/10084168
рекомендация