Запрос модели чата

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

Примеры, приведенные в этой статье, относятся к запросам базовых моделей, доступных с помощью следующих способов:

Требования

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

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

Завершение чата OpenAI

Чтобы использовать клиент OpenAI, укажите имя конечной точки службы модели в качестве входных model данных. В следующем примере предполагается, что у вас есть токен API Databricks и openai установлен на вычислительных ресурсах. Вам также потребуется экземпляр рабочей области Databricks для подключения клиента OpenAI к Databricks.


import os
import openai
from openai import OpenAI

client = OpenAI(
    api_key="dapi-your-databricks-token",
    base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)

response = client.chat.completions.create(
    model="databricks-claude-sonnet-4-5",
    messages=[
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "What is a mixture of experts model?",
      }
    ],
    max_tokens=256
)

Например, ниже приведен ожидаемый формат запроса для модели чата при использовании REST API. Для внешних моделей можно включить дополнительные параметры, допустимые для заданного поставщика и конфигурации конечной точки. См. дополнительные параметры запроса.

{
  "messages": [
    {
      "role": "user",
      "content": "What is a mixture of experts model?"
    }
  ],
  "max_tokens": 100,
  "temperature": 0.1
}

Ниже приведен ожидаемый формат ответа для запроса, сделанного с помощью REST API:

{
  "model": "databricks-claude-sonnet-4-5",
  "choices": [
    {
      "message": {},
      "index": 0,
      "finish_reason": null
    }
  ],
  "usage": {
    "prompt_tokens": 7,
    "completion_tokens": 74,
    "total_tokens": 81
  },
  "object": "chat.completion",
  "id": null,
  "created": 1698824353
}

Ответы OpenAI

Это важно

API ответов совместим только с моделями OpenAI.

Чтобы использовать API ответов OpenAI, укажите имя конечной точки службы модели в качестве входных model данных. В следующем примере предполагается, что у вас есть маркер API Azure Databricks и openai установленный на вычислительных ресурсах. Вам также нужен экземпляр рабочей области Azure Databricks для подключения клиента OpenAI к Azure Databricks.


import os
import openai
from openai import OpenAI

client = OpenAI(
    api_key="dapi-your-databricks-token",
    base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)

response = client.responses.create(
    model="databricks-gpt-5",
    input=[
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "What is a mixture of experts model?",
      }
    ],
    max_output_tokens=256
)

Например, ниже приведен ожидаемый формат запроса при использовании API ответов OpenAI. URL-адрес для этого API /serving-endpoints/responses.

{
  "model": "databricks-gpt-5",
  "input": [
    {
      "role": "user",
      "content": "What is a mixture of experts model?"
    }
  ],
  "max_output_tokens": 100,
  "temperature": 0.1
}

Ниже приведен ожидаемый формат ответа для запроса, сделанного с помощью API ответов:

{
  "id": "resp_abc123",
  "object": "response",
  "created_at": 1698824353,
  "model": "databricks-gpt-5",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": []
    }
  ],
  "usage": {
    "input_tokens": 7,
    "output_tokens": 74,
    "total_tokens": 81
  }
}

REST API

Это важно

В следующем примере используются параметры REST API для запроса конечных точек обслуживания, которые служат внешним моделям. Эти параметры находятся в общедоступной предварительной версии , и определение может измениться. См. POST /serving-endpoints/{name}/invocations.

curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant."
    },
    {
      "role": "user",
      "content": " What is a mixture of experts model?"
    }
  ]
}' \
https://<workspace_host>.databricks.com/serving-endpoints/<your-external-model-endpoint>/invocations \

Например, ниже приведен ожидаемый формат запроса для модели чата при использовании REST API. Для внешних моделей можно включить дополнительные параметры, допустимые для заданного поставщика и конфигурации конечной точки. См. дополнительные параметры запроса.

{
  "messages": [
    {
      "role": "user",
      "content": "What is a mixture of experts model?"
    }
  ],
  "max_tokens": 100,
  "temperature": 0.1
}

Ниже приведен ожидаемый формат ответа для запроса, сделанного с помощью REST API:

{
  "model": "databricks-claude-sonnet-4-5",
  "choices": [
    {
      "message": {},
      "index": 0,
      "finish_reason": null
    }
  ],
  "usage": {
    "prompt_tokens": 7,
    "completion_tokens": 74,
    "total_tokens": 81
  },
  "object": "chat.completion",
  "id": null,
  "created": 1698824353
}

Пакет SDK для развертываний MLflow

Это важно

В следующем примере используется predict() API из пакета SDK для развертываний MLflow.


import mlflow.deployments

# Only required when running this example outside of a Databricks Notebook
export DATABRICKS_HOST="https://<workspace_host>.databricks.com"
export DATABRICKS_TOKEN="dapi-your-databricks-token"

client = mlflow.deployments.get_deploy_client("databricks")

chat_response = client.predict(
    endpoint="databricks-claude-sonnet-4-5",
    inputs={
        "messages": [
            {
              "role": "user",
              "content": "Hello!"
            },
            {
              "role": "assistant",
              "content": "Hello! How can I assist you today?"
            },
            {
              "role": "user",
              "content": "What is a mixture of experts model??"
            }
        ],
        "temperature": 0.1,
        "max_tokens": 20
    }
)

Например, ниже приведен ожидаемый формат запроса для модели чата при использовании REST API. Для внешних моделей можно включить дополнительные параметры, допустимые для заданного поставщика и конфигурации конечной точки. См. дополнительные параметры запроса.

{
  "messages": [
    {
      "role": "user",
      "content": "What is a mixture of experts model?"
    }
  ],
  "max_tokens": 100,
  "temperature": 0.1
}

Ниже приведен ожидаемый формат ответа для запроса, сделанного с помощью REST API:

{
  "model": "databricks-claude-sonnet-4-5",
  "choices": [
    {
      "message": {},
      "index": 0,
      "finish_reason": null
    }
  ],
  "usage": {
    "prompt_tokens": 7,
    "completion_tokens": 74,
    "total_tokens": 81
  },
  "object": "chat.completion",
  "id": null,
  "created": 1698824353
}

Databricks Python SDK

Этот код должен выполняться в блокноте в вашей рабочей области. См. использование SDK Databricks для Python в записной книжке Azure Databricks.

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ChatMessage, ChatMessageRole

w = WorkspaceClient()
response = w.serving_endpoints.query(
    name="databricks-claude-sonnet-4-5",
    messages=[
        ChatMessage(
            role=ChatMessageRole.SYSTEM, content="You are a helpful assistant."
        ),
        ChatMessage(
            role=ChatMessageRole.USER, content="What is a mixture of experts model?"
        ),
    ],
    max_tokens=128,
)
print(f"RESPONSE:\n{response.choices[0].message.content}")

Например, ниже приведен ожидаемый формат запроса для модели чата при использовании REST API. Для внешних моделей можно включить дополнительные параметры, допустимые для заданного поставщика и конфигурации конечной точки. См. дополнительные параметры запроса.

{
  "messages": [
    {
      "role": "user",
      "content": "What is a mixture of experts model?"
    }
  ],
  "max_tokens": 100,
  "temperature": 0.1
}

Ниже приведен ожидаемый формат ответа для запроса, сделанного с помощью REST API:

{
  "model": "databricks-claude-sonnet-4-5",
  "choices": [
    {
      "message": {},
      "index": 0,
      "finish_reason": null
    }
  ],
  "usage": {
    "prompt_tokens": 7,
    "completion_tokens": 74,
    "total_tokens": 81
  },
  "object": "chat.completion",
  "id": null,
  "created": 1698824353
}

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

Ознакомьтесь с типами базовых моделей для поддерживаемых моделей чата.

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