Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
- Interfejsy API dla modeli bazowych, które są określane jako modele bazowe hostowane w usłudze Databricks.
- Modele zewnętrzne nazywane modelami podstawowymi hostowanymi poza usługą Databricks.
Wymagania
- Zobacz Wymagania.
- Zainstaluj odpowiedni pakiet w klastrze na podstawie wybranej opcji klienta zapytań .
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