Consulte um modelo de bate-papo
Neste artigo, você aprenderá a escrever solicitações de consulta para modelos básicos otimizados para tarefas de chat e enviá-las ao seu modelo de serviço endpoint.
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
Veja a seguir exemplos de consulta de um modelo de bate-papo disponibilizado usando modelos externos e as diferentes opções de consulta do cliente.
- OpenAI client
- REST API
- MLflow Deployments SDK
- Databricks Python SDK
Para utilizar o cliente OpenAI, especifique o nome do modelo em execução endpoint como entrada model
. O exemplo a seguir pressupõe que você possui um tokenDatabricks API e openai
instalado em seu compute. É necessário também que a instânciaDatabricks 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/serving-endpoints"
)
response = client.chat.completions.create(
model="bedrock-chat-completions-endpoint",
messages=[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "What is a mixture of experts model?",
}
],
max_tokens=256
)
O exemplo a seguir utiliza os parâmetros REST e API para consultar o endpoint de serviço que atende 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 '{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": " What is a mixture of experts model?"
}
]
}' \
https://<workspace_host>.databricks.com/serving-endpoints/<your-external-model-endpoint>/invocations \
O exemplo a seguir utiliza a API predict()
do SDK MLflow Deployments.
import mlflow.deployments
# Only required when running this example outside of a Databricks Notebook
export DATABRICKS_HOST="https://<workspace_host>.databricks.com"
export DATABRICKS_TOKEN="dapi-your-databricks-token"
client = mlflow.deployments.get_deploy_client("databricks")
chat_response = client.predict(
endpoint="bedrock-chat-completions-endpoint",
inputs={
"messages": [
{
"role": "user",
"content": "Hello!"
},
{
"role": "assistant",
"content": "Hello! How can I assist you today?"
},
{
"role": "user",
"content": "What is a mixture of experts model??"
}
],
"temperature": 0.1,
"max_tokens": 20
}
)
Este código deve ser executado em um Notebook em seu workspace. Consulte Utilizar o Databricks SDK para obter Python a partir de um Notebook Databricks.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ChatMessage, ChatMessageRole
w = WorkspaceClient()
response = w.serving_endpoints.query(
name="bedrock-chat-completions-endpoint",
messages=[
ChatMessage(
role=ChatMessageRole.SYSTEM, content="You are a helpful assistant."
),
ChatMessage(
role=ChatMessageRole.USER, content="What is a mixture of experts model?"
),
],
max_tokens=128,
)
print(f"RESPONSE:\n{response.choices[0].message.content}")
Como exemplo, segue abaixo o formato de solicitação esperado para um modelo de chat ao utilizar a API REST. 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.
{
"messages": [
{
"role": "user",
"content": "What is a mixture of experts model?"
}
],
"max_tokens": 100,
"temperature": 0.1
}
A seguir, apresentamos o formato esperado para uma resposta a uma solicitação feita usando a API REST:
{
"model": "bedrock-chat-completions-endpoint",
"choices": [
{
"message": {},
"index": 0,
"finish_reason": null
}
],
"usage": {
"prompt_tokens": 7,
"completion_tokens": 74,
"total_tokens": 81
},
"object": "chat.completion",
"id": null,
"created": 1698824353
}
Modelos compatíveis
Consulte os tipos de modelo do Foundation para ver os modelos de bate-papo compatíveis.