Interroger un modèle d'intégration
Dans cet article, vous apprendrez à rédiger des query requests pour des modèles de fondation optimisés pour les tâches d'intégration et servis par Unity AI Gateway.
Les exemples de cet article s'appliquent à l'interrogation de modèles de fondation qui sont mis à disposition à l'aide de l'une des méthodes suivantes :
- APIs de modèles de fondation qui sont désignés comme modèles de fondation hébergés par Databricks .
- Les modèles externes qui sont appelés les modèles de fondation hébergés en dehors de Databricks .
Exigences
- Consultez Exigences.
- Installez le package approprié à votre cluster en fonction de l'option de client de requête que vous choisissez.
Exemples de query
Les exemples suivants sont basés sur Unity AI Gateway et les services de modèles. Si vous utilisez des Endpoint de diffusion de modèles au lieu de services de modèles, remplacez le nom du service de modèle par un nom d'Endpoint. Voir modèles de fondation hébergés par Databricks disponibles dans les API Foundation Model pour une liste des modèles de fondation disponibles ainsi que leurs noms de service de modèle et d'Endpoint.
Genie Code (mode Agent) peut le faire pour vous. Essayez cet exemple de prompt :
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.
Voici une demande d'embeddings pour le modèle gte-large-en mis à disposition par les Foundation Model APIs pay-per-token, en utilisant les différentes options client.
- OpenAI client
- SQL
- REST API
- MLflow Deployments SDK
- Databricks Python SDK
- LangChain
Pour utiliser le client OpenAI, spécifiez le nom de l'endpoint de déploiement de modèle comme entrée model.
from databricks_openai import DatabricksOpenAI
client = DatabricksOpenAI()
response = client.embeddings.create(
model="system.ai.gte-large-en",
input="what is databricks"
)
Pour interroger les modèles de fondation en dehors de votre workspace, vous devez utiliser le client OpenAI directement, comme démontré ci-dessous. L'exemple suivant suppose que vous disposez d'un jeton d'API Databricks et que openai est installé sur votre compute. Vous avez également besoin de votre instance de Workspace Databricks pour connecter le client OpenAI à 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"
)
L'exemple suivant utilise la fonction SQL intégrée, ai_query. Cette fonction est en prévisualisation publique et la définition pourrait changer.
SELECT ai_query(
"system.ai.gte-large-en",
"Can you explain AI in ten words?"
)
L'exemple suivant utilise des parameter REST API pour interroger des Endpoint de service qui servent des modèles de fondation ou des modèles externes. Ces paramètres sont en préversion publique et la définition pourrait changer. Consultez 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
L'exemple suivant utilise l'API predict() du SDK de déploiement MLflow.
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="system.ai.gte-large-en",
inputs={
"input": "Here is some text to embed"
}
)
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)
Pour utiliser un modèle d'API de modèle de fondation Databricks dans LangChain comme modèle d'intégration, importez la classe DatabricksEmbeddings et spécifiez le paramètre endpoint comme suit :
%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?")
Voici le format de requête attendu pour un modèle d'intégrations. Pour les modèles externes, vous pouvez inclure des paramètres supplémentaires valides pour un fournisseur et une configuration d'endpoint donnés. Voir Paramètres de query supplémentaires.
{
"input": [
"embedding text"
]
}
Le format de réponse attendu est le suivant :
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": []
}
],
"model": "text-embedding-ada-002-v2",
"usage": {
"prompt_tokens": 2,
"total_tokens": 2
}
}
Modèles pris en charge
Consultez les types de modèles de fondation pour les modèles d'intégration pris en charge.
Vérifier si les intégrations sont normalisées
Utilisez les éléments suivants pour vérifier si les intégrations générées par votre modèle sont normalisées.
import numpy as np
def is_normalized(vector: list[float], tol=1e-3) -> bool:
magnitude = np.linalg.norm(vector)
return abs(magnitude - 1) < tol