Ancorando a IA a um aplicativo de referência


Os modelos de serviço são um bloco de construção típico nas organizações “Golden Chain” construídas para suas equipes de engenharia, para facilitar a coisa certa. Os modelos devem ser os modelos de todos os serviços da organização, sempre representando os padrões e padrões de codificação mais atualizados.

Um dos desafios dos modelos de serviço é que, uma vez que uma equipe instanciou um serviço com um, é tedioso alimentar as atualizações de modelos para esses serviços. Genai pode ajudar com isso?

Aplicativo de referência como provedor de amostra

Como parte de um experimento maior sobre o qual escrevi recentemente aquiCriei um servidor MCP que fornece um acesso ao Assistente de codificação às amostras de codificação para padrões típicos. No meu caso, isso foi para um aplicativo da Spring Boot Net, onde os padrões eram lessons de repositório, serviço e controlador. É uma prática de impulso bem estabelecida neste momento que fornecer aos LLMs exemplos das saídas que desejamos levar a melhores resultados. Para colocar “fornecer exemplos” em termos mais sofisticados: isso também é chamado de “poucos pedidos de tiro“, Ou” aprendizado no contexto “.

Quando comecei a trabalhar com amostras de código em prompts, percebi rapidamente o quão entediante isso period, porque estava trabalhando em um arquivo de marcação de linguagem pure. Parecia um pouco como escrever meus primeiros exames de Java na universidade, a lápis: você sabe ideia se o código que você está escrevendo realmente compila. E além do mais, se você está criando instruções para vários padrões de codificação, deseja mantê -los consistentes um com o outro. A manutenção de amostras de código em um projeto de aplicativo de referência que você pode compilar e executar (como um modelo de serviço) facilita muito o fornecimento de AI com amostras compiláveis ​​e consistentes.

Ancorando a IA a um aplicativo de referência

Detecte a deriva do aplicativo de referência

Agora, de volta à declaração do problema que mencionei no início: depois que o código é gerado (seja com a IA ou com um modelo de serviço) e, em seguida, estendido e mantido ainda mais, as bases de código geralmente se afastam do modelo do aplicativo de referência.

Então, em uma segunda etapa, me perguntei como poderíamos usar essa abordagem para fazer uma “detecção de desvio de padrão de código” entre a base de código e o aplicativo de referência. Eu testei isso com um exemplo relativamente simples, adicionei um logger e as instruções de log.debug às lessons de controlador do aplicativo de referência:

Captura de tela de um diferencial do Git Commit no aplicativo de referência, mostrando um controlador com uma anotação adicionada ao @slf4j e uma instrução log.debug em um dos mapeamentos do terminal.

Em seguida, expandi o servidor MCP para fornecer acesso ao GIT COMIT no aplicativo de referência. Pedir ao agente que primeiro procure as mudanças reais na referência me dê algum controle sobre o escopo da detecção de deriva, posso usar os compromissos para me comunicar com a IA exatamente em que tipo de deriva me interessava. Antes de introduzir isso, quando eu apenas pedi a AI para comparar os controladores de referência, e eu viu um pouco de comprometimento, e que tenha sido um pouco para o que se aproximou de um pouco de um composto de referência, e que tenha sido um pouco para o que se aproximou de um pouco de um pouco de composição, e que tenha sido um pouco para o que se aproveitou com um pouco de composição de que um pouco de composição, e que tenha um pouco de composição de um pouco de referência, e que tivesse um pouco de composição existente, que tivesse um pouco de composição existente, que tenha um pouco de composição e um pouco de composição de que um pouco de um pouco de composição.

Uma versão expandida do diagrama anterior, desta vez mostrando a configuração para a detecção de desvio. O prompt pede ao agente que encontre as mais recentes alterações, o agente recebe o compromisso mais recente do aplicativo de referência, via MCP Server. O agente então olha para o diferencial e o usa para analisar o aplicativo de destino e criar um relatório de deriva. Em uma segunda etapa, o usuário pode solicitar ao agente que escreva o código que feche as lacunas identificadas no relatório.

Na primeira etapa, apenas pedi à IA que gerasse um relatório para mim que identificou toda a deriva, para que eu pudesse revisar e editar esse relatório, por exemplo, remover as descobertas irrelevantes. Na segunda etapa, pedi à IA que aceitasse o relatório e escreva o código que fecha as lacunas identificadas.

Quando a IA está trazendo algo novo para a mesa?

Uma coisa tão simples quanto adicionar um madeir Openrewrite. Portanto, tenha isso em mente antes de alcançar a IA.

Onde a IA pode brilhar é sempre que temos deriva que precisa de codificação mais dinâmica do que é possível com receitas de codemodas baseadas em expressão common. Em uma forma avançada do exemplo de registro, isso pode estar transformando instruções de log não padronizadas e ricas em um formato estruturado, onde um LLM pode ser melhor em transformar uma grande variedade de mensagens de log existentes na respectiva estrutura.

O exemplo do servidor MCP está incluído em o repositório que acompanha o artigo authentic.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *