Encontrar o lugar certo para colocar um anúncio é um grande desafio, já que a inserção de conteúdo contextual tradicional, baseada em palavras-chave, muitas vezes deixa a desejar, perdendo nuances como sarcasmo ou conexões não óbvias. Este blog mostra como um AI Agent criado na Databricks supera essas limitações para conseguir uma inserção de conteúdo altamente sutil e profundamente contextual.
Vamos explorar como isso pode ser feito no contexto de roteiros de filmes e televisão para entender as cenas e os momentos específicos em que o conteúdo terá o maior impacto. Embora nos concentremos neste exemplo específico, o conceito pode ser generalizado para um catálogo mais amplo de dados de mídia, incluindo roteiros de TV, roteiros de áudio (por exemplo, podcasts), artigos de notícias ou blogs. Como alternativa, poderíamos reposicionar isso para publicidade programática, em que os dados de entrada incluiriam o corpus do conteúdo do anúncio e seus metadados e posicionamento associados, e o agent geraria as tags apropriadas para usar na inserção otimizada via inserção programática direta ou baseada em ad server.
Esta solução aproveita os avanços mais recentes do Databricks em ferramentas de AI Agent, incluindo Agent Framework, Vector Search, Unity Catalog e Agent Evaluation com MLflow 3.0. O diagrama abaixo fornece uma visão geral de alto nível da arquitetura.
Do ponto de vista prático, esta solução permite que os vendedores de anúncios perguntem em linguagem natural o melhor lugar dentro de um corpus de conteúdo para inserir o conteúdo do anúncio com base em uma descrição. Então, neste exemplo, dado que nosso conjunto de dados contém um grande volume de transcrições de filmes, se perguntássemos ao agent: “Onde posso colocar um anúncio de comida para animais de estimação? O anúncio é uma imagem de um beagle comendo em uma tigela”, esperaríamos que nosso agent retornasse cenas específicas de filmes de cães conhecidos, por exemplo, Air Bud - O Cão Amigo ou Marley & Eu.
Abaixo está um exemplo real do nosso agente:
Agora que temos uma compreensão geral da solução, vamos nos aprofundar em como preparamos os dados para criar o agente.
Pré-processamento de dados de filmes para inserção contextual
Ao adicionar uma ferramenta de recuperação a um agente (uma técnica chamada Geração Aumentada por Recuperação, ou RAG), o pipeline de processamento de dados é uma etapa crítica para alcançar alta qualidade. Neste exemplo, seguimos as melhores práticas para construir um pipeline de dados não estruturados robusto, que geralmente inclui quatro etapas:
O conjunto de dados que usamos para esta solução inclui 1.200 roteiros de filmes completos, que armazenamos como arquivos de texto individuais. Para inserir o conteúdo do anúncio da maneira mais relevante contextualmente, nossa estratégia de pré-processamento é recomendar a cena específica de um filme, em vez do filme inteiro.
Primeiro, fazemos a análise (parsing) das transcrições brutas para dividir cada arquivo de roteiro em cenas individuais, usando o formato padrão de escrita de roteiros como nossos delimitadores de cena (por exemplo, “INT”, “EXT”, etc.). Ao fazer isso, podemos extrair metadados relevantes para enriquecer o conjunto de dados e armazená-los junto com a transcrição bruta em uma tabela Delta (por exemplo, título, número da cena, local da cena).
Em seguida, implementamos uma estratégia de "chunking" (divisão em blocos) de tamanho fixo em nossos dados de cena limpos, enquanto filtramos cenas mais curtas, já que recuperá-las não agregaria muito valor neste caso de uso.
Observação: Embora tenhamos considerado inicialmente chunks de tamanho fixo (o que provavelmente teria sido melhor do que roteiros completos), a divisão nos delimitadores de cena ofereceu um aumento significativo na relevância de nossas respostas.
Em seguida, carregamos os dados no nível da cena em um Índice do Vector Search, aproveitando o Delta-Sync integrado e os embeddings gerenciados pelo Databricks para facilitar a implantação e o uso. Isso significa que, se nosso banco de dados de roteiros for atualizado, nosso índice do Vector Search correspondente também será atualizado para incorporar a atualização dos dados. A imagem abaixo demonstra um exemplo de um único filme (10 Coisas que Eu Odeio em Você) dividido por cenas. O uso da busca de vetores (vector search) permite que nosso agente encontre cenas que são semanticamente semelhantes à descrição do conteúdo do anúncio, mesmo que não haja correspondências exatas de palavras-chave.
Criar o índice do Vector Search de alta disponibilidade e governado é simples, exigindo apenas algumas linhas de código para definir o endpoint, a tabela de origem, o modelo de embedding e a localização no Unity Catalog. Veja o código abaixo para a criação do índice neste exemplo.
Agora que nossos dados estão em ordem, podemos prosseguir com a criação do nosso agente de posicionamento de conteúdo.
Um princípio central da IA agentiva no Databricks é equipar um LLM com as ferramentas necessárias para raciocinar com eficácia sobre dados corporativos, desbloqueando a inteligência de dados. Em vez de pedir ao LLM para executar um processo inteiro de ponta a ponta, delegamos certas tarefas a ferramentas e funções, tornando o LLM um orquestrador de processos inteligente. Isso nos permite usá-lo exclusivamente para seus pontos fortes: entender a intenção semântica do usuário e raciocinar sobre como resolver um problema.
Para nossa aplicação, usamos um índice de busca vetorial como um meio de procurar eficientemente por cenas relevantes com base na solicitação de um usuário. Embora a própria base de conhecimento de um LLM pudesse teoricamente ser usada para recuperar cenas relevantes, usar a abordagem de índice do Vector Search é mais prático, eficiente e seguro, pois garante a recuperação de nossos dados corporativos governados no Unity Catalog.
Observe que o Agente usa os comentários na definição da função para identificar quando e como chamar a função em consultas do usuário. O código abaixo demonstra como encapsular um índice do Vector Search em uma função SQL padrão do Unity Catalog, tornando-o uma ferramenta acessível para o processo de raciocínio do agente.
Agora que temos um agent definido, qual é o próximo passo?
Um dos maiores obstáculos que impede as equipes de colocar aplicações de agentes em produção é a capacidade de medir a qualidade e a eficácia do agente. Avaliações subjetivas baseadas em 'impressões' não são aceitáveis em uma implantação de produção. As equipes precisam de uma forma quantitativa para garantir que sua aplicação esteja funcionando como esperado e para orientar melhorias iterativas. Todas essas perguntas tiram o sono das equipes de produto e desenvolvimento. Apresentando o Agent Evaluation com MLflow 3.0 do Databricks. O MLflow 3.0 oferece um conjunto robusto de ferramentas, incluindo rastreamento de modelos, avaliação, monitoramento e um registro de prompts para gerenciar o ciclo de vida completo de desenvolvimento do agente.
A funcionalidade de avaliação nos permite usar juízes LLM integrados para medir a qualidade em relação a métricas predefinidas. No entanto, para cenários especializados como o nosso, uma avaliação personalizada geralmente é necessária. O Databricks oferece suporte a vários níveis de personalização, desde a definição de “diretrizes” em linguagem natural, em que um usuário fornece critérios de avaliação em linguagem natural e o Databricks gerencia a infraestrutura de avaliação, avaliadores baseados em prompt, em que o usuário fornece um prompt e um critério de avaliação personalizado, ou pontuadores personalizados, que podem ser heurísticas simples ou avaliadores de LLM completamente definidos pelo usuário.
Neste caso de uso, usamos tanto uma diretriz personalizada para o formato da resposta quanto um avaliador personalizado baseado em prompt para avaliar a relevância da cena, oferecendo um poderoso equilíbrio entre controle e escalabilidade.
Outro desafio comum na Avaliação de Agentes é não ter uma "ground truth" (verdade de referência) de solicitações de usuários para usar como base de avaliação ao criar seu agente. No nosso caso, não temos um conjunto robusto de possíveis solicitações de clientes, então também precisamos gerar dados sintéticos para medir a eficácia do agente que criamos. Usamos a função integrada `generate_evals_df` para realizar essa tarefa, dando instruções para gerar exemplos que esperamos que correspondam às solicitações dos nossos clientes. Usamos esses dados gerados sinteticamente como entrada para um trabalho de avaliação para inicializar ("bootstrap") um conjunto de dados e permitir uma compreensão quantitativa clara do desempenho do nosso agente antes de entregar aos clientes.
Com o dataset pronto, podemos executar um job de avaliação para determinar a qualidade do nosso agent em termos quantitativos. Neste caso, usamos uma combinação de judges integrados (Relevância e Segurança), uma diretriz personalizada que avalia se o agent retornou os dados no formato correto e um judge personalizado baseado em prompt que avalia a qualidade da cena retornada em relação à consulta do usuário em uma escala de 1 a 5. Para a nossa sorte, nosso agent parece ter um ótimo desempenho com base no feedback do nosso judge de LLM!
Dentro do MLflow 3, também podemos nos aprofundar nos rastreamentos para entender como nosso modelo está performando e entender a lógica do avaliador por trás de cada resposta. Esses detalhes em nível de observação são extremamente úteis para investigar casos extremos, fazer as alterações correspondentes na definição do agente e ver como essas alterações afetam o desempenho. Este ciclo rápido de iteração e desenvolvimento é extremamente poderoso para criar agentes de alta qualidade. Não estamos mais trabalhando às cegas e agora temos uma visão quantitativa clara do desempenho de nosso aplicativo.
Embora os LLMs-como-Avaliadores sejam extremamente úteis e muitas vezes necessários para a escalabilidade, muitas vezes é necessário o feedback de especialistas no assunto para se ter confiança para passar para a produção, bem como para melhorar o desempenho geral do agent. Os especialistas no assunto muitas vezes não são os engenheiros de IA que desenvolvem o processo agêntico, portanto, precisamos de uma forma de coletar feedback e integrá-lo de volta ao nosso produto e aos nossos avaliadores.
O Review App que acompanha os agentes implantados por meio do Agent Framework oferece essa funcionalidade de forma nativa. Os especialistas no assunto (SMEs) podem interagir livremente com o agente, ou os engenheiros podem criar sessões de rotulagem personalizadas que pedem aos especialistas para avaliar exemplos específicos. Isso pode ser extremamente útil para observar o desempenho do agente em casos desafiadores, ou até mesmo como um "teste de unidade" em um conjunto de casos de teste que podem ser altamente representativos das solicitações do usuário final. Esse feedback, positivo ou negativo, é integrado diretamente ao conjunto de dados de avaliação, criando um "padrão ouro" que pode ser usado para o "fine-tuning" (ajuste fino) posterior, bem como para melhorar os juízes automatizados.
A avaliação agêntica é certamente desafiadora e pode consumir muito tempo, exigindo coordenação e investimento entre equipes parceiras, incluindo o tempo dos especialistas no assunto, o que pode ser percebido como algo fora do escopo das atribuições normais da função. No Databricks, vemos as avaliações como a base para a criação de aplicações agênticas, e é fundamental que as organizações reconheçam a importância da avaliação como um componente central do processo de desenvolvimento agêntico.
A criação de agentes no Databricks oferece opções flexíveis para implantação em casos de uso tanto em lote (batch) quanto em tempo real. Neste cenário, utilizamos o Model Serving do Databricks para gerar um endpoint escalável, seguro e em tempo real que se integra downstream por meio da API REST. Como um exemplo simples, expomos isso por meio de um aplicativo Databricks que também funciona como um servidor personalizado do Protocolo de Contexto de Modelo (MCP), o que nos permite utilizar este agente fora do Databricks como uma ferramenta.
Como uma extensão da funcionalidade principal, podemos integrar recursos de conversão de imagem em texto ao aplicativo Databricks. Abaixo está um exemplo em que um LLM analisa a imagem recebida, gera uma legenda de texto e envia uma solicitação personalizada ao agente de posicionamento de conteúdo, incluindo um público-alvo desejado. Neste caso, usamos uma arquitetura de múltiplos agentes para personalizar a imagem de um anúncio usando o Pet Ad Image Generator e pedimos um posicionamento:
Ao encapsular este agente em um servidor MCP personalizado, ele amplia as opções de integração para anunciantes, editores e planejadores de mídia no ecossistema de adtech existente.
Ao fornecer um mecanismo de posicionamento escalável, em tempo real e profundamente contextual, este Agente de IA vai além de simples palavras-chave para entregar uma relevância de anúncio significativamente maior, melhorando diretamente o desempenho da campanha e reduzindo o desperdício de anúncios tanto para anunciantes quanto para editores.
Saiba mais sobre agentes de IA no Databricks: explore nossos recursos dedicados sobre como criar e implantar modelos de linguagem grandes e agentes de IA na Databricks Lakehouse Platform.
Fale com um especialista: pronto para aplicar isso ao seu negócio? Entre em contato com nossa equipe para discutir como o Databricks pode ajudar você a criar e dimensionar sua solução de publicidade de última geração.
(This blog post has been translated using AI-powered tools) Original Post
Soluções
December 4, 2025/8 min de leitura
Tecnología
December 5, 2025/18 min de leitura


