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() de databricks.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

{catalog_name}.{schema_name}.{model_name}_payload

Payloads JSON brutos

Logs de solicitação de payload

{catalog_name}.{schema_name}.{model_name}_payload_request_logs

Solicitação e respostas formatadas, rastreamentos do MLflow

Logs de avaliação de payload

{catalog_name}.{schema_name}.{model_name}_payload_assessment_logs

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

client_request_id

String

ID da solicitação do cliente, geralmente null.

databricks_request_id

String

ID da solicitação do Databricks.

date

Data

Data da solicitação.

timestamp_ms

Long

Registro de data e hora em milissegundos.

timestamp

Carimbo de data/hora

Registro de data e hora da solicitação.

status_code

Inteiro

Código de status de endpoint.

execution_time_ms

Long

Total de milissegundos de execução.

conversation_id

String

ID da conversa extraído da solicitação logs.

request

String

A última consulta do usuário na conversa do usuário. Isso foi extraído da solicitação do RAG.

response

String

A última resposta ao usuário. Isso foi extraído da solicitação do RAG.

request_raw

String

representação de strings da solicitação.

response_raw

String

representação em strings da resposta.

trace

String

representação de strings do traço extraído do databricks_options da estrutura de resposta.

sampling_fraction

double

Fração de amostragem.

request_metadata

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.

schema_version

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

request_id

String

ID da solicitação do Databricks.

step_id

String

Derivado da avaliação de recuperação.

source

struct

Um campo estruturado que contém as informações sobre quem criou a avaliação.

timestamp

Carimbo de data/hora

Registro de data e hora da solicitação.

text_assessment

struct

Um campo estruturado que contém os dados de qualquer feedback sobre as respostas do agente do aplicativo de avaliação.

retrieval_assessment

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