Model-API's opvragen (modelservices)

Gebruik Unity AI Gateway om modelservices in Unity Catalog te bevragen met Azure Databricks model-API's, met behulp van de OpenAI-compatibele SDK, native provider API's of SQL.

Note

Wanneer een modelservice naar een modelprovider-dienstbestemming wordt geleid, gelden alleen de Unity AI Gateway-functies van de modelservice (zoals tarieflimieten, vangrails, inferentietabellen en fallbacks). Alle Unity AI Gateway-functies die op de modelprovider service zelf zijn geconfigureerd, worden overgeslagen.

Begin met het queryen van model-API's

Vraag een model-API in twee stappen op:

Stap 1: Kies een kant-en-klare model-API

Azure Databricks biedt kant-en-klare model-API's in het system.ai schema, zoals system.ai.claude-sonnet-4-5 en system.ai.gpt-5-6-sol. Deze zijn direct beschikbaar zonder extra installatie.

Stap 2: Stuur een verzoek via de uniforme OpenAI-compatibele API

Gebruik de MLflow Chat Completions API met de 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)

Voor andere opties, raadpleeg Aan de slag met het uitvoeren van query's op LLM's in Databricks.

Requirements

Ondersteunde API's en integraties

Unity AI Gateway ondersteunt de volgende API's en integraties:

Querymodelservices met geïntegreerde API's

Unified API's bieden een openAI-compatibele interface om query's uit te voeren op modellen in Azure Databricks. Gebruik geïntegreerde API's om naadloos te schakelen tussen modellen van verschillende providers zonder uw code te wijzigen.

Api voor voltooiing van MLflow-chat

Api voor voltooiing van MLflow-chat

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

Vervang <workspace-url> door de URL van uw Azure Databricks werkruimte en <model-service> door de volledig gekwalificeerde naam van uw modelservice.

MLflow Embeddings-API

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

Vervang <workspace-url> door de URL van uw Azure Databricks werkruimte en <model-service> door de volledig gekwalificeerde naam van uw modelservice.

Supervisor-API

Supervisor API

De Supervisor-API (/mlflow/v1/responses) is een openresponses-compatibele, provideragnostische API voor het bouwen van agents in beta. Workspace-beheerders kunnen het inschakelen via de pagina Voorbesprekingen . Zie Azure Databricks previews beheren. Kies het beste model voor uw agentgebruiksscenario tussen providers, zonder dat u uw code hoeft te wijzigen.

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

Vervang <workspace-url> door de URL van uw Azure Databricks werkruimte en <model-service> door de volledig gekwalificeerde naam van uw modelservice.

Modelservices opvragen met ai_query

Je kunt de ai_query functie gebruiken om modelservices direct vanuit SQL of Python te bevragen. Hiermee kunt u informatie over gebruiksregistratie vastleggen voor uw batchinferentie-workloads.

Note

  • ai_queryondersteuning voor Unity AI Gateway is alleen beschikbaar voor modellen geleverd door Azure Databricks. Geef de naam van de system.ai modelservice door (bijvoorbeeld, system.ai.claude-sonnet-4-5 of system.ai.gpt-5-6-sol). Modelservices die u in Unity AI Gateway maakt, worden nog niet ondersteund.
  • Alleen gebruiksregistratie geldt voor ai_query batchinferentie-workloads. Andere Unity AI Gateway-functies, zoals aanvraaglimieten, beveiligingsmaatregelen, inferentietabellen en terugvalopties, zijn niet van toepassing.

Om een modelservice te bevragen met ai_query, voer je ai_query uit op een modelservice:

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

De systeemtabel voor gebruikstracering (system.ai_gateway.usage) registreert aanvragen die via ai_query naar modeldiensten worden gedaan. Deze aanvragen worden ook weergegeven in het ingebouwde gebruiksdashboard.

Zie ai_query voor de volledige ai_query syntaxis en parameterreferentie. Zie Use ai_queryvoor aanbevolen procedures en ondersteunde modellen.

Query's uitvoeren op modelservices met systeemeigen API's

Systeemeigen API's bieden providerspecifieke interfaces om query's uit te voeren op modellen in Azure Databricks. Gebruik systeemeigen API's voor toegang tot de nieuwste providerspecifieke functies.

Elke systeemeigen API werkt alleen met modelservices waarvan het onderliggende model gebruikmaakt van de overeenkomende API-indeling:

  • Gebruik de Api voor OpenAI-antwoorden om query's uit te voeren op modelservices die worden ondersteund door GPT-modellen (OpenAI).
  • Gebruik de Anthropic Messages API om modelservices te bevragen die worden ondersteund door Claude-modellen.
  • Gebruik de Google Gemini-API om query's uit te voeren op modelservices die worden ondersteund door Gemini-modellen.

Als u een query wilt uitvoeren op een modelservice, ongeacht het onderliggende model, gebruikt u in plaats daarvan de geïntegreerde API's .

OpenAI-antwoorden-API

OpenAI-antwoorden-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

Vervang <workspace-url> door de URL van uw Azure Databricks werkruimte en <model-service> door de volledig gekwalificeerde naam van uw modelservice.

Anthropic Messages-API

API voor Anthropic berichten

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

Vervang <workspace-url> door de URL van uw Azure Databricks werkruimte en <model-service> door de volledig gekwalificeerde naam van uw modelservice.

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

Vervang <workspace-url> door de URL van uw Azure Databricks werkruimte en <model-service> door de volledig gekwalificeerde naam van uw modelservice.

Tagaanvragen voor het bijhouden van gebruik

U kunt aangepaste sleutelwaardetags koppelen aan afzonderlijke aanvragen met behulp van de Databricks-Ai-Gateway-Request-Tags HTTP-header. Aanvraagtags worden gelogd in de kolom request_tags in zowel de systeemtabel gebruiksregistratie als de inferentietabellen, zodat u kosten kunt bijhouden, gebruik kunt toewijzen en analyses kunt filteren op basis van project, team, omgeving of een andere dimensie.

De headerwaarde moet een JSON-object zijn dat tekenreekssleutels toewijst aan tekenreekswaarden. Voorbeeld:

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

Gebruik de parameter extra_headers (Python) of geef de header rechtstreeks (REST API) door om tags toe te voegen aan een aanvraag:

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

Vervang <workspace-url> door de URL van uw Azure Databricks werkruimte en <model-service> door de volledig gekwalificeerde naam van uw modelservice.

Volgende stappen