Zapytywanie modelu czatu

W tym artykule nauczysz się, jak pisać zapytania do modeli bazowych, które są zoptymalizowane do czatu i zadań ogólnego przeznaczenia, obsługiwane przez Unity Gateway.

Tip

Genie Code może to zrobić za Ciebie. Wypróbuj ten przykładowy monit:

Query the databricks-claude-sonnet-4-5 chat model using the OpenAI client. Send a system prompt and a user question, and print the response.

Przykłady w tym artykule dotyczą wykonywania zapytań dotyczących modeli podstawowych, które są udostępniane przy użyciu jednego z następujących elementów:

Wymagania

Przykłady zapytań

Note

Poniższe przykłady opierają się na Unity Gateway i usługach modelowych. Jeśli używasz modelu obsługującego punkty końcowe zamiast usług modelu, zastąp nazwę usługi modelu nazwą punktu końcowego. Zobacz Szczegółową listę modeli obsługiwanych przez interfejsy API modeli bazowych Databricks, aby wyświetlić listę dostępnych modeli bazowych oraz nazwy usług modeli i punktów końcowych.

Przykłady w tej sekcji pokazują, jak wysyłać zapytania do usługi modelu Foundation Model API z rozliczaniem za token, korzystając z różnych opcji klienta.

Ukończenie czatu OpenAI

Aby użyć klienta OpenAI, podaj nazwę usługi modelu jako dane wejściowe model. W poniższym przykładzie przyjęto założenie, że masz token interfejsu API usługi Databricks oraz że openai jest zainstalowany na twojej infrastruktury obliczeniowej. Potrzebujesz również wystąpienia obszaru roboczego Databricks, aby połączyć klienta OpenAI z 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/ai-gateway/mlflow/v1"
)

response = client.chat.completions.create(
    model="system.ai.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
)

Na przykład poniżej przedstawiono oczekiwany format żądania dla modelu czatu podczas korzystania z interfejsu API REST. W przypadku modeli zewnętrznych można uwzględnić dodatkowe parametry, które są prawidłowe dla danego dostawcy i konfiguracji punktu końcowego. Zobacz Dodatkowe parametry zapytania.

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

Poniżej przedstawiono oczekiwany format odpowiedzi dla żądania wykonanego przy użyciu interfejsu API REST:

{
  "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
}

Odpowiedzi openAI

Ważne

Ta sekcja omawia interfejs API OpenAI Responses, natywne przekazywanie, które obsługuje pełny zestaw parametrów OpenAI Responses dla modeli OpenAI. Aby korzystać z formatu żądania Responses z modelami Anthropic Claude, Google Gemini lub otwartymi modelami hostowanymi przez Databricks, zobacz Wykonywanie zapytań do modelu za pomocą Open Responses API.

Aby korzystać z interfejsu OpenAI Responses API, podaj nazwę usługi modelu jako dane wejściowe model. W poniższym przykładzie założono, że masz token interfejsu API usługi Azure Databricks i openai zainstalowane na Twoim systemie komputerowym. Potrzebujesz również wystąpienia obszaru roboczego usługi Azure Databricks, aby połączyć klienta OpenAI z 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/ai-gateway/mlflow/v1"
)

response = client.responses.create(
    model="system.ai.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
)

Na przykład poniżej przedstawiono oczekiwany format żądania podczas korzystania z interfejsu API odpowiedzi openAI. Ścieżka adresu URL dla API to /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
}

Poniżej przedstawiono oczekiwany format odpowiedzi dla żądania wykonanego przy użyciu interfejsu API odpowiedzi:

{
  "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
  }
}

interfejs API REST

Ważne

W poniższym przykładzie użyto parametrów interfejsu API REST do wykonywania zapytań dotyczących punktów końcowych obsługujących modele zewnętrzne. Te parametry są dostępne w publicznej wersji zapoznawczej , a definicja może ulec zmianie. Zobacz 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 \

Na przykład poniżej przedstawiono oczekiwany format żądania dla modelu czatu podczas korzystania z interfejsu API REST. W przypadku modeli zewnętrznych można uwzględnić dodatkowe parametry, które są prawidłowe dla danego dostawcy i konfiguracji punktu końcowego. Zobacz Dodatkowe parametry zapytania.

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

Poniżej przedstawiono oczekiwany format odpowiedzi dla żądania wykonanego przy użyciu interfejsu API REST:

{
  "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
}

Zestaw SDK wdrożeń MLflow

Ważne

W poniższym przykładzie użyto predict() API z MLflow Deployments SDK.


import os
import mlflow.deployments

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

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

chat_response = client.predict(
    endpoint="system.ai.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
    }
)

Na przykład poniżej przedstawiono oczekiwany format żądania dla modelu czatu podczas korzystania z interfejsu API REST. W przypadku modeli zewnętrznych można uwzględnić dodatkowe parametry, które są prawidłowe dla danego dostawcy i konfiguracji punktu końcowego. Zobacz Dodatkowe parametry zapytania.

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

Poniżej przedstawiono oczekiwany format odpowiedzi dla żądania wykonanego przy użyciu interfejsu API REST:

{
  "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
}

Zestaw SDK usługi Databricks Python

Ten kod musi być uruchomiony w notesie w obszarze roboczym. Zobacz Korzystanie z zestawu SDK dla języka Python w notatniku Azure Databricks.

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

w = WorkspaceClient()
response = w.serving_endpoints.query(
    name="system.ai.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}")

Na przykład poniżej przedstawiono oczekiwany format żądania dla modelu czatu podczas korzystania z interfejsu API REST. W przypadku modeli zewnętrznych można uwzględnić dodatkowe parametry, które są prawidłowe dla danego dostawcy i konfiguracji punktu końcowego. Zobacz Dodatkowe parametry zapytania.

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

Poniżej przedstawiono oczekiwany format odpowiedzi dla żądania wykonanego przy użyciu interfejsu API REST:

{
  "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
}

Obsługiwane modele

Zobacz Podstawowe typy modeli dla obsługiwanych modeli czatów.

Dodatkowe zasoby