Consultar um agente implantado Mosaic AI
Aprenda como enviar solicitações aos agentes implantados para um endpoint de modelo de abastecimento. O Databricks fornece vários métodos de consulta para atender a diferentes casos de uso e necessidades de integração.
Para saber como implantar agentes, consulte Implantar um agente para aplicativos generativos AI.
Selecione a abordagem de consulta que melhor se adapta ao seu caso de uso:
Método | Principais benefícios |
---|---|
Cliente OpenAI do Databricks (recomendado) | Integração nativa, suporte completo a recursos, capacidades de transmissão |
Cliente de implantações do MLflow | Padrões MLflow existentes, ML pipelinesestabelecidos |
API REST | Compatível com OpenAI, independente de linguagem, funciona com ferramentas existentes |
A Databricks recomenda o Databricks OpenAI Client para novos aplicativos. Escolha a APIREST ao integrar com plataformas que esperam um endpoint compatível com OpenAI.
Cliente OpenAI do Databricks (recomendado)
A Databricks recomenda que você use o Databricks OpenAI Client para consultar um agente implantado. Dependendo da API do seu agente implantado, você usará o cliente de respostas ou de conclusões de chat:
- ResponsesAgent endpoints
- ChatAgent or ChatModel endpoints
Use o exemplo a seguir para agentes criados com a interface ResponsesAgent, que é a abordagem recomendada para criar agentes.
from databricks.sdk import WorkspaceClient
input_msgs = [{"role": "user", "content": "What does Databricks do?"}]
endpoint = "<agent-endpoint-name>" # TODO: update this with your endpoint name
w = WorkspaceClient()
client = w.serving_endpoints.get_open_ai_client()
## Run for non-streaming responses. Invokes `predict`
response = client.responses.create(model=endpoint, input=input_msgs)
print(response)
## Include stream=True for streaming responses. Invokes `predict_stream`
streaming_response = client.responses.create(model=endpoint, input=input_msgs, stream=True)
for chunk in streaming_response:
print(chunk)
Se você quiser passar custom_inputs
ou databricks_options
, você pode adicioná-los com o parâmetro extra_body
:
streaming_response = client.responses.create(
model=endpoint,
input=input_msgs,
stream=True,
extra_body={
"custom_inputs": {"id": 5},
"databricks_options": {"return_trace": True},
},
)
for chunk in streaming_response:
print(chunk)
Use o exemplo a seguir para agentes criados com interfaces legadas ChatAgent ou ChatModel, que ainda são suportadas, mas não são recomendadas para novos agentes.
from databricks.sdk import WorkspaceClient
messages = [{"role": "user", "content": "What does Databricks do?"}]
endpoint = "<agent-endpoint-name>" # TODO: update this with your endpoint name
w = WorkspaceClient()
client = w.serving_endpoints.get_open_ai_client()
## Run for non-streaming responses. Invokes `predict`
response = client.chat.completions.create(model=endpoint, messages=messages)
print(response)
## Include stream=True for streaming responses. Invokes `predict_stream`
streaming_response = client.chat.completions.create(model=endpoint, messages=messages, stream=True)
for chunk in streaming_response:
print(chunk)
Se você quiser passar custom_inputs
ou databricks_options
, você pode adicioná-los com o parâmetro extra_body
:
streaming_response = client.chat.completions.create(
model=endpoint,
messages=messages,
stream=True,
extra_body={
"custom_inputs": {"id": 5},
"databricks_options": {"return_trace": True},
},
)
for chunk in streaming_response:
print(chunk)
Cliente de implantações do MLflow
Use o cliente de implantações MLflow ao trabalhar no fluxo de trabalho e pipeline MLflow existentes. Essa abordagem se integra naturalmente ao acompanhamento e gerenciamento de experimentos MLflow .
Os exemplos a seguir mostram como consultar um agente usando o cliente de implantação do MLflow. Para novos aplicativos, Databricks recomenda usar o Databricks OpenAI Client por seu recurso aprimorado e integração nativa.
Dependendo da API do seu agente implantado, você usará o formato ResponsesAgent ou ChatAgent:
- ResponsesAgent endpoints
- ChatAgent or ChatModel endpoints
Use o exemplo a seguir para agentes criados com a interface ResponsesAgent, que é a abordagem recomendada para criar agentes.
from mlflow.deployments import get_deploy_client
client = get_deploy_client()
input_example = {
"input": [{"role": "user", "content": "What does Databricks do?"}],
## Optional: Include any custom inputs
## "custom_inputs": {"id": 5},
"databricks_options": {"return_trace": True},
}
endpoint = "<agent-endpoint-name>" # TODO: update this with your endpoint name
## Call predict for non-streaming responses
response = client.predict(endpoint=endpoint, inputs=input_example)
## Call predict_stream for streaming responses
streaming_response = client.predict_stream(endpoint=endpoint, inputs=input_example)
Use isso para agentes criados com interfaces legadas ChatAgent ou ChatModel, que ainda são suportadas, mas não são recomendadas para novos agentes.
from mlflow.deployments import get_deploy_client
client = get_deploy_client()
input_example = {
"messages": [{"role": "user", "content": "What does Databricks do?"}],
## Optional: Include any custom inputs
## "custom_inputs": {"id": 5},
"databricks_options": {"return_trace": True},
}
endpoint = "<agent-endpoint-name>" # TODO: update this with your endpoint name
## Call predict for non-streaming responses
response = client.predict(endpoint=endpoint, inputs=input_example)
## Call predict_stream for streaming responses
streaming_response = client.predict_stream(endpoint=endpoint, inputs=input_example)
client.predict()
e client.predict_stream()
chamam as funções do agente que você definiu ao criar o agente. Veja respostas de transmissão.
API REST
A API REST Databricks fornece endpoint para modelos compatíveis com OpenAI. Isso permite que você use agentes do Databricks para atender aplicativos que exigem interfaces OpenAI.
Essa abordagem é ideal para:
- Aplicativos independentes de linguagem que usam solicitações HTTP
- Integração com plataformas de terceiros que esperam APIs compatíveis com OpenAI
- Migrando do OpenAI para o Databricks com alterações mínimas de código
Autentique com a API REST usando tokens OAuth Databricks ou token de acesso pessoal (PAT). Os exemplos abaixo usam tokens OAuth Databricks . Consulte a Documentação de AutenticaçãoDatabricks para mais opções e informações.
- ResponsesAgent endpoints
- ChatAgent or ChatModel endpoints
Use o exemplo a seguir para agentes criados com a interface ResponsesAgent, que é a abordagem recomendada para criar agentes. A chamada da API REST é equivalente a:
- Usando o cliente Databricks OpenAI com
responses.create
. - Enviando uma solicitação POST para a URL do endpoint específico (ex:
https://<host.databricks.com>/serving-endpoints/\<model-name\>/invocations
). Encontre mais detalhes na página do modelo de posto do seu endpoint e na documentação do modelo de posto.
curl --request POST \
--url https://<host.databricks.com\>/serving-endpoints/responses \
--header 'Authorization: Bearer <OAuth token>' \
--header 'content-type: application/json' \
--data '{
"model": "\<model-name\>",
"input": [{ "role": "user", "content": "hi" }],
"stream": true
}'
Se você quiser passar custom_inputs
ou databricks_options
, você pode adicioná-los com o parâmetro extra_body
:
curl --request POST \
--url https://<host.databricks.com\>/serving-endpoints/responses \
--header 'Authorization: Bearer <OAuth token>' \
--header 'content-type: application/json' \
--data '{
"model": "\<model-name\>",
"input": [{ "role": "user", "content": "hi" }],
"stream": true,
"extra_body": {
"custom_inputs": { "id": 5 },
"databricks_options": { "return_trace": true }
}
}'
Use isso para agentes criados com interfaces legadas ChatAgent ou ChatModel, que ainda são suportadas, mas não são recomendadas para novos agentes. Isso é equivalente a:
- Usando o cliente Databricks OpenAI com
chat.completions.create
. - Enviando uma solicitação POST para a URL do endpoint específico (ex:
https://<host.databricks.com>/serving-endpoints/\<model-name\>/invocations
). Encontre mais detalhes na página do modelo de posto do seu endpoint e na documentação do modelo de posto.
curl --request POST \
--url https://<host.databricks.com\>/serving-endpoints/chat/completions \
--header 'Authorization: Bearer <OAuth token>' \
--header 'content-type: application/json' \
--data '{
"model": "\<model-name\>",
"messages": [{ "role": "user", "content": "hi" }],
"stream": true
}'
Se você quiser passar custom_inputs
ou databricks_options
, você pode adicioná-los com o parâmetro extra_body
:
curl --request POST \
--url https://<host.databricks.com\>/serving-endpoints/chat/completions \
--header 'Authorization: Bearer <OAuth token>' \
--header 'content-type: application/json' \
--data '{
"model": "\<model-name\>",
"messages": [{ "role": "user", "content": "hi" }],
"stream": true,
"extra_body": {
"custom_inputs": { "id": 5 },
"databricks_options": { "return_trace": true }
}
}'