Zapytania do punktów końcowych Unity AI Gateway

Ważne

Ta funkcja jest dostępna w wersji beta. Administratorzy kont mogą kontrolować dostęp do tej funkcji ze strony podglądów konsoli konta. Zobacz Zarządzanie podglądami Azure Databricks.

Na tej stronie opisano, jak zadawać zapytania do endpointów Unity AI Gateway z użyciem obsługiwanych interfejsów API.

Requirements

Obsługiwane interfejsy API i integracje

Usługa Unity AI Gateway obsługuje następujące interfejsy API i integracje:

  • Unified APIs: Interfejsy zgodne z interfejsami OpenAI do wykonywania zapytań dotyczących modeli w Azure Databricks. Bezproblemowo przełączaj się między modelami od różnych dostawców bez zmieniania sposobu wykonywania zapytań względem poszczególnych modeli.
  • Natywne interfejsy API: interfejsy specyficzne dla dostawcy w celu uzyskania dostępu do najnowszych funkcji specyficznych dla modelu i dostawcy.
  • Agenci kodowania: integruj agentów kodowania z usługą Unity AI Gateway, aby dodać scentralizowany nadzór i monitorowanie do przepływów pracy programowania wspomaganego przez sztuczną inteligencję. Zobacz Integracja z agentami kodowania.

Wykonywanie zapytań dotyczących punktów końcowych za pomocą ujednoliconych interfejsów API

Ujednolicone interfejsy API oferują interfejs zgodny z interfejsem OpenAI do wykonywania zapytań dotyczących modeli w Azure Databricks. Ujednolicone interfejsy API umożliwiają bezproblemowe przełączanie modeli od różnych dostawców bez konieczności zmieniania kodu.

API uzupełniania czatów MLflow

Interfejs API do uzupełniania czatów MLflow

Python

from openai import OpenAI
import os

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

client = OpenAI(
  api_key=DATABRICKS_TOKEN,
  base_url="https://<ai-gateway-url>/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="<ai-gateway-endpoint>",
  max_tokens=256
)

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

interfejs API REST

curl \
  -u token:$DATABRICKS_TOKEN \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<ai-gateway-endpoint>",
    "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://<ai-gateway-url>/mlflow/v1/chat/completions

Zastąp <ai-gateway-url> adresem URL bramy sieciowej Unity AI i <ai-gateway-endpoint> nazwą punktu końcowego bramy sieciowej Unity AI.

Interfejs API osadzania MLflow

Interfejs API osadzania MLflow

Python

from openai import OpenAI
import os

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

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

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

print(embeddings.data[0].embedding)

interfejs API REST

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

Zastąp <ai-gateway-url> adresem URL bramy Unity AI i <ai-gateway-endpoint> nazwą punktu końcowego Unity AI Gateway.

Interfejs API nadzorcy

Interfejs API Superwizora

API Nadzorcy (/mlflow/v1/responses) to zgodny z protokołem OpenResponses, niezależny od dostawcy API do tworzenia agentów w Wersji Beta. Administratorzy kont mogą włączyć dostęp ze strony Podglądy . Zobacz Zarządzanie podglądami Azure Databricks. Wybierz najlepszy model przypadku użycia agenta u dostawców bez konieczności zmieniania kodu.

Python

from openai import OpenAI
import os

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

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

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

print(response.output_text)

interfejs API REST

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

Zastąp <ai-gateway-url> adresem URL bramy sztucznej inteligencji i <ai-gateway-endpoint> nazwą punktu końcowego bramy sztucznej inteligencji.

Wykonywanie zapytań dotyczących punktów końcowych za pomocą natywnych interfejsów API

Natywne interfejsy API oferują interfejsy specyficzne dla dostawcy, umożliwiające wykonywanie zapytań do modeli w Azure Databricks. Użyj natywnych interfejsów API, aby uzyskać dostęp do najnowszych funkcji specyficznych dla dostawcy.

API odpowiedzi OpenAI

Interfejs API odpowiedzi OpenAI

Python

from openai import OpenAI
import os

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

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

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

interfejs API REST

curl \
  -u token:$DATABRICKS_TOKEN \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<ai-gateway-endpoint>",
    "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://<ai-gateway-url>/openai/v1/responses

Zastąp <ai-gateway-url> adresem URL bramy Unity AI Gateway i <ai-gateway-endpoint> nazwą punktu końcowego Unity AI Gateway.

Interfejs API komunikatów Anthropic

Interfejs API komunikatów antropicznych

Python

import anthropic
import os

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

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

message = client.messages.create(
  model="<ai-gateway-endpoint>",
  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)

interfejs API REST

curl \
  -u token:$DATABRICKS_TOKEN \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<ai-gateway-endpoint>",
    "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://<ai-gateway-url>/anthropic/v1/messages

Zastąp <ai-gateway-url> adresem URL bramy Unity AI i <ai-gateway-endpoint> nazwą punktu końcowego bramy Unity AI.

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://<ai-gateway-url>/gemini",
    headers={
      "Authorization": f"Bearer {DATABRICKS_TOKEN}",
    },
  ),
)

response = client.models.generate_content(
  model="<ai-gateway-endpoint>",
  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)

interfejs API REST

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://<ai-gateway-url>/gemini/v1beta/models/<ai-gateway-endpoint>:generateContent

Zastąp <ai-gateway-url> adresem URL Unity AI Gateway i <ai-gateway-endpoint> nazwą punktu końcowego Unity AI Gateway.

Dalsze kroki

  • Interfejs API nadzorcy (beta) — uruchamianie wieloetatowych przepływów pracy agenta przy użyciu hostowanych narzędzi za pośrednictwem /mlflow/v1/responses