Dotazování modelu vkládání

V tomto článku se dozvíte, jak psát dotazovací požadavky pro základové modely optimalizované pro úlohy vytváření embeddingů, které jsou poskytovány prostřednictvím Unity Gateway.

Příklady v tomto článku platí pro dotazování základních modelů, které jsou k dispozici pomocí těchto možností:

Požadavky

Příklady dotazů

Note

Následující příklady jsou založeny na Unity Gateway a modelových službách. Pokud místo služeb modelu používáte koncové body obsluhující modely, nahraďte název služby modelu názvem koncového bodu. Viz podrobný seznam modelů podporovaných APIs Databricks Foundation Model pro seznam dostupných modelových modelů a jejich názvy služeb a koncových zařízení.

Tip

Genie Code (režim agenta) to může udělat za vás. Vyzkoušejte tento příklad výzvy:

Show query examples that send embedding requests to the databricks-gte-large-en model using the DatabricksOpenAI helper, the plain OpenAI client, and a curl REST API call.

Následuje žádost o embedding pro model gte-large-en, kterou zpřístupňují rozhraní API pro základní modely s průběžnými platbami za token, s použitím různých klientských možností.

Klient OpenAI

Pokud chcete použít klienta OpenAI, zadejte jako vstup model obsluhující název koncového model bodu.

from databricks_openai import DatabricksOpenAI

client = DatabricksOpenAI()

response = client.embeddings.create(
  model="system.ai.gte-large-en",
  input="what is databricks"
)

Pokud chcete dotazovat základní modely mimo pracovní prostor, musíte přímo použít klienta OpenAI, jak je znázorněno níže. Následující příklad předpokládá, že máte token rozhraní API Databricks a openai na vašem výpočetním prostředí nainstalovaný. K připojení klienta OpenAI k instanci pracovního prostoru Databricks potřebujete také instanci 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.embeddings.create(
  model="system.ai.gte-large-en",
  input="what is databricks"
)

SQL

Důležité

Následující příklad používá integrovanou funkci SQL ai_query. Tato funkce je ve verzi Public Preview a definice se může změnit.


SELECT ai_query(
    "system.ai.gte-large-en",
    "Can you explain AI in ten words?"
  )

REST API

Důležité

Následující příklad používá parametry rozhraní REST API k dotazování obsluhujících koncové body, které obsluhují základní modely nebo externí modely. Tyto parametry jsou ve verzi Public Preview a definice se může změnit. Viz POST /serving-endpoints/{name}/invocations.


curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d  '{
  "model": "system.ai.gte-large-en",
  "input": "Embed this sentence!"
}' \
https://<workspace_host>.databricks.com/ai-gateway/mlflow/v1/embeddings

Sada SDK pro nasazení MLflow

Důležité

Následující příklad používá predict() API z MLflow Deployments SDK.


import os
import mlflow.deployments

os.environ["DATABRICKS_HOST"] = "https://<workspace_host>.databricks.com"
os.environ["DATABRICKS_TOKEN"] = "dapi-your-databricks-token"

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

embeddings_response = client.predict(
    endpoint="system.ai.gte-large-en",
    inputs={
        "input": "Here is some text to embed"
    }
)

Databricks Python SDK


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

w = WorkspaceClient()
response = w.serving_endpoints.query(
    name="system.ai.gte-large-en",
    input="Embed this sentence!"
)
print(response.data[0].embedding)

LangChain

Chcete-li v LangChain použít model Databricks Foundation Model APIs jako model pro embeddingy, naimportujte třídu DatabricksEmbeddings a zadejte parametr endpoint následovně:

%pip install databricks-langchain
from databricks_langchain import DatabricksEmbeddings

embeddings = DatabricksEmbeddings(endpoint="system.ai.gte-large-en")
embeddings.embed_query("Can you explain AI in ten words?")

Následuje očekávaný formát požadavku pro model vkládání. U externích modelů můžete zahrnout další parametry platné pro daného poskytovatele a konfiguraci koncového bodu. Viz Další parametry dotazu.

{
  "input": ["embedding text"]
}

Následuje očekávaný formát odpovědi:

{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "index": 0,
      "embedding": []
    }
  ],
  "model": "text-embedding-ada-002-v2",
  "usage": {
    "prompt_tokens": 2,
    "total_tokens": 2
  }
}

Podporované modely

Podporované modely vkládání najdete v tématu Základní typy modelů .

Zkontrolujte, jestli jsou vkládání normalizované.

Pomocí následujícího příkazu zkontrolujte, jestli jsou vložené vygenerované modelem normalizované.

import numpy as np


def is_normalized(vector: list[float], tol=1e-3) -> bool:
    magnitude = np.linalg.norm(vector)
    return abs(magnitude - 1) < tol

Dodatečné zdroje