Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel leert u hoe u queryaanvragen schrijft voor basismodellen die zijn geoptimaliseerd voor het insluiten van taken en deze naar het eindpunt van uw model kunt verzenden.
De voorbeelden in dit artikel zijn van toepassing op het uitvoeren van query's op basismodellen die beschikbaar worden gesteld met behulp van:
- Basismodellen-API's die worden aangeduid als door Databricks gehoste basismodellen.
- Externe modellen die worden aangeduid als basismodellen die buiten Databricks worden gehost.
Behoeften
- Raadpleeg Vereisten.
- Installeer het juiste pakket op uw cluster op basis van de query-clientoptie die u kiest.
Queryvoorbeelden
Hier volgt een insluitingsaanvraag voor het gte-large-en model dat beschikbaar wordt gesteld door Foundation Model-API's met betalen per token, met behulp van de verschillende clientopties.
OpenAI-client
Als u de OpenAI-client wilt gebruiken, geeft u de eindpuntnaam van het model op als invoer model .
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"
)
Als u een query wilt uitvoeren op basismodellen buiten uw werkruimte, moet u de OpenAI-client rechtstreeks gebruiken, zoals hieronder wordt weergegeven. In het volgende voorbeeld wordt ervan uitgegaan dat u een Databricks-API-token hebt en openai op uw rekenproces hebt geïnstalleerd. U hebt ook uw Databricks-werkruimte-exemplaar nodig om de OpenAI-client te verbinden met 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
Belangrijk
In het volgende voorbeeld wordt de ingebouwde SQL-functie ai_query gebruikt. Deze functie bevindt zich in openbare preview en de definitie kan veranderen.
SELECT ai_query(
"databricks-gte-large-en",
"Can you explain AI in ten words?"
)
REST-API
Belangrijk
In het volgende voorbeeld worden REST API-parameters gebruikt voor het uitvoeren van query's op eindpunten die basismodellen of externe modellen dienen. Deze parameters bevinden zich in openbare preview en de definitie kan veranderen. Zie POST /serving-endpoints/{name}/oproepen.
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
MLflow Deployments SDK
Belangrijk
In het volgende voorbeeld wordt de predict() API van de MLflow Deployments SDK gebruikt.
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
Als u een Databricks Foundation Model-API-model in LangChain wilt gebruiken als een insluitmodel, importeert u de DatabricksEmbeddings klasse en geeft u de endpoint parameter als volgt op:
%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?")
Hier volgt de verwachte aanvraagindeling voor een insluitingsmodel. Voor externe modellen kunt u aanvullende parameters opnemen die geldig zijn voor een bepaalde provider en eindpuntconfiguratie. Zie Aanvullende query-parameters.
{
"input": [
"embedding text"
]
}
Hier volgt de verwachte antwoordindeling:
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": []
}
],
"model": "text-embedding-ada-002-v2",
"usage": {
"prompt_tokens": 2,
"total_tokens": 2
}
}
Ondersteunde modellen
Zie Foundation-modeltypen voor ondersteunde insluitingsmodellen.
Controleren of insluitingen zijn genormaliseerd
Gebruik het volgende om te controleren of de insluitingen die door uw model worden gegenereerd, zijn genormaliseerd.
import numpy as np
def is_normalized(vector: list[float], tol=1e-3) -> bool:
magnitude = np.linalg.norm(vector)
return abs(magnitude - 1) < tol