Udostępnij przez


Wykonywanie zapytań względem modelu osadzania

W tym artykule dowiesz się, jak pisać żądania zapytań dla modeli podstawowych zoptymalizowanych pod kątem osadzania zadań i wysyłać je do punktu końcowego obsługującego model.

Przykłady w tym artykule dotyczą wykonywania zapytań dotyczących modeli podstawowych, które są udostępniane przy użyciu jednego z następujących elementów:

Wymagania

Przykłady zapytań

Poniżej przedstawiono żądanie osadzania dla modelu udostępnionego gte-large-en przez interfejsy API modelu Foundation Model pay-per-token przy użyciu różnych opcji klienta.

Klient OpenAI

Aby użyć klienta OpenAI, określ model obsługujący nazwę punktu końcowego model jako dane wejściowe.


from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
openai_client = w.serving_endpoints.get_open_ai_client()

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

Aby wykonywać zapytania dotyczące modeli podstawowych poza obszarem roboczym, należy użyć klienta OpenAI bezpośrednio, jak pokazano poniżej. W poniższym przykładzie przyjęto założenie, że masz token interfejsu API usługi Databricks i openai zainstalowany na swojej maszynie obliczeniowej. Aby połączyć klienta OpenAI z usługą Databricks, potrzebujesz także instancji obszaru roboczego 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/serving-endpoints"
)

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

SQL

Ważne

W poniższym przykładzie użyto wbudowanej funkcji SQL, ai_query. Ta funkcja jest dostępna w publicznej wersji zapoznawczej , a definicja może ulec zmianie.


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

interfejs API REST

Ważne

W poniższym przykładzie użyto parametrów interfejsu API REST do wykonywania zapytań dotyczących punktów końcowych obsługujących modele podstawowe lub modele zewnętrzne. Te parametry są dostępne w publicznej wersji zapoznawczej , a definicja może ulec zmianie. Zobacz POST /serving-endpoints/{name}/invocations.


curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d  '{ "input": "Embed this sentence!"}' \
https://<workspace_host>.databricks.com/serving-endpoints/databricks-gte-large-en/invocations

Zestaw SDK wdrożeń MLflow

Ważne

W poniższym przykładzie użyto predict() API z MLflow Deployments SDK.


import mlflow.deployments

export DATABRICKS_HOST="https://<workspace_host>.databricks.com"
export DATABRICKS_TOKEN="dapi-your-databricks-token"

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

embeddings_response = client.predict(
    endpoint="databricks-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="databricks-gte-large-en",
    input="Embed this sentence!"
)
print(response.data[0].embedding)

LangChain

Aby użyć modelu API Databricks Foundation w LangChain jako modelu osadzania, zaimportuj klasę i określ parametr DatabricksEmbeddings w następujący sposób:

%pip install databricks-langchain
from databricks_langchain import DatabricksEmbeddings

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

Poniżej przedstawiono oczekiwany format żądania dla modelu osadzania. W przypadku modeli zewnętrznych można uwzględnić dodatkowe parametry, które są prawidłowe dla danego dostawcy i konfiguracji punktu końcowego. Zobacz Dodatkowe parametry zapytania.


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

Poniżej przedstawiono oczekiwany format odpowiedzi:

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

Obsługiwane modele

Zobacz Typy modeli bazowych dla modeli osadzania, które są obsługiwane.

Sprawdzanie, czy osadzanie jest znormalizowane

Użyj poniższej instrukcji, aby sprawdzić, czy osadzanie wygenerowane przez model jest znormalizowane.


  import numpy as np

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

Dodatkowe zasoby