Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln får du lära dig hur du skriver frågeförfrågningar för grundläggande modeller som är optimerade för inbäddningsuppgifter och skickar dem till din modell som betjänar slutpunkten.
Exemplen i den här artikeln gäller för förfrågningar mot grundmodeller som görs tillgängliga genom antingen:
- Foundation Models API:er som benämns som grundmodeller hostade av Databricks.
- Externa modeller som kallas grundmodeller som finns utanför Databricks.
Kravspecifikation
- Se kraven.
- Installera lämpligt paket i klustret baserat på det frågeklientalternativ du väljer.
Frågeexempel
Följande är en embeddings-förfrågan för modellen gte-large-en, som tillhandahålls av Foundation Model APIs där man betalar per token, med hjälp av de olika klientalternativen.
OpenAI-klient
Om du vill använda OpenAI-klienten anger du modellens slutpunktsnamn som model indata.
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"
)
Om du vill köra frågor mot grundmodeller utanför arbetsytan måste du använda OpenAI-klienten direkt, vilket visas nedan. I följande exempel förutsätter vi att du har en Databricks API-token och openai är installerad på din beräkning. Du behöver också din Databricks-arbetsyteinstans för att ansluta OpenAI-klienten till 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
Viktigt!
I följande exempel används den inbyggda SQL-funktionen ai_query. Den här funktionen finns i offentlig förhandsversion och definitionen kan ändras.
SELECT ai_query(
"databricks-gte-large-en",
"Can you explain AI in ten words?"
)
REST-API
Viktigt!
I följande exempel används REST API-parametrar för att köra frågor mot serverdelsslutpunkter som hanterar grundmodeller eller externa modeller. Dessa parametrar finns i offentlig förhandsversion och definitionen kan ändras. Se även 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
SDK för MLflow-distributioner
Viktigt!
I följande exempel används API:et predict() från 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
För att använda en Databricks Foundation Model APIs-modell i LangChain som inbäddningsmodell importerar du klassen DatabricksEmbeddings och anger parametern endpoint enligt följande:
%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?")
Följande är det förväntade begärandeformatet för en inbäddningsmodell. För externa modeller kan du inkludera ytterligare parametrar som är giltiga för en viss provider och slutpunktskonfiguration. Se Ytterligare frågeparametrar.
{
"input": [
"embedding text"
]
}
Följande är det förväntade svarsformatet:
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": []
}
],
"model": "text-embedding-ada-002-v2",
"usage": {
"prompt_tokens": 2,
"total_tokens": 2
}
}
Modeller som stöds
Se Grundläggande modelltyper för inbäddningsmodeller som stöds.
Kontrollera om inbäddningar normaliseras
Använd följande för att kontrollera om inbäddningarna som genereras av din modell normaliseras.
import numpy as np
def is_normalized(vector: list[float], tol=1e-3) -> bool:
magnitude = np.linalg.norm(vector)
return abs(magnitude - 1) < tol