Запрос модели с помощью API open Responses

В этой статье объясняется, как выполнять запросы к базовым моделям с помощью Open Responses API, а также описываются особенности поведения, зависящие от поставщика, которые необходимо при этом учитывать.

Open Responses API — это открытая реализация формата запросов в стиле Responses с поддержкой нескольких провайдеров. Он использует поле input вместо messages и возвращает структурированный массив output. Отправьте запросы по пути /serving-endpoints/open-responses, указав имя конечной точки обслуживания модели в поле model текста запроса.

Примечание.

Для моделей OpenAI используйте API ответов OpenAI напрямую. Этот путь представляет собой собственный сквозной режим и поддерживает полный набор параметров и инструментов OpenAI Responses. В этой статье рассматривается Open Responses API, который работает с разными поставщиками, но поддерживает ограниченный набор функций.

Примеры запросов

В следующем примере выполняется запрос конечной точки базовой модели с помощью API Open Responses.

curl \
  -u token:$DATABRICKS_TOKEN \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "model": "databricks-claude-sonnet-4-5",
    "input": [
      {
        "role": "user",
        "content": "What is a mixture of experts model?"
      }
    ],
    "max_output_tokens": 256
  }' \
  https://<workspace_host>.databricks.com/serving-endpoints/open-responses

Ответ — это response объект с массивом output . Для потоковых запросов (stream: true) ответ представляет собой text/event-stream, где каждое событие — это фрагмент ответа.

Поведение конкретного поставщика

Databricks преобразует запрос Open Responses в собственный формат каждого поставщика. Поведение согласовано для большинства запросов, но применяются следующие различия, относящиеся к поставщику.

Все поставщики

  • Беседы являются бессерверными. previous_response_id и хранение бесед на стороне сервера не поддерживаются. Отправляйте полный разговор в поле input при каждом ходе.
  • Некоторые поля, специфичные для OpenAI, принимаются, но игнорируются у провайдеров, отличных от OpenAI. Такие поля, как user, safety_identifier, metadata и truncation, возвращаются в ответе для переносимости, но не влияют на поведение поставщика.

Модели, размещенные в Databricks (открытый код)

  • Поддержка функций зависит от модели. Вызов функций, рассуждение, структурированный вывод и ввод изображений поддерживаются в зависимости от модели. Запрос, использующий функцию, которую модель не поддерживает, приводит к ошибке. Например, модель, поддерживающая обоснование, может не поддерживать входные данные изображения.
  • Входные данные изображения должны быть URL-адресом или универсальным кодом ресурса (URI) данных. Передавайте изображения через image_url в виде https URL-адреса или data: унифицированного идентификатора ресурса (URI). Ссылки на файлы (file_id) и входные данные документа (input_file) не поддерживаются.

Модели Anthropic Claude

  • Температура использует масштаб 0–2. Claude использует исходный диапазон 0–1, поэтому Databricks масштабирует значение, разделив его пополам, — temperature: 1.0 ведёт себя как 0.5.
  • Причина круговой поездки по поворотам. Чтобы модель могла опираться на свои предыдущие рассуждения в многоэтапном диалоге, отправьте возвращённые элементы reasoning — с их encrypted_content без изменений — обратно в поле input следующего запроса. См. примеры причин запроса.
  • Входные данные изображения и документа должны быть URI данных base64. Предоставьте изображения через image_url в виде URI в кодировке base64 data:, а документы через file_data в виде URI в кодировке base64 data:. https URL-адресы и file_id ссылки не поддерживаются.
  • Структурированные выходные данные имеют ограничения. text.format типа json_schema поддерживается, но json_object не поддерживается и возвращает ошибку. Структурированный вывод нельзя использовать вместе с потоковой передачей или режимом reasoning, и при использовании структурированного вывода нельзя привязать tool_choice к определённому инструменту. См. структурированные выходные данные в Azure Databricks.
  • Токены рассуждений включены в usage.output_tokens, а не указываются отдельно.

Модели Google Gemini

  • Температура использует масштаб 0–2. Gemini использует собственный диапазон 0–1, поэтому Databricks пересчитывает значение, разделив его пополам, — temperature: 1.0 ведёт себя как 0.5.
  • Причина круговой поездки по поворотам. Чтобы модель могла опираться на свои предыдущие рассуждения в многоэтапном диалоге, отправьте возвращённые элементы reasoning — с их encrypted_content без изменений — обратно в поле input следующего запроса. См. примеры причин запроса.
  • Для ввода изображений поддерживаются как https URL-адреса, так и URI данных в формате base64.
  • Токены рассуждения отображаются в usage.output_tokens_details.reasoning_tokens.

Это важно

При многоэтапных вызовах инструментов в Gemini необходимо сохранять encrypted_content. Gemini присваивает значение encrypted_content каждому элементу function_call, который он создает. Когда вы отправляете результат инструмента назад на следующем шаге, необходимо включить исходный элемент function_call с полем encrypted_content в неизменном виде. Фреймворки агентов, которые восстанавливают вызовы инструментов, опираясь только на name, arguments и call_id, опускают это поле, из-за чего последующий запрос отклоняется.

В следующем примере элемент function_call (вместе с его encrypted_content) сохраняется при возврате результата инструмента:

{
  "model": "databricks-gemini-2-5-pro",
  "input": [
    { "role": "user", "content": "What's the weather in San Francisco?" },
    {
      "type": "function_call",
      "call_id": "call_abc123",
      "name": "get_weather",
      "arguments": "{\"city\": \"San Francisco\"}",
      "encrypted_content": "<opaque-provider-signature>"
    },
    {
      "type": "function_call_output",
      "call_id": "call_abc123",
      "output": "{\"temp_f\": 64}"
    }
  ]
}

Tools

API Open Responses поддерживает инструменты типа function у разных поставщиков. Дополнительные сведения и список поддерживаемых моделей см. в разделе Вызов функций в Azure Databricks. Сведения о встроенном средстве веб-поиска см. в статье Веб-поиск в Azure Databricks.

Другие встроенные и настраиваемые типы инструментов (например custom, apply_patch, image_generationи mcp) доступны только через API ответов OpenAI.

Поддерживаемые модели

API Open Responses доступен во всех базовых моделях Databricks, включая Anthropic Claude, Google Gemini и открытые модели, размещённые на платформе Databricks, а в дальнейшем поддержка будет распространяться и на новые модели. Текущий список доступных моделей см. в разделе " Типы моделей Foundation".

Поддержка таких возможностей, как вызов функций, рассуждение, структурированный вывод и ввод изображений, зависит от базовой модели. См. поведение конкретного поставщика.

Поддерживаемые типы входных данных

Поддержка входных данных зависит от модели и поставщика. Ввод текста поддерживается всеми моделями. О вводе изображений см. примечания для конкретных поставщиков в разделе Особенности поведения разных поставщиков, а требования к формату и размеру — в разделе Запрос к моделям компьютерного зрения. Сведения о типах входных данных для каждой модели см. в разделе о размещённых Databricks базовых моделях, доступных в API-интерфейсах базовых моделей.

Дополнительные ресурсы