Consulte um modelo de incorporação
Experimente a nova Unity AI Gateway Beta
Uma nova experiência do Unity AI Gateway está disponível em Beta. O novo Unity AI Gateway é o plano de controle corporativo para governar o endpoint LLM e os agentes de codificação com recurso aprimorado. Consulte Unity AI Gateway.
Neste artigo, você aprenderá como escrever solicitações de query para modelos base que são otimizados para tarefas de embeddings e servidos pelo Unity AI Gateway.
Os exemplos neste artigo se aplicam à consulta de modelos básicos disponibilizados usando:
- APIs de modelos básicos, referidos como modelos básicos hospedados pela Databricks.
- Modelos externos referidos como modelos básicos hospedados fora do Databricks .
Requisitos
- Consulte os requisitos.
- Instale o pacote apropriado para o seu clustering com base na opção de cliente de consulta escolhida.
Exemplos de consultas
Os exemplos a seguir são baseados em Unity AI Gateway e serviços de modelo. Se você usa endpoints de servindo modelo em vez de serviços de modelo, substitua o nome do serviço de modelo pelo nome de um endpoint. Consulte modelos de base hospedados pelo Databricks disponíveis nas APIs do Foundation Model para obter uma lista de modelos de base disponíveis e seus nomes de serviço de modelo e endpoint.
Genie Code (modo agente) pode fazer isso por você. Experimente este prompt de exemplo:
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.
A seguir, apresentamos uma solicitação de incorporação para o modelo gte-large-en disponibilizado pela Foundation Model APIs pay-per-tokens, utilizando as diferentes opções de cliente.
- OpenAI client
- SQL
- REST API
- MLflow Deployments SDK
- Databricks Python SDK
- LangChain
Para utilizar o cliente OpenAI, especifique o nome do modelo em execução endpoint como entrada model.
from databricks_openai import DatabricksOpenAI
client = DatabricksOpenAI()
response = client.embeddings.create(
model="system.ai.gte-large-en",
input="what is databricks"
)
Para consultar modelos básicos fora do seu workspace, é necessário utilizar o cliente OpenAI diretamente, conforme demonstrado abaixo. O exemplo a seguir pressupõe que você possui os tokens Databricks e API e que o openai está instalado em compute. É necessário também que a instância Databricks workspace esteja conectada ao cliente OpenAI em 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"
)
O exemplo a seguir utiliza a função SQL integrada, ai_query. Essa função está na Pré-visualização Pública e a definição pode mudar.
SELECT ai_query(
"system.ai.gte-large-en",
"Can you explain AI in ten words?"
)
O exemplo a seguir utiliza os parâmetros REST e API para consultar o endpoint de serviço que atende modelos básicos ou modelos externos. Esses parâmetros estão na visualização pública e a definição pode mudar. Consulte POST /serving-endpoint/{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
O exemplo a seguir utiliza a API predict() do SDK MLflow Deployments.
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)
Para usar um modelo das APIs do Databricks Foundation Model no LangChain como um modelo de incorporação, importe a classe DatabricksEmbeddings e especifique o parâmetro endpoint da seguinte forma:
%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?")
A seguir está o formato de solicitação esperado para um modelo de incorporação. Para modelos externos, é possível incluir parâmetros adicionais válidos para um determinado provedor e uma configuração d endpoint. Consulte Parâmetros de consulta adicionais.
{
"input": [
"embedding text"
]
}
Veja a seguir o formato de resposta esperado:
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": []
}
],
"model": "text-embedding-ada-002-v2",
"usage": {
"prompt_tokens": 2,
"total_tokens": 2
}
}
Modelos compatíveis
Consulte os tipos de modelo Foundation para ver os modelos de incorporação compatíveis.
Verifique se as incorporações estão normalizadas
Use o seguinte para verificar se as incorporações geradas pelo seu modelo estão normalizadas.
import numpy as np
def is_normalized(vector: list[float], tol=1e-3) -> bool:
magnitude = np.linalg.norm(vector)
return abs(magnitude - 1) < tol