Справочник по API помощников (предварительная версия)
Примечание.
- Поиск по файлам может получать до 10 000 файлов на помощника — 500 раз больше, чем раньше. Это быстрый процесс, который поддерживает параллельные многопоточные поисковые запросы, а также функции расширенного повторного ранжирования и перезаписи запросов.
- Векторное хранилище — это новый объект в API. После добавления файла в векторное хранилище он автоматически анализируется, делится на блоки и кодируется в векторном представлении, чтобы подготовить к поиску по содержимому. Векторные хранилища можно использовать между разными помощниками и потоками, упрощая управление файлами и выставление счетов.
- Мы добавили поддержку
tool_choice
параметра, который можно использовать для принудительного использования определенного средства (например, поиска файлов, интерпретатора кода или функции) в определенном запуске.
В этой статье приведена справочная документация по Python и REST для нового API Помощников (предварительная версия). Дополнительные пошаговые инструкции приведены в руководстве по началу работы.
Создать выполнение
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs?api-version=2024-08-01-preview
Создайте запуск.
Параметр пути
Параметр | Type | Обязательно | Описание |
---|---|---|---|
thread_id |
строка | Обязательное поле | Идентификатор потока для создания сообщения. |
Текст запроса
Имя. | Type | Обязательно | Описание |
---|---|---|---|
assistant_id |
строка | Обязательное поле | Идентификатор помощника, используемого для выполнения этого выполнения. |
model |
строка или null | Необязательно | Имя развертывания модели, используемое для выполнения этого запуска. Если здесь указано значение, оно переопределит имя развертывания модели, связанное с помощником. В противном случае будет использоваться имя развертывания модели, связанное с помощником. |
instructions |
строка или null | Необязательно | Переопределяет инструкции помощника. Это полезно для изменения поведения на основе каждого запуска. |
additional_instructions |
строка | Необязательно | Добавляет дополнительные инструкции в конце инструкций для выполнения. Это полезно для изменения поведения на основе каждого запуска без переопределения других инструкций. |
additional_messages |
array | Необязательно | Добавляет дополнительные сообщения в поток перед созданием запуска. |
tools |
массив или null | Необязательно | Переопределите средства, которые помощник может использовать для этого запуска. Это полезно для изменения поведения на основе каждого запуска. |
metadata |
map | Необязательно | Набор из 16 пар "ключ-значение", которые могут быть присоединены к объекту. Это может быть полезно для хранения дополнительных сведений об объекте в структурированном формате. Ключи могут содержать не более 64 символов, а значения могут содержать не более 512 символов. |
temperature |
number | Необязательно | Какая температура выборки используется в диапазоне от 0 до 2. Более высокие значения, такие как 0,8, делают выходные данные более случайными, а более низкие значения, такие как 0,2, делают его более ориентированным и детерминированным. По умолчанию 1. |
top_p |
number | Необязательно | Альтернативой выборке с температурой является так называемая выборка ядра, где модель рассматривает результаты маркеров с top_p всего массива значений вероятности. Таким образом, 0,1 означает, что учитываются только маркеры, входящие в верхние 10% массива значений вероятности. Как правило, мы рекомендуем изменить либо это значение, либо температуру, но не оба. По умолчанию 1. |
stream |
boolean | необязательно | Если true возвращает поток событий, которые происходят во время событий запуска от имени сервера, завершая выполнение в состоянии терминала с сообщением data: [DONE] . |
max_prompt_tokens |
integer | необязательно | Максимальное количество маркеров завершения, которые могут использоваться в ходе выполнения. Выполнение сделает все возможное, чтобы использовать только количество маркеров завершения, указанных в нескольких поворотах выполнения. Если выполнение превышает указанное число маркеров завершения, выполнение завершится состоянием incomplete . |
max_completion_tokens |
integer | необязательно | Максимальное количество маркеров завершения, которые могут использоваться в ходе выполнения. Выполнение сделает все возможное, чтобы использовать только количество маркеров завершения, указанных в нескольких поворотах выполнения. Если выполнение превышает указанное число маркеров завершения, выполнение завершится состоянием incomplete . |
truncation_strategy |
усечениеObject | необязательно | Определяет, как поток будет усечен до выполнения. Используйте это для управления начальным окном контекста выполнения. |
tool_choice |
Строка или объект | необязательно | Определяет, какое средство (если таковое) вызывается моделью. Значение none означает, что модель не вызывает никаких инструментов и вместо этого создает сообщение. auto является значением по умолчанию и означает, что модель может выбирать между созданием сообщения или вызовом средства. Указание определенного инструмента, например {"type": "file_search"} или {"type": "function", "function": {"name": "my_function"}} принудительное вызов модели. |
response_format |
Строка или объект | необязательно | Указывает формат, который модель должна выводить. Совместим с GPT-4 Turbo и всеми моделями GPT-3.5 Turbo с тех пор gpt-3.5-turbo-1106 . Параметр включения { "type": "json_object" } режима JSON, который гарантирует, что модель создает сообщение является допустимым JSON. Важно: при использовании режима JSON необходимо также указать модели создавать JSON самостоятельно с помощью системного или пользовательского сообщения. Без этого модель может создать незавернутый поток пробелов до тех пор, пока поколение не достигнет предела маркера, в результате чего длительный и, казалось бы, "застрявший" запрос. Кроме того, обратите внимание, что содержимое сообщения может быть частично отрезано, если finish_reason="length" , указывающее, что превышено поколение max_tokens или беседа превысила максимальную длину контекста. |
Возвраты
Объект выполнения.
Пример создания запроса на выполнение
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")
)
run = client.beta.threads.runs.create(
thread_id="thread_abc123",
assistant_id="asst_abc123"
)
print(run)
Создание потока и запуск
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/runs?api-version=2024-08-01-preview
Создайте поток и запустите его в одном запросе.
Текст запроса
Имя. | Type | Обязательно | Описание |
---|---|---|---|
assistant_id |
строка | Обязательное поле | Идентификатор помощника, используемого для выполнения этого выполнения. |
thread |
объект | Необязательно | |
model |
строка или null | Необязательно | Идентификатор имени развертывания модели, используемого для выполнения этого запуска. Если здесь указано значение, оно переопределит имя развертывания модели, связанное с помощником. В противном случае будет использоваться имя развертывания модели, связанное с помощником. |
instructions |
строка или null | Необязательно | Переопределите системное сообщение помощника по умолчанию. Это полезно для изменения поведения на основе каждого запуска. |
tools |
массив или null | Необязательно | Переопределите средства, которые помощник может использовать для этого запуска. Это полезно для изменения поведения на основе каждого запуска. |
metadata |
map | Необязательно | Набор из 16 пар "ключ-значение", которые могут быть присоединены к объекту. Это может быть полезно для хранения дополнительных сведений об объекте в структурированном формате. Ключи могут содержать не более 64 символов, а значения могут содержать не более 512 символов. |
temperature |
number | Необязательно | Какая температура выборки используется в диапазоне от 0 до 2. Более высокие значения, такие как 0,8, делают выходные данные более случайными, а более низкие значения, такие как 0,2, делают его более ориентированным и детерминированным. По умолчанию 1. |
top_p |
number | Необязательно | Альтернативой выборке с температурой является так называемая выборка ядра, где модель рассматривает результаты маркеров с top_p всего массива значений вероятности. Таким образом, 0,1 означает, что учитываются только маркеры, входящие в верхние 10% массива значений вероятности. Как правило, мы рекомендуем изменить либо это значение, либо температуру, но не оба. По умолчанию 1. |
stream |
boolean | необязательно | Если true возвращает поток событий, которые происходят во время событий запуска от имени сервера, завершая выполнение в состоянии терминала с сообщением data: [DONE] . |
max_prompt_tokens |
integer | необязательно | Максимальное количество маркеров завершения, которые могут использоваться в ходе выполнения. Выполнение сделает все возможное, чтобы использовать только количество маркеров завершения, указанных в нескольких поворотах выполнения. Если выполнение превышает указанное число маркеров завершения, выполнение завершится состоянием incomplete . |
max_completion_tokens |
integer | необязательно | Максимальное количество маркеров завершения, которые могут использоваться в ходе выполнения. Выполнение сделает все возможное, чтобы использовать только количество маркеров завершения, указанных в нескольких поворотах выполнения. Если выполнение превышает указанное число маркеров завершения, выполнение завершится состоянием incomplete . |
truncation_strategy |
усечениеObject | необязательно | Определяет, как поток будет усечен до выполнения. Используйте это для управления начальным окном контекста выполнения. |
tool_choice |
Строка или объект | необязательно | Определяет, какое средство (если таковое) вызывается моделью. Значение none означает, что модель не вызывает никаких инструментов и вместо этого создает сообщение. auto является значением по умолчанию и означает, что модель может выбирать между созданием сообщения или вызовом средства. Указание определенного инструмента, например {"type": "file_search"} или {"type": "function", "function": {"name": "my_function"}} принудительное вызов модели. |
response_format |
Строка или объект | необязательно | Указывает формат, который модель должна выводить. Совместим с GPT-4 Turbo и всеми моделями GPT-3.5 Turbo с тех пор gpt-3.5-turbo-1106 . Параметр включения { "type": "json_object" } режима JSON, который гарантирует, что модель создает сообщение является допустимым JSON. Важно: при использовании режима JSON необходимо также указать модели создавать JSON самостоятельно с помощью системного или пользовательского сообщения. Без этого модель может создать незавернутый поток пробелов до тех пор, пока поколение не достигнет предела маркера, в результате чего длительный и, казалось бы, "застрявший" запрос. Кроме того, обратите внимание, что содержимое сообщения может быть частично отрезано, если finish_reason="length" , указывающее, что превышено поколение max_tokens или беседа превысила максимальную длину контекста. |
Возвраты
Объект выполнения.
Пример создания потока и выполнения запроса
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")
)
run = client.beta.threads.create_and_run(
assistant_id="asst_abc123",
thread={
"messages": [
{"role": "user", "content": "Explain deep learning to a 5 year old."}
]
}
)
Список запусков
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs?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, чтобы получить следующую страницу списка. |
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")
)
runs = client.beta.threads.runs.list(
"thread_abc123"
)
print(runs)
Перечисление шагов выполнения
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/steps?api-version=2024-08-01-preview
Возвращает список шагов, принадлежащих выполнению.
Параметры пути
Параметр | Type | Обязательно | Описание |
---|---|---|---|
thread_id |
строка | Обязательное поле | Идентификатор потока, к которому принадлежит выполнение. |
run_id |
строка | Обязательное поле | Идентификатор выполнения, связанного с инструкциями по выполнению для запроса. |
параметры запроса.
Имя. | Type | Обязательно | Описание |
---|---|---|---|
limit |
integer | Необязательно. Значение по умолчанию — значение 20 | Ограничение количества возвращаемых объектов. Ограничение может быть от 1 до 100, а значение по умолчанию — 20. |
order |
строка | Необязательно. Значения по умолчанию для desc | Сортировка по created_at метке времени объектов. asc для возрастания порядка и desc для убывающего порядка. |
after |
строка | Необязательно | Курсор для использования в разбиении на страницы. После этого является идентификатором объекта, который определяет место в списке. Например, если вы делаете запрос списка и получаете 100 объектов, заканчивая obj_foo, последующий вызов может включать after=obj_foo, чтобы получить следующую страницу списка. |
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")
)
run_steps = client.beta.threads.runs.steps.list(
thread_id="thread_abc123",
run_id="run_abc123"
)
print(run_steps)
Получение выполнения
from openai import OpenAI
client = OpenAI()
run = client.beta.threads.runs.retrieve(
thread_id="thread_abc123",
run_id="run_abc123"
)
print(run)
Извлекает запуск.
Параметры пути
Параметр | Type | Обязательно | Описание |
---|---|---|---|
thread_id |
строка | Обязательное поле | Идентификатор выполняемого потока. |
run_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")
)
run = client.beta.threads.runs.retrieve(
thread_id="thread_abc123",
run_id="run_abc123"
)
print(run)
Получение шага выполнения
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/steps/{step_id}?api-version=2024-08-01-preview
Извлекает шаг выполнения.
Параметры пути
Параметр | Type | Обязательно | Описание |
---|---|---|---|
thread_id |
строка | Обязательное поле | Идентификатор потока, к которому принадлежит шаг выполнения и выполнения. |
run_id |
строка | Обязательное поле | Идентификатор выполнения, к которому принадлежит шаг выполнения. |
step_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")
)
run_step = client.beta.threads.runs.steps.retrieve(
thread_id="thread_abc123",
run_id="run_abc123",
step_id="step_abc123"
)
print(run_step)
Изменение выполнения
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}?api-version=2024-08-01-preview
Изменяет выполнение.
Параметры пути
Параметр | Type | Обязательно | Описание |
---|---|---|---|
thread_id |
строка | Обязательное поле | Идентификатор выполняемого потока. |
run_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")
)
run = client.beta.threads.runs.update(
thread_id="thread_abc123",
run_id="run_abc123",
metadata={"user_id": "user_abc123"},
)
print(run)
Отправка выходных данных средства для выполнения
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/submit_tool_outputs?api-version=2024-08-01-preview
Если запуск имеет состояние "requires_action" и required_action.type submit_tool_outputs, эта конечная точка может использоваться для отправки выходных данных из вызовов средства после их завершения. Все выходные данные должны быть отправлены в одном запросе.
Параметры пути
Параметр | Type | Обязательно | Описание |
---|---|---|---|
thread_id |
строка | Обязательное поле | Идентификатор потока, к которому принадлежит этот запуск. |
run_id |
строка | Обязательное поле | Идентификатор выполнения, требующего отправки выходных данных средства. |
Текст запроса
Имя. | Type | Обязательно | Описание |
---|---|---|---|
tool_outputs |
array | Обязательное поле | Список инструментов, для которых отправляются выходные данные. |
stream |
boolean | Необязательно | Если true возвращает поток событий, которые происходят во время событий запуска от имени сервера, завершая выполнение в состоянии терминала с сообщением data: [DONE] . |
Возвраты
Измененный объект выполнения , соответствующий указанному идентификатору.
Пример выходных данных средства отправки для выполнения запроса
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")
)
run = client.beta.threads.runs.submit_tool_outputs(
thread_id="thread_abc123",
run_id="run_abc123",
tool_outputs=[
{
"tool_call_id": "call_abc123",
"output": "28C"
}
]
)
print(run)
Отмена выполнения
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/cancel?api-version=2024-08-01-preview
Отменяет запуск, in_progress.
Параметры пути
Параметр | Type | Обязательно | Описание |
---|---|---|---|
thread_id |
строка | Обязательное поле | Идентификатор потока, к которому принадлежит этот запуск. |
run_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")
)
run = client.beta.threads.runs.cancel(
thread_id="thread_abc123",
run_id="run_abc123"
)
print(run)
Запуск объекта
Представляет выполнение в потоке.
Имя. | Тип | Описание: |
---|---|---|
id |
строка | Идентификатор, на который можно ссылаться в конечных точках API. |
object |
строка | Тип объекта, который всегда является thread.run. |
created_at |
integer | Метка времени Unix (в секундах) для момента создания запуска. |
thread_id |
строка | Идентификатор потока, выполняемого в рамках этого запуска. |
assistant_id |
строка | Идентификатор помощника, используемого для выполнения этого запуска. |
status |
строка | Состояние выполнения, которое может быть , , , , , cancelled , completed failed или expired . cancelling requires_action in_progress queued |
required_action |
объект или null | Сведения о действии, необходимом для продолжения выполнения. Значение NULL будет иметь значение NULL, если никаких действий не требуется. |
last_error |
объект или null | Последняя ошибка, связанная с этим выполнением. Значение NULL будет иметь значение NULL, если ошибки отсутствуют. |
expires_at |
integer | Метка времени Unix (в секундах) для истечения срока действия выполнения. |
started_at |
целое число или null | Метка времени Unix (в секундах) для начала выполнения. |
cancelled_at |
целое число или null | Метка времени Unix (в секундах) для момента отмены выполнения. |
failed_at |
целое число или null | Метка времени Unix (в секундах) для момента сбоя выполнения. |
completed_at |
целое число или null | Метка времени Unix (в секундах) для завершения выполнения. |
model |
строка | Имя развертывания модели, используемое помощником для этого запуска. |
instructions |
строка | Инструкции, используемые помощником для этого запуска. |
tools |
array | Список инструментов, используемых помощником для этого запуска. |
file_ids |
array | Список идентификаторов файлов, используемых помощником для этого запуска. |
metadata |
map | Набор из 16 пар "ключ-значение", которые могут быть присоединены к объекту. Это может быть полезно для хранения дополнительных сведений об объекте в структурированном формате. Ключи могут содержать не более 64 символов, а значения могут содержать не более 512 символов. |
tool_choice |
Строка или объект | Определяет, какое средство (если таковое) вызывается моделью. none означает, что модель не вызывает средства и вместо этого создает сообщение. auto является значением по умолчанию и означает, что модель может выбирать между созданием сообщения или вызовом средства. Указание определенного инструмента, например {"type": "file_search"} или {"type": "function", "function": {"name": "my_function"}} принудительное вызов модели. |
max_prompt_tokens |
целое число или null | Максимальное количество маркеров запроса, указанных в ходе выполнения. |
max_completion_tokens |
целое число или null | Максимальное количество маркеров завершения, указанных в ходе выполнения. |
usage |
объект или null | Статистика использования, связанная с выполнением. Это значение будет иметь значение NULL, если выполнение не находится в состоянии терминала (напримерin_progress , ). queued |
truncation_strategy |
объект | Определяет, как поток будет усечен до выполнения. |
response_format |
строка | Формат, который должна выводить модель. Совместим с GPT-4 Turbo и всеми моделями GPT-3.5 Turbo с тех пор gpt-3.5-turbo-1106 . |
tool_choice |
строка | Определяет, какое средство (если таковое) вызывается моделью. none означает, что модель не вызывает средства и вместо этого создает сообщение. auto является значением по умолчанию и означает, что модель может выбирать между созданием сообщения или вызовом средства. |
Запуск объекта шага
Представляет шаг в выполнении запуска.
Имя. | Тип | Описание: |
---|---|---|
id |
строка | Идентификатор шага выполнения, на который можно ссылаться в конечных точках API. |
object |
строка | Тип объекта, который всегда является thread.run.step. |
created_at |
integer | Метка времени Unix (в секундах) для момента создания шага выполнения. |
assistant_id |
строка | Идентификатор помощника, связанного с шагом выполнения. |
thread_id |
строка | Идентификатор выполняемого потока. |
run_id |
строка | Идентификатор выполнения, на который выполняется этот шаг, является частью. |
type |
строка | Тип шага выполнения, который может быть message_creation или tool_calls. |
status |
строка | Состояние шага выполнения, которое может быть либо in_progress , либо .expired cancelled failed completed |
step_details |
объект | Сведения о шаге выполнения. |
last_error |
объект или null | Последняя ошибка, связанная с этим шагом выполнения. Значение NULL будет иметь значение NULL, если ошибки отсутствуют. |
expired_at |
целое число или null | Метка времени Unix (в секундах) для истечения срока действия выполнения. Шаг считается истекшим, если срок действия родительского запуска истек. |
cancelled_at |
целое число или null | Метка времени Unix (в секундах) для момента отмены шага выполнения. |
failed_at |
целое число или null | Метка времени Unix (в секундах) для момента сбоя шага выполнения. |
completed_at |
целое число или null | Метка времени Unix (в секундах) для завершения шага выполнения. |
metadata |
map | Набор из 16 пар "ключ-значение", которые могут быть присоединены к объекту. Это может быть полезно для хранения дополнительных сведений об объекте в структурированном формате. Ключи могут содержать не более 64 символов, а значения могут содержать не более 512 символов. |
Потоковая передача результата выполнения (предварительная версия)
Потоковая передача результата выполнения или возобновления выполнения после отправки выходных данных средства. Вы можете передавать события после:
Для потоковой передачи результата передайте "stream": true
во время создания запуска. Ответ будет потоком событий server-Sent.
Пример потоковой передачи
from typing_extensions import override
from openai import AssistantEventHandler
# First, we create a EventHandler class to define
# how we want to handle the events in the response stream.
class EventHandler(AssistantEventHandler):
@override
def on_text_created(self, text) -> None:
print(f"\nassistant > ", end="", flush=True)
@override
def on_text_delta(self, delta, snapshot):
print(delta.value, end="", flush=True)
def on_tool_call_created(self, tool_call):
print(f"\nassistant > {tool_call.type}\n", flush=True)
def on_tool_call_delta(self, delta, snapshot):
if delta.type == 'code_interpreter':
if delta.code_interpreter.input:
print(delta.code_interpreter.input, end="", flush=True)
if delta.code_interpreter.outputs:
print(f"\n\noutput >", flush=True)
for output in delta.code_interpreter.outputs:
if output.type == "logs":
print(f"\n{output.logs}", flush=True)
# Then, we use the `create_and_stream` SDK helper
# with the `EventHandler` class to create the Run
# and stream the response.
with client.beta.threads.runs.stream(
thread_id=thread.id,
assistant_id=assistant.id,
instructions="Please address the user as Jane Doe. The user has a premium account.",
event_handler=EventHandler(),
) as stream:
stream.until_done()
Объект усечения
Определяет, как поток будет усечен до выполнения. Используйте это для управления начальным окном контекста выполнения.
Имя. | Тип | Описание | Обязательное поле |
---|---|---|---|
type |
строка | Стратегия усечения, используемая для потока. Значение по умолчанию — auto . Если задано значение last_messages , поток будет усечен до n последних сообщений в потоке. Если задано значение auto , сообщения в середине потока будут удалены, чтобы соответствовать длине контекста модели. max_prompt_tokens |
Да |
last_messages |
integer | Количество последних сообщений из потока при создании контекста для выполнения. | No |
Объект delta message
Представляет разностную строку сообщения. Например, все измененные поля в сообщении во время потоковой передачи.
Имя. | Тип | Описание: |
---|---|---|
id |
строка | Идентификатор сообщения, на которое можно ссылаться в конечных точках API. |
object |
строка | Тип объекта, который всегда thread.message.delta является . |
delta |
объект | Разностное значение, содержащее поля, измененные в сообщении. |
Выполнение разностного объекта шага
Представляет разностную дельту шага выполнения. Например, все измененные поля на шаге выполнения во время потоковой передачи.
Имя. | Тип | Описание: |
---|---|---|
id |
строка | Идентификатор шага выполнения, на который можно ссылаться в конечных точках API. |
object |
строка | Тип объекта, который всегда thread.run.step.delta является . |
delta |
объект | Разностное значение, содержащее поля, измененные на шаге выполнения. |
События потока помощника
Представляет событие, генерируемое при потоковой передаче запуска. Каждое событие в потоке событий, отправляемых сервером, имеет свойство события и данных:
event: thread.created
data: {"id": "thread_123", "object": "thread", ...}
События создаются всякий раз, когда создается новый объект, переходит в новое состояние или передается в части (разностные). Например, thread.run.created
создается при создании нового запуска, thread.run.completed
после завершения выполнения и т. д. Когда помощник выбирает создание сообщения во время выполнения, мы выдаем thread.message.created
событие, thread.message.in_progress
событие, много потоков.message.delta
события и, наконец thread.message.completed
, событие.
Имя. | Тип | Описание |
---|---|---|
thread.created |
data — это поток. |
Происходит при создании нового потока. |
thread.run.created |
data — это запуск. |
Возникает при создании нового запуска. |
thread.run.queued |
data — это запуск. |
Происходит при перемещении выполнения в состояние очереди. |
thread.run.in_progress |
data — это запуск. |
Происходит при переходе выполнения к состоянию in_progress. |
thread.run.requires_action |
data — это запуск. |
Происходит при перемещении requires_action выполнения в состояние. |
thread.run.completed |
data — это запуск. |
Происходит при завершении выполнения. |
thread.run.failed |
data — это запуск. |
Происходит при сбое выполнения. |
thread.run.cancelling |
data — это запуск. |
Происходит при перемещении cancelling выполнения в состояние. |
thread.run.cancelled |
data — это запуск. |
Происходит при отмене выполнения. |
thread.run.expired |
data — это запуск. |
Происходит при истечении срока действия выполнения. |
thread.run.step.created |
data — это шаг выполнения. |
Происходит при создании шага выполнения. |
thread.run.step.in_progress |
data — это шаг выполнения. |
Происходит при переходе in_progress шага выполнения в состояние. |
thread.run.step.delta |
data — это разностный шаг выполнения. |
Происходит при потоковой передаче частей шага выполнения. |
thread.run.step.completed |
data — это шаг выполнения. |
Происходит при завершении шага выполнения. |
thread.run.step.failed |
data — это шаг выполнения. |
Происходит при сбое шага выполнения. |
thread.run.step.cancelled |
data — это шаг выполнения. |
Происходит при отмене шага выполнения. |
thread.run.step.expired |
data — это шаг выполнения. |
Происходит при истечении срока действия выполнения. |
thread.message.created |
data — это сообщение. |
Происходит при создании сообщения. |
thread.message.in_progress |
data — это сообщение. |
Происходит при переходе сообщения в состояние in_progress. |
thread.message.delta |
data — это разностное сообщение. |
Происходит при потоковой передаче частей сообщения. |
thread.message.completed |
data — это сообщение. |
Происходит при завершении сообщения. |
thread.message.incomplete |
data — это сообщение. |
Происходит, когда сообщение заканчивается до завершения. |
error |
data является ошибкой. |
Возникает при возникновении ошибки. Это может произойти из-за ошибки внутреннего сервера или времени ожидания. |
done |
data имеет значение [DONE] . |
Происходит, когда поток заканчивается. |