Детализированная потоковая передача инструментов является бета-функцией. Пожалуйста, убедитесь, что вы оцениваете свои ответы перед использованием в продакшене.Пожалуйста, используйте эту форму для предоставления обратной связи о качестве ответов модели, самом 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 в объекте-обертке.