OpenAI Responses
Вызов Responses и проверка полного завершения результата.
Для модели с поддержкой этого протокола используйте POST /v1/responses с Bearer-ключом. SDK OpenAI получает базовый адрес https://1zheai.com/v1.
Работа с результатом
Раздел «Работа с результатом»В запросе задайте модель и input. В ответе читайте содержимое output или используйте output_text SDK. Не ищите текст в choices, как у Chat Completions.
В потоке обрабатывайте события соответствующих типов, текстовые дельты и итоговое состояние. Ошибки и незавершённость должны учитываться даже после полученного текста. Успех подтверждается событием завершения или итоговым успешным состоянием; при response.failed, response.incomplete либо обрыве не выдавайте частичный ответ за полный.
Возможность инструмента, хранения состояния, ссылки на предыдущий ответ или другого расширения нужно проверять отдельно для выбранной модели. Не считайте весь API исходного поставщика реализованным только потому, что работает базовый вызов.
Примеры ниже; потоки и ошибки.
Примеры запросов и конфигурации
Раздел «Примеры запросов и конфигурации»Используйте пример для выбранного протокола и версии клиента. Замените учебные ключи и идентификаторы моделей своими. Команды выполняются на вашем компьютере или сервере.
curl --fail-with-body --connect-timeout 10 --max-time 120 \ https://1zheai.com/v1/responses \ -H "Authorization: Bearer $ONEZHE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-6-astra", "input": "Объясните API-шлюз тремя предложениями.", "store": false }'import osfrom openai import OpenAI
client = OpenAI( api_key=os.environ["ONEZHE_API_KEY"], base_url="https://1zheai.com/v1", timeout=120.0, max_retries=0,)response = client.responses.create( model=os.environ.get("ONEZHE_MODEL", "gpt-6-astra"), input="Объясните API-шлюз тремя предложениями.", store=False,)print(response.output_text)print("status:", response.status)with client.responses.create( model=os.environ.get("ONEZHE_MODEL", "gpt-6-astra"), input="Объясните API-шлюз тремя предложениями.", store=False, stream=True,) as stream: for event in stream: if event.type == "response.output_text.delta": print(event.delta, end="", flush=True) elif event.type == "response.completed": print("\nГотово") elif event.type in {"response.failed", "response.incomplete", "error"}: raise RuntimeError(f"Ответ не завершён:{event.type}")