Abfrage-Modell-APIs (Modelldienste)

Verwenden Sie Unity AI Gateway, um Modelldienste im Unity Catalog mit Azure Databricks Modell-APIs abzufragen, wobei das OpenAI-kompatible SDK, native Provider-APIs oder SQL verwendet werden.

Hinweis

Wenn ein Modelldienst zu einem Modellanbieter-Dienstziel weitergeleitet wird, gelten nur die Unity AI Gateway-Funktionen des Modelldienstes (wie Ratenbegrenzungen, Leitplanken, Inferenztabellen und Rückfallpläne). Alle Unity AI Gateway-Funktionen, die auf dem Model-Provider-Dienst selbst konfiguriert sind, werden übersprungen.

Fang an, Modell-APIs abzufragen

Abfrage einer Modell-API in zwei Schritten:

Schritt 1: Wählen Sie eine einsatzbereite Modell-API

Azure Databricks bietet einsatzbereite Modell-APIs im system.ai Schema, wie system.ai.claude-sonnet-4-5 und system.ai.gpt-5-6-sol. Diese sind sofort ohne zusätzliche Einrichtung verfügbar.

Schritt 2: Senden Sie eine Anfrage über die einheitliche, OpenAI-kompatible API

Verwenden Sie die MLflow Chat Completions API mit dem OpenAI Python SDK:

from openai import OpenAI
import os

DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')

client = OpenAI(
  api_key=DATABRICKS_TOKEN,  # your personal access token
  base_url="https://<workspace-url>/ai-gateway/mlflow/v1"  # your Databricks workspace instance
)

chat_completion = client.chat.completions.create(
  messages=[
    {"role": "user", "content": "What is Databricks?"},
  ],
  model="system.ai.claude-sonnet-4-5",
  max_tokens=256
)

print(chat_completion.choices[0].message.content)

Weitere Optionen finden Sie unter Start mit Abfragen von LLMs auf Databricks.

Requirements

Unterstützte APIs und Integrationen

Unity AI Gateway unterstützt die folgenden APIs und Integrationen:

Abfragemodelldienste mit einheitlichen APIs

Einheitliche APIs bieten eine openAI-kompatible Schnittstelle für Abfragemodelle auf Azure Databricks. Verwenden Sie einheitliche APIs, um nahtlos zwischen Modellen von verschiedenen Anbietern zu wechseln, ohne Ihren Code zu ändern.

MLflow-Chatabschluss-API

MLflow-Chatabschluss-API

Python

from openai import OpenAI
import os

DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')

client = OpenAI(
  api_key=DATABRICKS_TOKEN,
  base_url="https://<workspace-url>/ai-gateway/mlflow/v1"
)

chat_completion = client.chat.completions.create(
  messages=[
    {"role": "user", "content": "Hello!"},
    {"role": "assistant", "content": "Hello! How can I assist you today?"},
    {"role": "user", "content": "What is Databricks?"},
  ],
  model="<model-service>",
  max_tokens=256
)

print(chat_completion.choices[0].message.content)

REST API

curl \
  -u token:$DATABRICKS_TOKEN \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model-service>",
    "max_tokens": 256,
    "messages": [
      {"role": "user", "content": "Hello!"},
      {"role": "assistant", "content": "Hello! How can I assist you today?"},
      {"role": "user", "content": "What is Databricks?"}
    ]
  }' \
  https://<workspace-url>/ai-gateway/mlflow/v1/chat/completions

Ersetzen Sie sie <workspace-url> durch Ihre Azure Databricks Arbeitsbereichs-URL und <model-service> durch den vollqualifizierten Namen Ihres Modelldiensts.

MLflow Embeddings-API

Die MLflow-Embeddings-API

Python

from openai import OpenAI
import os

DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')

client = OpenAI(
  api_key=DATABRICKS_TOKEN,
  base_url="https://<workspace-url>/ai-gateway/mlflow/v1"
)

embeddings = client.embeddings.create(
  input="What is Databricks?",
  model="<model-service>"
)

print(embeddings.data[0].embedding)

REST API

curl \
  -u token:$DATABRICKS_TOKEN \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model-service>",
    "input": "What is Databricks?"
  }' \
  https://<workspace-url>/ai-gateway/mlflow/v1/embeddings

Ersetzen Sie sie <workspace-url> durch Ihre Azure Databricks Arbeitsbereichs-URL und <model-service> durch den vollqualifizierten Namen Ihres Modelldiensts.

Supervisor-API

Supervisor-API

Die Supervisor-API (/mlflow/v1/responses) ist eine openResponses-kompatible, anbieteragnostische API zum Erstellen von Agents in Beta. Workspace-Administratoren können sie über die Vorschauenseite aktivieren. Siehe Manage Azure Databricks Previews. Wählen Sie das beste Modell für Ihren Agent-Anwendungsfall für Anbieter aus, ohne Ihren Code zu ändern.

Python

from openai import OpenAI
import os

DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')

client = OpenAI(
  api_key=DATABRICKS_TOKEN,
  base_url="https://<workspace-url>/ai-gateway/mlflow/v1"
)

response = client.responses.create(
  model="<model-service>",
  input=[{"role": "user", "content": "What is Databricks?"}]
)

print(response.output_text)

REST API

curl \
  -u token:$DATABRICKS_TOKEN \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model-service>",
    "input": [
      {"role": "user", "content": "What is Databricks?"}
    ]
  }' \
  https://<workspace-url>/ai-gateway/mlflow/v1/responses

Ersetzen Sie sie <workspace-url> durch Ihre Azure Databricks Arbeitsbereichs-URL und <model-service> durch den vollqualifizierten Namen Ihres Modelldiensts.

Abfragemodelldienste mit ai_query

Du kannst die ai_query Funktion verwenden, um Modellservices direkt aus SQL oder Python abzufragen. Dadurch können Sie Informationen zur Nutzungsverfolgung für Ihre Batch-Inferenz-Workloads erfassen.

Hinweis

  • ai_queryUnterstützung für Unity AI Gateway ist nur für von Azure Databricks bereitgestellte Modelle verfügbar. Geben Sie den Endpunktsnamen des Azure Databricks Foundation Modellmodells weiter, der ein databricks- Präfix (zum Beispiel databricks-claude-sonnet-4-5 oder databricks-gpt-5-6-sol) enthält, anstatt des an anderen system.ai Orten auf dieser Seite verwendeten Modelldienstnamens. Modelldienste, die Sie in Unity AI Gateway erstellen, werden noch nicht unterstützt.
  • Nur Nutzungsverfolgung gilt für ai_query Batch-Inferenz-Workloads. Andere Funktionen des Unity AI Gateway wie Ratenbegrenzungen, Guardrails, Inferenztabellen und Fallbacks finden keine Anwendung.

Um einen Modelldienst mit ai_query abzufragen, führen Sie ai_query für einen Modelldienst aus:

SELECT ai_query(
  'databricks-claude-sonnet-4-5',
  'Summarize the following text: ' || text_column
) AS summary
FROM my_table
LIMIT 10

Die Systemtabelle zur Nutzungsverfolgung (system.ai_gateway.usage) erfasst Anfragen, die über ai_query an Modelldienste gestellt werden. Diese Anforderungen werden auch im integrierten Verwendungsdashboard angezeigt.

Vollständige ai_query Syntax- und Parameterreferenz finden Sie unter ai_query Funktion. Bewährte Methoden und unterstützte Modelle finden Sie unter "Verwenden" ai_query.

Abfragemodelldienste mit systemeigenen APIs

Systemeigene APIs bieten anbieterspezifische Schnittstellen für Abfragemodelle in Azure Databricks. Verwenden Sie systemeigene APIs, um auf die neuesten anbieterspezifischen Features zuzugreifen.

Jede systemeigene API funktioniert nur mit Modelldiensten, deren zugrunde liegendes Modell das entsprechende API-Format verwendet:

  • Verwenden Sie die OpenAI-Antwort-API , um Modelldienste abzufragen, die von OpenAI(GPT)-Modellen unterstützt werden.
  • Verwenden Sie die Anthropic Messages API, um Dienste abzufragen, die auf Claude-Modellen basieren.
  • Verwenden Sie die Google Gemini-API , um Modelldienste abzufragen, die von Gemini-Modellen unterstützt werden.

Um einen Modelldienst unabhängig vom zugrunde liegenden Modell abzufragen, verwenden Sie stattdessen die einheitlichen APIs .

OpenAI-Antwort-API

OpenAI-Antwort-API

Python

from openai import OpenAI
import os

DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')

client = OpenAI(
  api_key=DATABRICKS_TOKEN,
  base_url="https://<workspace-url>/ai-gateway/openai/v1"
)

response = client.responses.create(
  model="<model-service>",
  max_output_tokens=256,
  input=[
    {
      "role": "user",
      "content": [{"type": "input_text", "text": "Hello!"}]
    },
    {
      "role": "assistant",
      "content": [{"type": "output_text", "text": "Hello! How can I assist you today?"}]
    },
    {
      "role": "user",
      "content": [{"type": "input_text", "text": "What is Databricks?"}]
    }
  ]
)

print(response.output)

REST API

curl \
  -u token:$DATABRICKS_TOKEN \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model-service>",
    "max_output_tokens": 256,
    "input": [
      {
        "role": "user",
        "content": [{"type": "input_text", "text": "Hello!"}]
      },
      {
        "role": "assistant",
        "content": [{"type": "output_text", "text": "Hello! How can I assist you today?"}]
      },
      {
        "role": "user",
        "content": [{"type": "input_text", "text": "What is Databricks?"}]
      }
    ]
  }' \
  https://<workspace-url>/ai-gateway/openai/v1/responses

Ersetzen Sie sie <workspace-url> durch Ihre Azure Databricks Arbeitsbereichs-URL und <model-service> durch den vollqualifizierten Namen Ihres Modelldiensts.

Anthropic Nachrichten-API

Anthropic Messages API

Python

import anthropic
import os

DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')

client = anthropic.Anthropic(
  api_key="unused",
  base_url="https://<workspace-url>/ai-gateway/anthropic",
  default_headers={
    "Authorization": f"Bearer {DATABRICKS_TOKEN}",
  },
)

message = client.messages.create(
  model="<model-service>",
  max_tokens=256,
  messages=[
    {"role": "user", "content": "Hello!"},
    {"role": "assistant", "content": "Hello! How can I assist you today?"},
    {"role": "user", "content": "What is Databricks?"},
  ],
)

print(message.content[0].text)

REST API

curl \
  -u token:$DATABRICKS_TOKEN \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model-service>",
    "max_tokens": 256,
    "messages": [
      {"role": "user", "content": "Hello!"},
      {"role": "assistant", "content": "Hello! How can I assist you today?"},
      {"role": "user", "content": "What is Databricks?"}
    ]
  }' \
  https://<workspace-url>/ai-gateway/anthropic/v1/messages

Ersetzen Sie sie <workspace-url> durch Ihre Azure Databricks Arbeitsbereichs-URL und <model-service> durch den vollqualifizierten Namen Ihres Modelldiensts.

Google Gemini-API

Google Gemini-API

Python

from google import genai
from google.genai import types
import os

DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')

client = genai.Client(
  api_key="databricks",
  http_options=types.HttpOptions(
    base_url="https://<workspace-url>/ai-gateway/gemini",
    headers={
      "Authorization": f"Bearer {DATABRICKS_TOKEN}",
    },
  ),
)

response = client.models.generate_content(
  model="<model-service>",
  contents=[
    types.Content(
      role="user",
      parts=[types.Part(text="Hello!")],
    ),
    types.Content(
      role="model",
      parts=[types.Part(text="Hello! How can I assist you today?")],
    ),
    types.Content(
      role="user",
      parts=[types.Part(text="What is Databricks?")],
    ),
  ],
  config=types.GenerateContentConfig(
    max_output_tokens=256,
  ),
)

print(response.text)

REST API

curl \
  -u token:$DATABRICKS_TOKEN \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [{"text": "Hello!"}]
      },
      {
        "role": "model",
        "parts": [{"text": "Hello! How can I assist you today?"}]
      },
      {
        "role": "user",
        "parts": [{"text": "What is Databricks?"}]
      }
    ],
    "generationConfig": {
      "maxOutputTokens": 256
    }
  }' \
  https://<workspace-url>/ai-gateway/gemini/v1beta/models/<model-service>:generateContent

Ersetzen Sie sie <workspace-url> durch Ihre Azure Databricks Arbeitsbereichs-URL und <model-service> durch den vollqualifizierten Namen Ihres Modelldiensts.

Tag-Anforderungen für die Verwendungsnachverfolgung

Sie können einzelnen Anfragen benutzerdefinierte Schlüssel-Wert-Tags mithilfe des HTTP-Headers Databricks-Ai-Gateway-Request-Tags hinzufügen. Anforderungstags werden in der request_tags Spalte sowohl in der Tabelle des Verwendungsverfolgungssystems als auch in der Ableitungstabelle protokolliert, sodass Sie Kosten, Attributnutzung und Filteranalysen nach Projekt, Team, Umgebung oder einer anderen Dimension nachverfolgen können.

Der Header-Wert muss ein JSON-Objekt sein, das String-Schlüssel String-Werten zuordnet. Beispiel:

{ "project": "chatbot", "team": "ml-platform", "environment": "production" }

Verwenden Sie den parameter extra_headers (Python) oder übergeben Sie den Header direkt (REST-API), um Tags an eine Anforderung anzufügen:

Python (OpenAI SDK)

from openai import OpenAI
import json
import os

DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')

client = OpenAI(
  api_key=DATABRICKS_TOKEN,
  base_url="https://<workspace-url>/ai-gateway/mlflow/v1"
)

request_tags = {"project": "chatbot", "team": "ml-platform"}

chat_completion = client.chat.completions.create(
  messages=[
    {"role": "user", "content": "What is Databricks?"},
  ],
  model="<model-service>",
  max_tokens=256,
  extra_headers={
    "Databricks-Ai-Gateway-Request-Tags": json.dumps(request_tags)
  }
)

Python (Anthropic SDK)

import anthropic
import json
import os

DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')

request_tags = {"project": "chatbot", "team": "ml-platform"}

client = anthropic.Anthropic(
  api_key="unused",
  base_url="https://<workspace-url>/ai-gateway/anthropic",
  default_headers={
    "Authorization": f"Bearer {DATABRICKS_TOKEN}",
    "Databricks-Ai-Gateway-Request-Tags": json.dumps(request_tags),
  },
)

message = client.messages.create(
  model="<model-service>",
  max_tokens=256,
  messages=[
    {"role": "user", "content": "What is Databricks?"},
  ],
)

REST API

curl \
  -u token:$DATABRICKS_TOKEN \
  -X POST \
  -H "Content-Type: application/json" \
  -H 'Databricks-Ai-Gateway-Request-Tags: {"project": "chatbot", "team": "ml-platform"}' \
  -d '{
    "model": "<model-service>",
    "max_tokens": 256,
    "messages": [
      {"role": "user", "content": "What is Databricks?"}
    ]
  }' \
  https://<workspace-url>/ai-gateway/mlflow/v1/chat/completions

Ersetzen Sie sie <workspace-url> durch Ihre Azure Databricks Arbeitsbereichs-URL und <model-service> durch den vollqualifizierten Namen Ihres Modelldiensts.

Nächste Schritte