DevGang
Авторизоваться

Вызов функций GPT: 5 недооцененных случаев использования

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

Что такое функции GPT

Функции позволяют превращать неструктурированные данные в структурированные. Это может показаться не таким уж новаторским, но если учесть, что 90% заданий по обработке и вводу данных во всем мире существуют именно по этой причине, это довольно революционная функция, которая осталась несколько незамеченной.

Вы когда-нибудь просили GPT (3.5 или 4) выдать именно тот ответ, который вам нужен, и ничего больше? Никаких «Конечно, вот ваше…» или любой другой бесполезной болтовни вокруг основного ответа. Функции GPT — это решение, которое вы искали.

Как функции должны работать?

Документация OpenAI по вызову функций крайне ограничена. Вы обнаружите, что копаетесь на их форуме разработчиков в поисках примеров их использования. Я покопался на форуме для вас и нашел много примеров.

Вот один из немногих примеров, которые вы сможете найти в их документации:

functions = [
        {
            "name": "get_current_weather",
            "description": "Get the current weather in a given location",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "The city and state, e.g. San Francisco, CA",
                    },
                    "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
                },
                "required": ["location"],
            },
        }
    ]

Определение функции — это жесткий формат JSON, который определяет имя функции, описание и параметры. В данном случае функция предназначена для получения текущей погоды. Очевидно, что GPT не может вызвать этот реальный API (поскольку он не существует), но, используя этот структурированный ответ, вы сможете гипотетически подключить реальный API.

Однако на высоком уровне функции обеспечивают два уровня вывода:

Выбираем саму функцию:

Вы можете заметить, что функции передаются в вызов API OpenAI в виде массива. Причина, по которой вы предоставляете имя и описание каждой функции, заключается в том, что GPT может решить, какую из них использовать, на основе заданного запроса. Предоставление нескольких функций в вызове API — это все равно, что дать GPT швейцарский армейский нож и попросить его разрезать кусок дерева пополам. Он знает, что, хотя у него есть плоскогубцы, ножницы и нож, ему следует воспользоваться пилой!

Определения функций способствуют увеличению количества токенов. Передача сотен функций не только займет большую часть вашего лимита токенов, но и приведет к снижению качества ответа. Я часто даже не использую эту функцию и передаю только одну функцию, которую заставляю использовать. Однако в определенных случаях использования его очень приятно иметь.

Выбор значений параметров по подсказке:

На мой взгляд, это настоящее волшебство. Возможность GPT выбирать инструмент из своего набора инструментов — это потрясающе, и это определенно является целью объявления их функции, но я думаю, что это применимо и к большему количеству случаев использования.

Вы можете представить себе такую ​​функцию, как передача GPT формы для заполнения. Он использует свои рассуждения, контекст ситуации и имена/описания полей, чтобы решить, как заполнять каждое поле. Разработка формы и дополнительной информации, которую вы передаете, — это то, где вы можете проявить творческий подход.

5 полезных приложений

Извлечение данных

Одна из наиболее распространенных вещей, для которых я использую функции, — это извлечение определенных значений из большого фрагмента текста. Адрес отправителя из электронного письма, имя основателя из сообщения в блоге, номер телефона с целевой страницы.

Мне нравится представлять, что я ищу иголку в стоге сена, но LLM сжигает стог сена, не оставляя ничего, кроме иголок.

Пример использования: обработка тысяч конкурсных заявок

Я создал систему автоматизации, которая обрабатывала тысячи конкурсных заявок. Прежде чем сохранить их в листе Google, я хотел извлечь электронное письмо, связанное с отправкой. Вот вызов функции, который я использовал для извлечения их электронной почты.

{
   "name":"update_email",
   "description":"Updates email based on the content of their submission.",
   "parameters":{
      "type":"object",
      "properties":{
         "email":{
            "type":"string",
            "description":"The email provided in the submission"
         }
      },
      "required":[
         "email"
      ]
   }
}

Подсчет очков

Присвоение неструктурированным данным оценки на основе динамических критериев естественного языка — прекрасный вариант использования функций. Вы можете оценивать комментарии во время анализа настроений, эссе на основе специальных критериев оценки, заявку на получение кредита с учетом риска на основе ключевых факторов. Недавний вариант использования, к которому я применил скоринг, заключался в оценке потенциальных клиентов по шкале от 0 до 100 на основе их жизнеспособности.

Вариант использования: оценка потенциальных клиентов

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

Используя следующую функцию, мы оценили каждый лид по шкале от 0 до 100 в зависимости от наших потребностей, а затем отсортировали их от лучшего к худшему.

{
   "name":"update_sales_lead_value_score",
   "description":"Updates the score of a sales lead and provides a justification",
   "parameters":{
      "type":"object",
      "properties":{
         "sales_lead_value_score":{
            "type":"number",
            "description":"An integer value ranging from 0 to 100 that represents the quality of a sales lead based on these criteria. 100 is a perfect lead, 0 is terrible. Ideal Lead Criteria:\n- Medium sized companies (300-500 employees is the best range)\n- Companies in primary resource heavy industries are best, ex. manufacturing, agriculture, etc. (this is the most important criteria)\n- The higher up the contact position, the better. VP or Executive level is preferred."
         },
         "score_justification":{
            "type":"string",
            "description":"A clear and conscise justification for the score provided based on the custom criteria"
         }
      }
   },
   "required":[
      "sales_lead_value_score", 
      "score_justification"
   ]
}

Категоризация

Определите пользовательские сегменты, и GPT тщательно рассмотрит каждый фрагмент данных, который вы ему предоставляете, и поместит его в правильный сегмент. Это можно использовать для маркировки задач, таких как выбор категории видео на YouTube, или для задач дискретного оценивания, таких как присвоение буквенных оценок домашним заданиям.

Вариант использования: маркировка новостных статей

Очень распространенным первым шагом в рабочих процессах обработки данных является разделение входящих данных на разные потоки. Недавняя система автоматизации, которую я создал, сделала именно это с новостными статьями, взятыми из Интернета. Я хотел отсортировать их по теме статьи и еще раз включить обоснование решения. Вот функция, которую я использовал:

{
   "name":"categorize",
   "description":"Categorize the input data into user defined buckets.",
   "parameters":{
      "type":"object",
      "properties":{
         "category":{
            "type":"string",
            "enum":[
               "US Politics",
               "Pandemic",
               "Economy",
               "Pop culture",
               "Other"
            ],
            "description":"US Politics: Related to US politics or US politicians, Pandemic: Related to the Coronavirus Pandemix, Economy: Related to the economy of a specific country or the world. , Pop culture: Related to pop culture, celebrity media or entertainment., Other: Doesn't fit in any of the defined categories. "
         },
         "justification":{
            "type":"string",
            "description":"A short justification explaining why the input data was categorized into the selected category."
         }
      },
      "required":[
         "category",
         "justification"
      ]
   }
}

Вариант-Выбор

Часто при обработке данных я предоставляю GPT множество возможных вариантов и хочу, чтобы он выбрал лучший из них, исходя из моих потребностей. Мне нужно только то значение, которое оно выбрало, без всякой болтовни или дополнительных мыслей. Функции идеально подходят для этого.

Вариант использования: поиск «самой интересной новости об искусственном интеллекте» в хакерских новостях.

Я написал здесь еще одну среднюю статью о том, как я автоматизировал всю свою учетную запись в Твиттере с помощью GPT. Часть этого процесса включает в себя отбор наиболее релевантных сообщений с первых страниц хакерских новостей. Этот шаг выбора публикации использует функции!

Подводя итог функциональной части варианта использования, мы очистим первые n страниц хакерских новостей и попросим GPT выбрать сообщение, наиболее соответствующее «новостям искусственного интеллекта или новостям технологий». GPT возвращал только заголовок и ссылку, выбранную с помощью функций, чтобы я мог продолжить парсинг этого веб-сайта и создать на его основе твит.

Я бы передал пользовательский запрос как часть сообщения и использовал следующее определение функции:

{
   "name":"find_best_post",
   "description":"Determine the best post that most closely reflects the query.",
   "parameters":{
      "type":"object",
      "properties":{
         "best_post_title":{
            "type":"string",
            "description":"The title of the post that most closely reflects the query, stated exactly as it appears in the list of titles."
         }
      },
      "required":[
         "best_post_title"
      ]
   }
}

Фильтрация

Фильтрация — это подмножество категоризации, при котором вы классифицируете элементы как истинные или ложные на основе условий естественного языка. Такое условие, как «испанский», позволит отфильтровать все испанские комментарии, статьи и т. д., используя простую функцию и условный оператор сразу после этого.

Вариант использования: фильтрация заявок на участие в конкурсе

Та же самая автоматизация, о которой я упоминал в разделе «Извлечение данных», использовала фильтрацию на основе искусственного интеллекта для отсеивания конкурсных заявок, которые не соответствовали критериям нарушения условий сделки. Такие вещи, как «обязательно использовать машинописный текст», были абсолютно обязательными для нынешнего конкурса программистов. Мы использовали функции для фильтрации отправленных материалов и сокращения общего количества обрабатываемых наборов на 90%. Вот определение функции, которое мы использовали.

{
   "name":"apply_condition",
   "description":"Used to decide whether the input meets the user provided condition.",
   "parameters":{
      "type":"object",
      "properties":{
         "decision":{
            "type":"string",
            "enum":[
               "True",
               "False"
            ],
            "description":"True if the input meets this condition 'Does submission meet the ALL these requirements (uses typescript, uses tailwindcss, functional demo)', False otherwise."
         }
      },
      "required":[
         "decision"
      ]
   }
}

Если вам интересно, почему я так люблю функции или что я с их помощью создал, посетите AgentHub!

AgentHub — это стартап при поддержке Y Combinator, соучредителем которого я являюсь. Он позволяет автоматизировать любой повторяющийся или сложный рабочий процесс с помощью искусственного интеллекта с помощью простой платформы без кода с помощью перетаскивания.

«Представьте себе Zapier, но с искусственным интеллектом и трещинами». - Мне

Автоматизация построена на отдельных узлах, называемых «Операторами», которые связаны друг с другом для создания мощных конвейеров искусственного интеллекта. У нас есть каталог операторов с искусственным интеллектом, которые используют внутренние функции.

Ознакомьтесь с этими шаблонами, чтобы увидеть примеры вариантов использования функций в AgentHub: оценка, категоризация, выбор параметров,

Если вы хотите начать создавать AgentHub, он работает и готов к использованию! Мы очень активны в нашем сообществе Discord и будем рады помочь вам создать автоматизацию, если это необходимо.

Источник

#ChatGPT
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу