Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
Uma nova experiência Unity AI Gateway está disponível em versão Beta. O novo Unity AI Gateway é o plano de controlo empresarial para gerir endpoints LLM e agentes de codificação com funcionalidades melhoradas. Veja a governação da IA com o Unity AI Gateway.
Neste artigo, aprende como escrever pedidos de consulta para modelos de fundação otimizados para tarefas de embeddings e servidos pelo Unity AI Gateway.
Os exemplos neste artigo aplicam-se à consulta de modelos básicos que são disponibilizados usando:
- APIs de modelos de base que são conhecidas como modelos de base hospedados por Databricks.
- Modelos externos que são referidos como modelos de base hospedados fora do Databricks.
Requerimentos
- Consulte Requisitos.
- Instale o pacote apropriado no cluster com base na opção de cliente de consulta escolhida.
Exemplos de consulta
Note
Os exemplos seguintes baseiam-se no Unity AI Gateway e nos serviços de modelo. Se utilizar endpoints de disponibilização de modelos em vez de serviços de modelo, substitua o nome do serviço de modelo pelo nome de um endpoint. Consulte os modelos fundacionais alojados pela Databricks disponíveis nas APIs de Modelos Fundacionais para obter uma lista dos modelos fundacionais disponíveis e os nomes do serviço de modelo e do endpoint.
Sugestão
O Código Génio (modo Agente) pode fazer isto por ti. 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 está uma solicitação de incorporação para o gte-large-en modelo disponibilizado pelas APIs do Foundation Model pay-per-token, usando as diferentes opções do cliente.
Cliente OpenAI
Para usar o cliente OpenAI, especifique o nome do ponto de extremidade do modelo 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 de base fora do seu espaço de trabalho, você deve usar o cliente OpenAI diretamente, conforme demonstrado abaixo. O exemplo a seguir pressupõe que tens um token de API Databricks e o openai instalado no teu ambiente de computação. Você também precisa da instância do espaço de trabalho Databricks para conectar o cliente OpenAI ao 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"
)
SQL
Importante
O exemplo a seguir usa a função SQL interna, ai_query. Esta função está em 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?"
)
API REST
Importante
O exemplo a seguir usa parâmetros de API REST para consultar pontos de extremidade de serviço que servem modelos de base ou modelos externos. Esses parâmetros estão em Visualização pública e a definição pode mudar. Consulte 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
SDK de desenvolvimentos MLflow
Importante
O exemplo a seguir usa a predict() API do 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="system.ai.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="system.ai.gte-large-en",
input="Embed this sentence!"
)
print(response.data[0].embedding)
LangChain
Para usar um modelo de APIs do Databricks Foundation Model em LangChain como modelo de embedding, importe a DatabricksEmbeddings classe e especifique o endpoint parâmetro 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, você pode incluir parâmetros adicionais que são válidos para um determinado provedor e configuração de ponto final. Consulte Parâmetros de consulta adicionais.
{
"input": [
"embedding text"
]
}
O seguinte é 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 suportados
Consulte Tipos de modelo Foundation para modelos de incorporação suportados.
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