Implantar um agente para aplicativo de IA generativa
Prévia
Esse recurso está em Prévia Pública.
Este artigo mostra como implantar seu agente utilizando diretamente o serviço de modelo ou utilizando a API deploy()
da databricks.agents
.
Requisitos
Antes de implantar o agente, você deve registrá-lo no Unity Catalog. Consulte Criar e registrar agentes de IA. Quando você registra seu agente no Unity Catalog, ele é empacotado na forma de um modelo.
MLflow 2.13.1 ou superior para implantar agentes utilizando a API
deploy()
dedatabricks.agents
.
Implemente um agente utilizando o serviço de modelo
Importante
Ao implantar um agente utilizando esse método, você não pode usar o aplicativo de revisão para coletar e enviar comentários sobre seu agente.
Para cargas de trabalho de produção, você pode implantar seu agente para disponibilizá-lo como uma API REST que pode ser integrada ao seu aplicativo voltado para o usuário. Você pode usar a API REST do serviço do modelo para criar um endpoint de CPU do serviço do modelo para implantar seu agente pronto para produção.
Implante um agente com deploy()
Utilize a API deploy()
para implantar seus agentes para desenvolver seus agentes ou para implantar seus agentes prontos para produção. Somente agentes registrados no Unity Catalog podem ser implantados com deploy()
.
A API deploy()
faz o seguinte:
Cria endpoint de serviço do modelo de CPU para o seu agente que podem ser integrados ao seu aplicativo voltado para o usuário. Esses endpoints são criados com o serviço do modelo, para você poder invocá-los para obter respostas do agente e coletar feedback da interface do usuário do aplicativo de avaliação.
As credenciais de autenticação são passadas automaticamente para todos os recursos gerenciados pelo Databricks exigidos pelo agente.
Se você tiver dependências de recursos não gerenciadas pelo Databricks, por exemplo, com o Pinecone, poderá passar variáveis de ambiente com segredos para a API
deploy()
. Consulte Configurar o acesso aos recursos de endpoints de serviço de modelo.
Habilita o aplicativo de avaliação para seu agente. O aplicativo de avaliação possibilita que as partes interessadas conversem com o agente e deem feedback com a interface do usuário do aplicativo de avaliação.
Registra todas as solicitações no aplicativo de avaliação ou na REST API, como solicitações e respostas de consulta e dados de rastreamento intermediários em uma tabela de inferência do MLflow Tracing.
Observação
As implementações podem levar até 15 minutos para serem concluídas. Os payloads de JSON brutos levam de 10 a 30 minutos para chegar e os registros formatados são processados a partir dos payloads brutos a cada hora.
from databricks.agents import deploy
from mlflow.utils import databricks_utils as du
deployment = deploy(model_fqn, uc_model_info.version)
# query_endpoint is the URL that can be used to make queries to the app
deployment.query_endpoint
# Copy deployment.rag_app_url to browser and start interacting with your RAG application.
deployment.rag_app_url
Tabelas de inferência aprimoradas por agentes
O deploy()
cria três tabelas de inferência para cada implantação para registrar solicitações e respostas de e para o ponto de extremidade de serviço do agente.
Tabela |
Exemplo de nome da tabela do Unity Catalog |
O que há em cada tabela |
---|---|---|
Payload |
|
Payloads JSON brutos |
Logs de solicitação de payload |
|
Solicitação e respostas formatadas, rastreamentos do MLflow |
Logs de avaliação de payload |
|
Feedback formatado, conforme apresentado no aplicativo de avaliação, para cada solicitação |
Tabelas de registro de solicitações e registros de avaliação
Duas tabelas adicionais são geradas automaticamente a partir das tabelas de inferência de payload acima: logs de solicitação e logs de avaliação. Os usuários podem esperar que os dados estejam nessas tabelas dentro de uma hora após a interação com a implantação.
Veja a seguir o esquema da tabela de logs de solicitação.
Nome da coluna |
Tipo |
Descrição |
---|---|---|
|
String |
ID da solicitação do cliente, geralmente |
|
String |
ID da solicitação do Databricks. |
|
Data |
Data da solicitação. |
|
Long |
Registro de data e hora em milissegundos. |
|
Carimbo de data/hora |
Registro de data e hora da solicitação. |
|
Inteiro |
Código de status de endpoint. |
|
Long |
Total de milissegundos de execução. |
|
String |
ID da conversa extraído da solicitação logs. |
|
String |
A última consulta do usuário na conversa do usuário. Isso foi extraído da solicitação do RAG. |
|
String |
A última resposta ao usuário. Isso foi extraído da solicitação do RAG. |
|
String |
representação de strings da solicitação. |
|
String |
representação em strings da resposta. |
|
String |
representação de strings do traço extraído do |
|
double |
Fração de amostragem. |
|
Map[strings, strings] |
Um mapa de metadados relacionados ao modelo de serviço endpoint associado à solicitação. Esse mapa contém o nome endpoint, o nome do modelo e a versão do modelo usados para o seu endpoint. |
|
String |
Número inteiro para a versão do esquema. |
A seguir, o esquema dos log de avaliação.
Nome da coluna |
Tipo |
Descrição |
---|---|---|
|
String |
ID da solicitação do Databricks. |
|
String |
Derivado da avaliação de recuperação. |
|
struct |
Um campo estruturado que contém as informações sobre quem criou a avaliação. |
|
Carimbo de data/hora |
Registro de data e hora da solicitação. |
|
struct |
Um campo estruturado que contém os dados de qualquer feedback sobre as respostas do agente do aplicativo de avaliação. |
|
struct |
Um campo struct que contém os dados para qualquer feedback sobre os documentos recuperados para uma resposta. |
Receba aplicativos implantados
A seguir, mostramos como fazer seus agentes serem implantados.
from databricks.agents import list_deployments, get_deployments
# Get the deployment for specific model_fqn and version
deployment = get_deployments(model_name=model_fqn, model_version=model_version.version)
deployments = list_deployments()
# Print all the current deployments
deployments