Frågemodell-API:er (modelltjänster)

Använd Unity AI Gateway för att göra frågor mot modelltjänster i Unity Catalog med Azure Databricks modell-API:er via OpenAI-kompatibla SDK:er, leverantörernas egna API:er eller SQL.

Note

När en modelltjänst leder till en modellleverantörs tjänstedestination gäller endast modelltjänstens Unity AI Gateway-funktioner (såsom hastighetsgränser, räcken, inferenstabeller och reservplan). Alla Unity AI Gateway-funktioner som har konfigurerats på själva modellleverantörens tjänst utelämnas.

Kom igång med att fråga modell-API:er

Fråga ett modell-API i två steg:

Steg 1: Välj ett färdigt modell-API

Azure Databricks tillhandahåller färdiga modell-API:er i schematsystem.ai, som system.ai.claude-sonnet-4-5 och system.ai.gpt-5-6-sol. Dessa finns tillgängliga direkt utan extra installation.

Steg 2: Skicka en förfrågan med det enhetliga OpenAI-kompatibla API:et

Använd MLflow Chat Completions API med 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)

För andra alternativ, se Kom igång med att fråga LLM:er på Databricks.

Requirements

API:er och integreringar som stöds

Unity AI Gateway stöder följande API:er och integreringar:

Fråga efter modelltjänster med enhetliga API:er

Enhetliga API:er erbjuder ett OpenAI-kompatibelt gränssnitt för att fråga efter modeller i Azure Databricks. Använd enhetliga API:er för att sömlöst växla mellan modeller från olika leverantörer utan att ändra din kod.

API för slutförande av MLflow-chatt

API för slutförande av MLflow-chatt

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

Ersätt <workspace-url> med url:en för din Azure Databricks arbetsyta och <model-service> med det fullständigt kvalificerade namnet på modelltjänsten.

API för MLflow-inbäddningar

API för MLflow-inbäddningar

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

Ersätt <workspace-url> med url:en för din Azure Databricks arbetsyta och <model-service> med det fullständigt kvalificerade namnet på modelltjänsten.

API för övervakning

Api för övervakare

Supervisor API (/mlflow/v1/responses) är ett OpenResponses-kompatibelt, provideragnostiskt API för byggagenter i Beta. Workspace-administratörer kan aktivera det från sidan Förhandsvisningar . Se Hantera förhandsversioner av Azure Databricks. Välj den bästa modellen för ditt agentanvändningsfall mellan leverantörer, utan att ändra din kod.

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

Ersätt <workspace-url> med url:en för din Azure Databricks arbetsyta och <model-service> med det fullständigt kvalificerade namnet på modelltjänsten.

Fråga efter modelltjänster med ai_query

Du kan använda ai_query funktionen för att fråga modelltjänster direkt från SQL eller Python. På så sätt kan du samla in information om användningsspårning för batchinferensarbetsbelastningar.

Note

  • ai_querystöd för Unity AI Gateway är endast tillgängligt för modeller som tillhandahålls av Azure Databricks. Skicka slutpunktsnamnet för Azure Databricks grundmodell, som innehåller prefixet databricks- (till exempel databricks-claude-sonnet-4-5 eller databricks-gpt-5-6-sol), i stället för modelltjänstnamnet system.ai som används på andra ställen på sidan. Modelltjänster som du skapar i Unity AI Gateway stöds ännu inte.
  • Endast användningsspårning gäller för ai_query batchinferensarbetsbelastningar. Andra Unity AI Gateway-funktioner som hastighetsbegränsningar, skyddsräcken, slutsatsdragningstabeller och återställningar gäller inte.

För att fråga en modelltjänst med ai_query, kör ai_query mot en modelltjänst:

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

Tabellen för användningsspårningssystemet (system.ai_gateway.usage) fångar förfrågningar som skickas vidare ai_query till modelleringstjänster. Dessa begäranden visas också i den inbyggda instrumentpanelen för användning.

Fullständig ai_query syntax och parameterreferens finns i ai_query funktion. För bästa praxis och modeller som stöds, se Använd ai_query.

Fråga efter modelltjänster med interna API:er

Interna API:er erbjuder providerspecifika gränssnitt för att fråga efter modeller i Azure Databricks. Använd interna API:er för att få åtkomst till de senaste providerspecifika funktionerna.

Varje internt API fungerar endast med modelltjänster vars underliggande modell använder det matchande API-formatet:

Om du vill köra frågor mot en modelltjänst oavsett dess underliggande modell använder du de enhetliga API:erna i stället.

Api för OpenAI-svar

OpenAI API för svar

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

Ersätt <workspace-url> med url:en för din Azure Databricks arbetsyta och <model-service> med det fullständigt kvalificerade namnet på modelltjänsten.

API för Anthropic-meddelanden

API för Anthropic-meddelanden

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

Ersätt <workspace-url> med url:en för din Azure Databricks arbetsyta och <model-service> med det fullständigt kvalificerade namnet på modelltjänsten.

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

Ersätt <workspace-url> med url:en för din Azure Databricks arbetsyta och <model-service> med det fullständigt kvalificerade namnet på modelltjänsten.

Märk begäranden för användningsspårning

Du kan koppla anpassade nyckel/värde-taggar till enskilda begäranden med hjälp av Databricks-Ai-Gateway-Request-Tags HTTP-huvudet. Begärandetaggar loggas till request_tags kolumnen i både systemtabellen för användningsspårning och slutsatsdragningstabeller, så att du kan spåra kostnader, attributanvändning och filteranalys efter projekt, team, miljö eller någon annan dimension.

Huvudvärdet måste vara ett JSON-objekt som mappar strängnycklar till strängvärden. Ett exempel:

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

Använd parametern extra_headers (Python) eller ange rubriken direkt (REST API) för att lägga till taggar i en begäran:

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

Ersätt <workspace-url> med url:en för din Azure Databricks arbetsyta och <model-service> med det fullständigt kvalificerade namnet på modelltjänsten.

Nästa steg