Углубленный взгляд на GPT и AI Assistant: технические принципы и практическое применение
Углубленный взгляд на GPT и AI Assistant: технические принципы и практическое применение

Панорамный анализ GPT

GPT да OpenAI существуют Новая версия выпущена в ноябре 2023 г.,Он настраиваемый и мощный для конкретных задач. Это новый способ использования ChatGPT.,Позволяет пользователям настраивать из Кастомизация по требованию,и поделиться им с другими пользователями.

нижедаOpenAI Знакомство с его возможностями.

Теперь вы можете создавать собственные версии ChatGPT, сочетающие в себе инструкции, дополнительные знания и любую комбинацию навыков.

Что такое GPT?

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

Да GPTs поставлятьиз Способда Пусть каждый получит индивидуальную версиюизChatGPT,Пользователи могут подписаться на себя из Жизнь,Работа,Различные сценарии, такие как обучение,Сформулировано так, чтобы удовлетворить меня изChatGPT,И можно поделиться с другими людьми.

Любой может создать свои собственные GPT с помощью платформы OpenAI. Пользователям не нужно знать программирование или технологию. Если у них есть собственные идеи, они могут создавать свои собственные GPT.

Процесс создания GPTиз прост и интуитивно понятен. Пользователи могут использовать диалоговую форму,Предоставьте инструкции и дополнительную базу знаний для GPT.,Затем выберите необходимую способность,примернравитьсясеть、Рисунок、Анализировать данные и т. д. Это можно найти вПлатформа сборки OpenAIизначальстворуководитьпытаться。

Например, OpenAI предоставляет следующие GPT, например:

  • GPT для анализа данных: поддержка загрузки документа и выполнения кода, управляющего анализом данных.
  • Game Time GPT: поддерживать объяснение настольных игр и карточных игр руководить и многое другое

OpenAI предоставил Магазин GPT(Третьей стороны пока нетизGPTs)Удобныйруководить GPTs изделитьсяииспользовать。GPTs Введение облегчает пользователям использование OpenAI в большей степени. ChatGPT способность.

  • может быть быстросебя из Потребность в настройке ChatGPT
  • OpenAI верит в лучшие GPT,SuredaСоздано сообществомиз,Поэтому он решил стать платформой,Будет разработан только окончательный функционал избазыизплагинали.,Остальные способности разработаны разработчиками.
  • Разработчик может подключать внутренние базы данных GPTи к другим руководить и таким образом получать данные.
  • Пользователи Enterprise Edition могут создавать внутренние теги GPT.

Создайте полноценное приложение GPT.

Авторизоваться OpenAI веб-сайт,выбирать Исследуйте, а затем My GPTs Выбирать create a GPTs.

Существует два способа создания тегов GPT.

  • В виде беседы руководить, выбирать Create
  • Настроив режим руководить, выберите Configure

Просто установите необходимые настройки и вы получите желаемые возможности GPT.

Пример нравиться ниже, чтобы настроить GPT для изодина игры.,Мы настраиваем,Позволяет GPT выполнять анализ данных.,И можно использовать

  • Просмотр веб-страниц: возможности просмотра веб-страниц
  • Интерпретатор кода: возможности написания и выполнения кода.

На рисунке ниже показана демонстрация помощника по анализу данных изодин. Пользователь Можно найти в быстром внедрении одного AI-помощника за две-три минуты.

Assistants API Панорамный анализ

Assistants API Разрешить пользователям реализовывать аналогичные реализации через API в своих приложениях. GPTs из AI Помощник, в настоящее время поддерживающий возможности и GPT одинаковые (по состоянию на 12 ноября 2023 г.), предпочитает доступ к трем различным типам из tools

  • Интерпретатор кода
  • база знанийинтегрированный(Retrieval)
  • функциявызов(Function calling)

построив AI Помощник: пользователь может установить роль и способности помощника с помощью инструкций. Тогда ИИ Помощник будет использовать свои мощные языковые возможности, различные инструменты и базу знаний, чтобы отвечать на вопросы пользователей.

Assistants API Практические случаи

Пользователи могут пройтиAssistant playground Помощники по проведению API изExplore, обратитесь к следующему руководствуиспользовать API руководить AI Assistant интегрированный.

в целомруководить Assistants API Интеграция требует следующих четырех шагов:

  1. Сначала создайте один AI-помощник (Assistant)。
    1. Через пользовательские инструкции (пользовательские instructions)руководить AI Определение и реализация возможностей помощника AI помощникизизображениеи Позиционирование возможностей。
    2. Выберите базовую модель. В качестве базовой модели вы можете выбрать GPT-3.5, GPT-4 и т. д.
    3. Выберите возможности расширения tools примернравиться code interpreter, retrieval и другие из function call инструмент.
  2. создаватьодиндиалог(Thread) руководитьодинобщаться。
  3. существоватьдиалогвходящийинформация(Messages),руководить Задать вопрос。
  4. существоватьдиалогсерединаруководитьосуществлять(Run),AI Assistant Соответствующие инструменты будут запущены автоматически.

В следующем примере будет поэтапно создаваться AI Assistant.

Шаг 1. Создайте помощника с искусственным интеллектом

Один помощник AI можно настроить с помощью следующих параметров:

  • Инструкции: Для AI Assistantи Модель,Настройте их производительность и скорость реагирования.
  • Модель(Model): Разные на выбор из GPT-3.5 или GPT-4 Модель, в том числе самостоятельно руководить тонкой настройкой и з Модель. нравиться фрукты надеюсьиспользовать инструмент поиска информации (Поиск инструмент), вам нужно использовать gpt-3.5-turbo-1106 или gpt-4-1106-preview Модель。
  • Инструменты:  Assistant API поддерживатьиспользоватьOpenAIсаморазвитыйиз Code Interpreter интерпретатор кодирования и Retrieval отзыватьинструмент.
  • Функции: API поддерживать пользовательскую функцию в качестве дополнительного инструментаиспользование, аналогичное Open AI из function calling характеристика.

существуют В этом примере,насвстречасоздаватьодинсебя изрепетитор по математике,использоватьприезжать Code Interpreter способность:

Язык кода:javascript
копировать
# Upgrade to Python SDK v1.2 with pip install --upgrade openai
assistant = client.beta.assistants.create(
    name="Math Tutor", # Имя помощника
    instructions="You are a personal math tutor. Write and run code to answer math questions.", #Помощник
    tools=[{"type": "code_interpreter"}], #ассистентизинструменты
    model="gpt-4-1106-preview" #Модель ВЫБЕРИТЕ
)
Шаг 2. Создайте тему беседы

один Thread Он представляет собой один диалог. Опен АИ Каждому пользователю рекомендуется создать один раз при начале разговора. Тема, пропустите весь пользовательский контент и документы через существующие Thread Создание сообщения завершено.

может быть Thread понял как с AI Помощник создает диалоговое окно, и все варианты поведения в диалоге сохраняются в этой теме. серединаруководить。

Язык кода:javascript
копировать
thread = client.beta.threads.create()

Threads Само по себе ограничения размера не существует, поэтому можно найти в одиноком Thread Отправляйте любое количество сообщений в разговоре. API будет автоматически отвечать на запросыизинформацияруководитьподходящийкогдаизиметь дело с,Чтобы гарантировать, что запрос удовлетворяет максимальному пределу длины окна.,нравиться руководить корректируется путем усечения и т.п.

Шаг 3. Передайте сообщение в беседу (тему).

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

Язык кода:javascript
копировать
message = client.beta.threads.messages.create(
    thread_id=thread.id, #Нужно перейти в изThread ID
    role="user",
    content="I need to solve the equation `3x + 11 = 14`. Can you help me?"
)

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

Язык кода:javascript
копировать
{
  "object": "list",
  "data": [
    {
      "created_at": 1696995451,
      "id": "msg_4rb1Skx3XgQZEe4PHVRFQhr0",
      "object": "thread.message",
      "thread_id": "thread_34p0sfdas0823smfv",
      "role": "user",
      "content": [{
        "type": "text",
        "text": {
          "value": "I need to solve the equation `3x + 11 = 14`. Can you help me?",
          "annotations": []
        }
          }],
        ...
Шаг 4: Запустите AI Assistant

Чтобы получить ИИ Помощник по результатам, который вам нужно создать Run объекты, что делает ИИ помощник Можетполучатьдиалогизинформация,И решил даиспользовать инструменты (инструменты), чтобы отвечать на вопросы пользователей из,Кроме того, да полагается только на способность Модели руководить ответами на вопросы.

когда ИИ получит ответы,встречасуществовать Нитьизинформациясписоксерединаприсоединиться Роль(role="assistant")изодинотвечать。

Язык кода:javascript
копировать
run = client.beta.threads.runs.create(
  thread_id=thread.id,
  assistant_id=assistant.id,
 instructions="Please address the user as Jane Doe. The user has a premium account."
)
Шаг 5. Покажите ответ ИИ-помощника

Когда нам нужно получить ответ, ХОРОШО Run объектруководитьпостоянноиз Запрос,получатькогдавпередосуществлятьизсостояние

Язык кода:javascript
копировать
run = client.beta.threads.runs.retrieve(
  thread_id=thread.id,
  run_id=run.id
)

код состояния == completed когда, это означает, что ИИ завершил ответ и может См. ответ AIiz.

Язык кода:javascript
копировать
messages = client.beta.threads.messages.list(
  thread_id=thread.id
)

Наконец, мы можем отобразить контент пользователю, как показано ниже. ИИ дал два ответа (роль== помощник)

Вы можете сделать это, выполнив шаги Run Steps,получатьосуществлятьизсерединамеждусостояние,Тем самым предоставляя пользователям промежуточные результаты и информацию, такую ​​как использование инструментов.

Шаг*: Отладка и тестирование на игровой площадке сегодня

Разработчики могут Playground серединаруководитьотлаживатьитест,специфическийнравиться Вниз,Их конкретные возможности и GPT относительно схожи.,Только да может видеть дополнительную информацию об отладке. Также давизуализация конкретного интерфейса.

Assistants API Анализ рабочего механизма

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

  1. AI Ассистент может вызвать OpenAI изМодель,И определить поведенческие особенности и возможности помощника посредством конкретных инструкций.
  2. AI помощник МожетНесколько инструментов одновременно,этотнекоторые инструменты Можетда OpenAI Разработайте свои собственные инструменты, такие как нравиться. like Code interpreter и Knowledge retrieval Вы также можете использовать его самостоятельно Function callingосознай это самизинструмент.этот Образец,Помощники с искусственным интеллектом могут расширить спектр своих возможностей по решению проблем.
  3. AI помощник МожетдоступНастойчивый диалог,Недавно представленныйиз Диалоговая Функция «тема» упрощает работу по управлению диалогом для приложений искусственного интеллекта. Пользователям нужно только один раз создать Нить и Можно найти в Быстро реагируйте, чтобы получить доступ и взаимодействовать сруководитьдиалог,и легко получать ответы,Таким образом, вам больше не нужно беспокоиться об ограничениях диалогового окна.
  4. AI помощник Можетдоступ Различный类型издокумент。 AIпомощник Можно найти Инициализация создается при доступе к документу или когда инициализируется диалог дасуществовать при получении документа. это тоже можно найти Инструмент «Виспользовать» создает новый издокумент и затем существует после того, как извызов ссылается на этот документ.
Важные понятия об объектах AI Assistant

Из нашего приведенного выше объяснения,,мы можем быть ясными,AIпомощникAPIизвызов В основном состоит из Assistant、Thread、Message、Run и Run Step Эти пять объектов состоят из

ОБЪЕКТ

значение

Объект-помощник (Ассистент)

вызов OpenAI Модельиз типа миссии ИИ, ИИ Иметь доступ к tools способности

Нить

Диалог между пользователями и ИИ. Нить Разговор сохраняет сообщение и автоматически решает проблему превышения длины текста.

Сообщение

Сообщение, созданное пользователем или AI,Может содержать текст,Фотографии (временно недоступны),или документ. Сообщения существующего потока хранятся в виде упорядоченного списка в беседе.

Бегать

Явное исполнение определенного разговора руководить через ИИ-ассистента. AI-помощник на основе собственной информации о конфигурации и содержимого сообщений в Thread,вызывать разные из инструментов (инструментов),Это приводит к ответу. Результат, полученный при выполнении, будет сохранен в сообщении Threadiz.,Ответить как AIиз

Выполнить шаг

Бегатьиз Промежуточный процесс подробно фиксируется. Какие инструменты включены в AIиспользовать,или Какие новости были подготовлены. Этот объект может помочь разработчикам понять, как AIнравится достигает финального результата.

Создайте объект AI Assistant

Создать один ИИ Помощник объекта очень прост, вам нужно только указать язык использования. model,тогда пройдиinstruction Директива предусматривает ИИ Помощник по характеру и способностям (илида цели).

  • name: AI Имя помощника
  • instructions: Этот параметр определяет ИИ персонажа и цель или способность.,Это очень важно,Это повлияет на надежность вывода ИИ-помощника.
  • tools:list,Можно передать до 128 инструментов.,Можетиспользовать OpenAI себя из Code Interpreter и retrieval Инструменты или сборка самостоятельно из третьих лиц function calling.
  • file_ids: список, ID документа, передать сюда ID документа может документ в код Interpreter и retrievalиспользовать。документнужно пройтиFile изЗагрузить интерфейс руководитьначальствопроходить,И интерфейс должен бытьизpurpose установлен на assistants. одинAI Помощник может использовать до 20 документов. Максимум 512M на документ.

Загрузка файла:

Язык кода:javascript
копировать
file = client.files.create(
  file=open("speech.py", "rb"),
  purpose='assistants'
)

Создание помощника AI:

Язык кода:javascript
копировать
assistant = client.beta.assistants.create(
  name="Data visualizer",
  instructions="You are great at creating beautiful data visualizations. You analyze data present in .csv files, understand trends, and come up with data visualizations relevant to those trends. You also share a brief text summary of the trends observed.",
  model="gpt-4-1106-preview",
  tools=[{"type": "code_interpreter"}],
  file_ids=[file.id]
)
Управление разговорами и сообщениями

Нитьи Сообщения представляют собой ИИ помощникипользовательизчат。одиндиалогсерединаинформацияизчислода Нетпределиз,Когда содержимое сообщения превышает максимальную длину окна, которое может быть обработано.,Тема автоматически удалит самое старое сообщение.,Содержите как можно больше контента сообщения. (Уведомление,Эту политику OpenAI может обновлять)

Thread и Messages изсоздаватьнравиться Вниз:

Язык кода:javascript
копировать
thread = client.beta.threads.create(
  messages=[
    {
      "role": "user",
      "content": "Create 3 data visualizations based on the trends in this file.",
      "file_ids": [file.id]
    }
  ]
)

Сообщения могут иметь следующие две роли:

  • user: Сообщения пользователя
  • assistant: AI Помощник по ответу messagesинформация Может содержать текст,картина,а такжедокумент。Дав настоящий моментизAPIЕще нетподдерживатькартинаинформация,Я думаю, что это скоро будет доступно

Аннотация к сообщению Сообщение annotations AI Сообщение, возвращаемое помощником, может содержать Message annotations , хранится в контенте изобъект середина. Аннотации детямнравиться как анализировать сообщения и информацию;

В настоящее время существует две разные аннотации для утверждения:

  1. file_citation: Аннотация да retrieval Инструмент предоставляет из, который определяет ссылку на контент из источника.
  2. file_path:Аннотация да code_interpreter Инструмент предоставляется с указанием адресной книги справочника документов.

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

Язык кода:javascript
копировать
# Retrieve the message object
import openai as client
message = client.beta.threads.messages.retrieve(
  thread_id="...",
  message_id="..."
)

# Extract the message content
message_content = message.content[0].text
annotations = message_content.annotations
citations = []

# Iterate over the annotations and add footnotes
for index, annotation in enumerate(annotations):
    # Replace the text with a footnote
    message_content.value = message_content.value.replace(annotation.text, f' [{index}]')

    # Gather citations based on annotation attributes
    if (file_citation := getattr(annotation, 'file_citation', None)):
        cited_file = client.files.retrieve(file_citation.file_id)
        citations.append(f'[{index}] {file_citation.quote} from {cited_file.filename}')
    elif (file_path := getattr(annotation, 'file_path', None)):
        cited_file = client.files.retrieve(file_path.file_id)
        citations.append(f'[{index}] Click <here> to download {cited_file.filename}')
        # Note: File download functionality not implemented above for brevity

# Add footnotes to the end of the message before displaying to user
message_content.value += '\n' + '\n'.join(citations)
Шаги «Беги и беги»

когда нам нужен ИИ Assistant вернопользовательвопросруководитьотвечать,,нуждатьсясоздаватьодинRun Объект, который содержит два параметра:

  • thread_id: Создать перед изThreadизid
  • assistant_id: ИИ Assistant изid run = client.beta.threads.runs.create( thread_id=thread.id, assistant_id=assistant.id )

Обычно мы создаем Assistant объектиз времени, модельиинструменты были указаны, но да мы еще Можно найти всоздаватьосуществлятьобъект(Run)изкогда,руководитьпереназначить。

Язык кода:javascript
копировать
run = client.beta.threads.runs.create(
  thread_id=thread.id,
  assistant_id=assistant.id,
  model="gpt-4-1106-preview",
  instructions="additional instructions",
  tools=[{"type": "code_interpreter"}, {"type": "retrieval"}]
)

Уведомление:file_ids Нет Можно найти в Выполнениеруководить Исправлять,нуждатьсяиспользоватьИзменить API Ассистентаруководить Исправлять

**Выполнение жизненного цикла (Run lifecycle)

Run объект отличается изостоянием

СТАТУС

ОПРЕДЕЛЕНИЕ

ожидание в очереди

когдаRunобъект После первого создания,иликогда Заканчиватьrequired_action Он немедленно перейдет в состояние очереди, а затем немедленно войдет in_progress состояние.

Выполнение in_progress

когда Входить Выполнение После in_progressсостояния ИИ-помощник будет использовать инструмент «Модели», руководящий задачей «Заканчивать». Вы можете сделать это с помощью Run Шаги для просмотра прогресса

завершено завершено

Отмечая успех казни, Можно найти в Смотрите ответ AIиз в сообщении

Необходимо выполнить require_action

когдаиспользовать функциювызов Функция При вызове инструмента, как только Модель определит функцию вызова, имя и параметры, рабочее состояние перейдет в required_action состояние.Затем,Вы должны запустить эти функции и отправить выходные данные,Затем операцию продолжат руководить. Временная метка истечения срока действия (примерно через 10 минут после создания существования) Никаких выходных данных не было предоставлено до истечения срока действия.,Тогда рабочее состояние станет состоянием с истекшим сроком действия.

тайм-аут истек

этотиндивидуальныйсостояниедавыражатьнравитьсяфрукты Function calling из Узелфрукты Нетсуществовать expires_at Если оно было отправлено раньше, оно будет активировано. или Время выполнения превышает expires_at из времени, также сработает.

отмена отмена

ХОРОШО in_progress из Выполнить миссию руководить Отмена. Как только Отмена будет успешной, она будет отменена. статус, отмена не гарантирует успех

отменен отменен

Запуск успешно отменен

не удалось

Можно найти в last_error Посмотреть причину неудачи миссии и failed_at Посмотреть неудачное время

Следите за прогрессом Опрос обновлений

Чтобы своевременно выполнять прогресс, можно установить таймер. retrieve the Run Выполнить состояние Вы можете получать каждый раз. Run изExecute состояние, чтобы решить, что делать дальше. Пока не поддерживается streaming из Вывод (12.11.2023)

Блокировка разговора Thread locks когдаосуществлятьобъект Run руководить in_progress изсостояниеизкогда,Диалоговая тема Объект будет заблокирован, а это значит:

  • Новые сообщения не могут быть добавлены в беседу.
  • новыйизосуществлятьRun не может быть создан

Выполнить шаги

когда выполните, введите in_progress назад,Будут следующие четыре возможности изоляции,Соответственно

  1. Заканчивать
  2. неудача
  3. Отмена
  4. тайм-аут

осуществлятьшагRun steps Это может занять много времени. Чтобы разобраться в деталях исполнения, можем пройти мимо. step_details Это поле руководить наблюдением содержит два типа контента:

  1. message_creation: Показывает, какие сообщения генерируются
  2. tool_calls: Показывает, какой инструмент использовать
предел

в настоящий моментдаbeta версии, мы продолжим решать следующие проблемы в будущем

  • Поддержка потокового вывода
  • Поддержка уведомления из функции, Можно найти в общих обновлениях объектасостояние без опроса из
  • Поддержка DALL·E как инструмента
  • Помогите пользователям загружать фотографии

Tools

Code Interpreter

Code Interpreter позволяет Assistant API создавать и выполнять код. Эта возможность интерпретатора кода поддерживает различные виды обработки файлов, а также выполнение кода.

Интерпретатор кода может выполнять код,Заканчивать Множественная сложность миссий,И это может решить многие слабые возможности GPT.,примернравитьсяматематикаспособностьждать。Code Interpreter поддерживатьнравитьсяфрукты Обнаружитьсебя изкодосуществлятьнеудача Понятно,Пройдёт несколько раундов повторных попыток,пока выполнение не будет успешным.

Интерпретатор открытого кода

Если вам нужно включить Code Interpreter способность,Тольконуждатьсясуществоватьtools Добавлено в параметры Code Interpreter, нравиться tools=[{"type": "code_interpreter"}]Вот и все。

Язык кода:javascript
копировать
import openai as client
assistant = client.beta.assistants.create(
  instructions="You are a personal math tutor. When asked a math question, write and run code to answer the question.",
  model="gpt-4-1106-preview",
  tools=[{"type": "code_interpreter"}]
)

Затем модель выберет «Не использовать интерпретатор кода» для запуска пользователя по запросу.

Передача файлов в Code Interpreter

Code Interpreter Может анализировать документы разных типов, поэтому, когда вам нужно обработать большой объем данных, ИИ Assistant позволять Вы проходитесебя издокументруководитьанализировать。

Примечание. Для загрузки документа требуются настройки. purpose='assistants'

Язык кода:javascript
копировать
# Upload a file with an "assistants" purpose
import openai as client
file = client.files.create(
  file=open("speech.py", "rb"),
  purpose='assistants'
)

# Create an assistant using the file ID
assistant = client.beta.assistants.create(
  instructions="You are a personal math tutor. When asked a math question, write and run code to answer the question.",
  model="gpt-4-1106-preview",
  tools=[{"type": "code_interpreter"}],
  file_ids=[file.id]
)

Если вам нужно указать уровень доступа к диалогу из документа (то есть в этом диалоге можно получить доступ только к изменению документа), вы можете использовать нравиться из кода:

Язык кода:javascript
копировать
thread = client.beta.threads.create(
 messages=[
   {
     "role": "user",
     "content": "I need to solve the equation `3x + 11 = 14`. Can you help me?",
     "file_ids": [file.id]
   }
 ]
)

Максимальный поддерживаемый размер файла — 512. МБ, формат zподдержаниз содержит .csv, .pdf, .json идругие форматы

Поиск знаний Поиск знаний

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

Разработчик может документ (база знаний), загруженный в AI В Ассистенте откройте AI Он автоматически разделит руководимый документ на фрагменты, добавит индекс и встроит хранилище для достижения векторизованного поиска.

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

Включить поиск в базе знаний

Assistant Если вам нужно включить расширение базы знаний, требуется только инициализация tools присоединиться tools=[{"type": "retrieval"}] параметр.

Язык кода:javascript
копировать
assistant = client.beta.assistants.create(
  instructions="You are a customer support chatbot. Use your knowledge base to best respond to customer queries.",
  model="gpt-4-1106-preview",
  tools=[{"type": "retrieval"}]
)
Принцип работы

Модель будет выбрана автоматически на основе вашего ввода. Главное из логики отзыва: нравиться:

  1. Короткие документы передаются непосредственно в GPT
  2. Векторизованный отзыв длинных документов
Function Calling

и ChatGPT из Completion API То же, помощник API Также поддерживает function calling。 Function Calling лучше Вы сообщите ИИ функцию из описания Помощник, включая определение функции, параметры и т. д., а затем AI Помощник будет умным.

Да Assistant API Не напрямую вызывать функцию,ида Воляпараметры функцииифункциявозвращаться,ждать Вы отправляете результаты вызова функции,Только после этого будет выполнен следующий шаг.

определить функцию

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

Язык кода:javascript
копировать
{
    "type": "function", # Тип должен быть дафункция
    "function": {
      "name": "getCurrentWeather", # имя функции
      "description": "Get the weather in location", #Функцияиз Описания
      "parameters": { # параметры функции
        "type": "object",
        "properties": {
          "location": {"type": "string", "description": "The city and state e.g. San Francisco, CA"},
          "unit": {"type": "string", "enum": ["c", "f"]}
        },
        "required": ["location"]
      }
    }
  }

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

  • getCurrentWeather:получать Городизпогода
  • getNickname: получить псевдоним города
Язык кода:javascript
копировать
assistant = client.beta.assistants.create(
  instructions="You are a weather bot. Use the provided functions to answer questions.", 
  model="gpt-4-1106-preview",
  tools=[{
    "type": "function",
    "function": {
      "name": "getCurrentWeather",
      "description": "Get the weather in location",
      "parameters": {
        "type": "object",
        "properties": {
          "location": {"type": "string", "description": "The city and state e.g. San Francisco, CA"},
          "unit": {"type": "string", "enum": ["c", "f"]}
        },
        "required": ["location"]
      }
    }
  }, {
    "type": "function",
    "function": {
      "name": "getNickname",
      "description": "Get the nickname of a city",
      "parameters": {
        "type": "object",
        "properties": {
          "location": {"type": "string", "description": "The city and state e.g. San Francisco, CA"},
        },
        "required": ["location"]
      }
    } 
  }]
)

получатьвызовизфункция

когда Инициализировать один Бегать Когда из, нравиться вызов одной функции, вы введете pending изостояние.Требуется от вас руководить отправкой функции из результатов.

Модельподдерживатьодновременновызов,ссылка parallel function calling

нравиться из возвращает результаты, вы можете видеть required_action дануждатьсяпредставлять на рассмотрениеизфункциявызовизимя функцииипараметр.этотв Может получать call id , Используется для отправки.Использовать результаты функциииспользовать.

Язык кода:javascript
копировать
{
  "id": "run_3HV7rrQsagiqZmYynKwEdcxS",
  "object": "thread.run",
  "assistant_id": "asst_rEEOF3OGMan2ChvEALwTQakP",
  "thread_id": "thread_dXgWKGf8Cb7md8p0wKiMDGKc",
  "status": "requires_action",
  "required_action": {
    "type": "submit_tool_outputs",
    "submit_tool_outputs": {
      "tool_calls": [
        {
          "id": "call_Vt5AqcWr8QsRTNGv4cDIpsmA", # Обратный звонок идентификатор, используемый для отправкииспользовать
          "type": "function",
          "function": {
            "name": "getCurrentWeather",
            "arguments": "{\"location\":\"San Francisco\"}"
          }
        },
        {
          "id": "call_45y0df8230430n34f8saa",
          "type": "function",
          "function": {
            "name": "getNickname",
            "arguments": "{\"location\":\"Los Angeles\"}"
          }
        }
      ]
    }
  },
...
Отправить результаты функции

Необходимость каждой функции руководить Отправить вывод функции , для каждого вывода результат должен быть отправлен в какую функцию, тогда да соответствует функции, возвращаемой вызовом из required_action серединаиз tool_call_id

специфическийизкоднравиться Вниз。

Язык кода:javascript
копировать
run = client.beta.threads.runs.submit_tool_outputs(
  thread_id=thread.id, # идентификатор разговора
  run_id=run.id, # идентификатор выполнения
  tool_outputs=[
      {
        "tool_call_id": call_ids[0], # call id
        "output": "22C",
      },
      {
        "tool_call_id": call_ids[1],
        "output": "LA",
      },
    ]
)

Интегрированный API-интерфейс LangChain Assistant

По состоянию на 15 ноября 2023 г., LangChain API интеграции Только экспериментальная версия langchain-experimental,Официальной версии пока нет. Так что нужно использоватьиз читателей,Можетиспользоватьнравиться Вниз Версия:

Язык кода:javascript
копировать
!pip install -U -q "langchain==0.0.331rc2" langchain-experimental "openai>=1.1"
Язык кода:javascript
копировать
import os
os.environ["OPENAI_API_KEY"] = 'YOUR OPENAI KEY'

# !pip install -U -q "langchain==0.0.331rc2" langchain-experimental "openai>=1.1"


from langchain_experimental.openai_assistant import OpenAIAssistantRunnable
import openai as client
file = client.files.create(
  file=open("TEST.csv", "rb"),
  purpose='assistants'
)
interpreter_assistant = OpenAIAssistantRunnable.create_assistant(
    name="data analysis assistant",
    instructions="You are a profession data analysis. When asked a question, write and run Python code to answer the question.",
    tools=[{"type": "code_interpreter"}],
    file_ids=[file.id],
    model="gpt-4"
)


output = interpreter_assistant.invoke(
    {"content": «Какой день был самым активным за последние две недели?»,
     "file_ids": [file.id]
     })
output

Болееизсодержание Можетссылка:langchain cookbook

использовать curl вызов Assistant API

Для получения более подробной информации, пожалуйста, обратитесь к разделу «Нравиться». Jupyter Notebook

Возможности и действия

мы создаем GPTs Когда из, вы можете дать GPT поставлять Различный Неттакой жеспособности

  1. Знания: база знаний
  2. Возможности (встроенные возможности): включены OpenAI Он предоставляет базовые возможности, в основном включая эти возможности. Эти возможности являются наиболее важными и базовыми, поэтому OpenAI предпочитает делать их самостоятельно.
    1. Просмотр веб-страниц (возможности просмотра сети)
    2. DALLE Image Generation (возможность создания изображений)
    3. Code Переводчик (умение кодировать)
  3. Действия: действия,Относится к изда ГПЦизодругие способности.,Аналогично плагину дополнительных способностей,OpenAI не может помочь пользователям удовлетворить все потребности и возможности бизнеса.,Итак, это детский интерфейс,Пользователи могут удобно указать протокол интерфейса.,Предоставьте дополнительные возможности GPT. В настоящее время Actions использует протокол интерфейса OpenAPI.,удобныйGPTвызоввнешнийизAPI。специфическийизиспользовать МожетОбратитесь к руководству ниже

Сравнение и различия между GPT и Assistant API

Хотя GPTs и Assistant API Все да для того, чтобы создать собственный из AI помощниксоздаватьиз,приезжать В то время обаизметодииспользоватьизсцена Неттакой же。reference

GPTs Он имеет простой и удобный интерфейс, который могут быстро настроить даже начинающие пользователи. AI Помощник позволяет быстро проверить эффект от плана, и его можно очень быстро реализовать. GPTs измагазинсерединаруководитьделиться。

Однако, Assistant API Нужно работать через API из метода руководить, Хотя можно использовать Assistant API из Assistant playground руководить конфигурацией, но его главный изпроект также предоставляет разработчикам один API Кстати, удобно Разработчики могутсуществоватьсебя изприложениесередина,Быстрая интеграция этих способностей

Ссылки

  1. Youtube: Минималистское введение в API OpenAI Assistants (с LangChainинтегрированный)
  2. OpenAI Assistants API with LangChain
  3. langchain cookbook
  4. Assistant playground
  5. introducing GPTs
  6. OpenAI Assistants API
  7. Difference of GPT’s and Assistants
  8. OpenAI Announces GPTs & Assistants. What is the difference?>)
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose