Детализированная потоковая передача инструментов является бета-функцией. Пожалуйста, убедитесь, что вы оцениваете свои ответы перед использованием в продакшене.Пожалуйста, используйте эту форму для предоставления обратной связи о качестве ответов модели, самом API или качестве документации — мы не можем дождаться, чтобы услышать от вас!
При использовании детализированной потоковой передачи инструментов вы можете потенциально получить недействительные или частичные JSON входные данные. Пожалуйста, убедитесь, что учитываете эти крайние случаи в своем коде.
Как использовать детализированную потоковую передачу инструментов
Чтобы использовать эту бета-функцию, просто добавьте бета-заголовокfine-grained-tool-streaming-2025-05-14
к запросу использования инструмента и включите потоковую передачу.
Вот пример того, как использовать детализированную потоковую передачу инструментов с API:
make_file
без буферизации для проверки того, является ли параметр lines_of_text
действительным JSON. Это означает, что вы можете видеть поток параметров по мере его поступления, не дожидаясь буферизации и валидации всего параметра.
С детализированной потоковой передачей инструментов фрагменты использования инструментов начинают передаваться быстрее и часто бывают длиннее и содержат меньше разрывов слов. Это связано с различиями в поведении фрагментации.Пример:Без детализированной потоковой передачи (задержка 15с):С детализированной потоковой передачей (задержка 3с):
Поскольку детализированная потоковая передача отправляет параметры без буферизации или валидации JSON, нет гарантии, что результирующий поток завершится действительной JSON строкой.
В частности, если достигнута причина остановки
max_tokens
, поток может закончиться посередине параметра и может быть неполным. Вам обычно придется написать специальную поддержку для обработки случаев, когда достигается max_tokens
.Обработка недействительного JSON в ответах инструментов
При использовании детализированной потоковой передачи инструментов вы можете получить недействительный или неполный JSON от модели. Если вам нужно передать этот недействительный JSON обратно модели в блоке ответа об ошибке, вы можете обернуть его в JSON объект для обеспечения правильной обработки (с разумным ключом). Например:При обертывании недействительного JSON убедитесь, что правильно экранируете любые кавычки или специальные символы в недействительной JSON строке для поддержания действительной JSON структуры в объекте-обертке.