Поделиться через


Справочник по сообщениям API помощников (предварительная версия)

Примечание.

  • Поиск по файлам может получать до 10 000 файлов на помощника — 500 раз больше, чем раньше. Это быстрый процесс, который поддерживает параллельные многопоточные поисковые запросы, а также функции расширенного повторного ранжирования и перезаписи запросов.
    • Векторное хранилище — это новый объект в API. После добавления файла в векторное хранилище он автоматически анализируется, делится на блоки и кодируется в векторном представлении, чтобы подготовить к поиску по содержимому. Векторные хранилища можно использовать между разными помощниками и потоками, упрощая управление файлами и выставление счетов.
  • Мы добавили поддержку tool_choice параметра, который можно использовать для принудительного использования определенного средства (например, поиска файлов, интерпретатора кода или функции) в определенном запуске.

В этой статье приведена справочная документация по Python и REST для нового API Помощников (предварительная версия). Дополнительные пошаговые инструкции приведены в руководстве по началу работы.

Создать сообщение

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/messages?api-version=2024-08-01-preview

Создать сообщение.

Параметр пути

Параметр Type Обязательно Описание
thread_id строка Обязательное поле Идентификатор потока для создания сообщения.

Текст запроса

Имя. Type Обязательно Описание
role строка Обязательное поле Роль сущности, создающей сообщение. Может иметь значение user или assistant. user указывает, что сообщение отправляется фактическим пользователем и должно использоваться в большинстве случаев для представления сообщений, созданных пользователем. assistant указывает, что сообщение создается помощником. Используйте это значение для вставки сообщений от помощника в беседу.
content строка Обязательное поле Содержимое сообщения.
attachments array Необязательно Список файлов, присоединенных к сообщению, и инструменты, к которому они должны быть добавлены.
metadata map Необязательно Набор из 16 пар "ключ-значение", которые могут быть присоединены к объекту. Это может быть полезно для хранения дополнительных сведений об объекте в структурированном формате. Ключи могут содержать не более 64 символов, а значения могут содержать не более 512 символов.

Возвраты

Объект сообщения.

Пример запроса на создание сообщения

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

thread_message = client.beta.threads.messages.create(
  "thread_abc123",
  role="user",
  content="How does AI work? Explain it in simple terms.",
)
print(thread_message)

Вывести список сообщений

GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/messages?api-version=2024-08-01-preview

Возвращает список сообщений для данного потока.

Параметры пути

Параметр Type Обязательно Описание
thread_id строка Обязательное поле Идентификатор потока, к которому относятся сообщения.

Параметры запроса

Имя. Type Обязательно Описание
limit integer Необязательно. Значение по умолчанию — значение 20 Ограничение количества возвращаемых объектов. Ограничение может быть от 1 до 100, а значение по умолчанию — 20.
order строка Необязательно. Значения по умолчанию для desc Сортировка по created_at метке времени объектов. asc для возрастания порядка и desc для убывающего порядка.
after строка Необязательно Курсор для использования в разбиении на страницы. После этого является идентификатором объекта, который определяет место в списке. Например, если вы делаете запрос списка и получаете 100 объектов, заканчивая obj_foo, последующий вызов может включать after=obj_foo, чтобы получить следующую страницу списка.
run_id строка Optionanl Фильтруйте сообщения по идентификатору запуска, который создал их.
before строка Необязательно Курсор для использования в разбиении на страницы. прежде чем является идентификатором объекта, который определяет место в списке. Например, если вы делаете запрос списка и получаете 100 объектов, заканчивая obj_foo, последующий вызов может включать до=obj_foo, чтобы получить предыдущую страницу списка.

Возвраты

Список объектов сообщения .

Пример запроса на получение сообщений списка

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

thread_messages = client.beta.threads.messages.list("thread_abc123")
print(thread_messages.data)

Получение сообщения

GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/messages/{message_id}?api-version=2024-08-01-preview

Извлекает файл сообщения.

Параметры пути

Параметр Type Обязательно Описание
thread_id строка Обязательное поле Идентификатор потока, к которому принадлежит сообщение.
message_id строка Обязательное поле Идентификатор полученного сообщения.

Возвраты

Объект сообщения, соответствующий указанному идентификатору.

Пример запроса на получение сообщения

from openai import AzureOpenAI

client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-05-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

message = client.beta.threads.messages.retrieve(
  message_id="msg_abc123",
  thread_id="thread_abc123",
)
print(message)

Изменение сообщения

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/messages/{message_id}?api-version=2024-08-01-preview

Изменяет сообщение.

Параметры пути

Параметр Type Обязательно Описание
thread_id строка Обязательное поле Идентификатор потока, к которому принадлежит сообщение.
message_id строка Обязательное поле Идентификатор сообщения для изменения.

Текст запроса

Параметр Type Обязательно Описание
metadata map Необязательно Набор из 16 пар "ключ-значение", которые могут быть присоединены к объекту. Это может быть полезно для хранения дополнительных сведений об объекте в структурированном формате. Ключи могут содержать не более 64 символов, а значения могут содержать не более 512 символов.

Возвраты

Измененный объект сообщения .

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

message = client.beta.threads.messages.update(
  message_id="msg_abc12",
  thread_id="thread_abc123",
  metadata={
    "modified": "true",
    "user": "abc123",
  },
)
print(message)

Удалить сообщение

DELETE https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/messages/{message_id}?api-version=2024-08-01-preview

Удаляет сообщение.

Параметры пути

Параметр Type Обязательно Описание
thread_id строка Обязательное поле Идентификатор потока, к которому принадлежит сообщение.
message_id строка Обязательное поле Идентификатор сообщения для изменения.

Возвраты

Состояние удаления объекта сообщения .

from openai import AzureOpenAI
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

deleted_message = client.beta.threads.messages.delete(
  message_id="msg_abc12",
  thread_id="thread_abc123",
)
print(deleted_message)

Объект "Message"

Представляет сообщение в потоке.

Имя. Тип Описание:
id строка Идентификатор, на который можно ссылаться в конечных точках API.
object строка Тип объекта, который всегда является thread.message.
created_at integer Метка времени Unix (в секундах) для момента создания сообщения.
thread_id строка Идентификатор потока, к которому принадлежит это сообщение.
role строка Сущность, создающая сообщение. Возможные значения: user или assistant.
content array Содержимое сообщения в массиве текста и(или) изображений.
assistant_id строка или null Если применимо, идентификатор помощника, создающего это сообщение.
run_id строка или null Если применимо, идентификатор выполнения, связанный с автором этого сообщения.
file_ids array Список идентификаторов файлов, которые должен использовать помощник. Полезно для таких средств, как извлечение и code_interpreter, которые могут получить доступ к файлам. К сообщению может быть присоединено не более 10 файлов.
metadata map Набор из 16 пар "ключ-значение", которые могут быть присоединены к объекту. Это может быть полезно для хранения дополнительных сведений об объекте в структурированном формате. Ключи могут содержать не более 64 символов, а значения могут содержать не более 512 символов.