No mundo do desenvolvimento de software, a revisão e aprovação do código são processos importantes para garantir a qualidade, segurança e funcionalidade do software que está sendo desenvolvido. No entanto, os gestores encarregados de supervisionar estes processos críticos enfrentam frequentemente numerosos desafios, tais como os seguintes:
- Falta de conhecimento técnico – Os gerentes podem não ter um conhecimento técnico profundo da linguagem de programação utilizada ou podem não ter estado envolvidos na engenharia de software por um longo período. Isto resulta numa lacuna de conhecimento que pode dificultar a avaliação precisa do impacto e da solidez das alterações propostas no código.
- Limitações de tempo – A revisão e aprovação do código podem ser um processo demorado, especialmente em projetos maiores ou mais complexos. Os gerentes precisam equilibrar o rigor da revisão e a pressão para cumprir os cronogramas do projeto.
- Volume de solicitações de mudança – Lidar com um grande volume de solicitações de mudança é um desafio comum para gerentes, especialmente se eles supervisionam diversas equipes e projetos. Semelhante ao desafio da restrição de tempo, os gestores precisam ser capazes de lidar com essas solicitações de forma eficiente para não atrasar o progresso do projeto.
- Esforço manual – A revisão do código exige esforço manual dos gestores e a falta de automação pode dificultar a escalabilidade do processo.
- Documentação – A documentação adequada do processo de revisão e aprovação do código é importante para a transparência e a responsabilização.
Com o surgimento de inteligência artificial generativa (AI), os gerentes agora podem aproveitar essa tecnologia transformadora e integrá-la ao conjunto de ferramentas e serviços de implantação da AWS para agilizar o processo de revisão e aprovação de uma maneira que não era possível anteriormente. Nesta postagem, exploramos uma solução que oferece um fluxo de trabalho de implantação integrado de ponta a ponta que incorpora análise e resumo automatizado de alterações junto com a funcionalidade de fluxo de trabalho de aprovação. Nós usamos Rocha Amazônica, um serviço totalmente gerenciado que disponibiliza modelos básicos (FMs) das principais startups de IA e da Amazon por meio de uma API, para que você possa escolher entre uma ampla variedade de FMs para encontrar o modelo mais adequado para seu caso de uso. Com a experiência sem servidor do Amazon Bedrock, você pode começar rapidamente, personalizar FMs de maneira privada com seus próprios dados e integrá-los e implantá-los em seus aplicativos usando ferramentas da AWS sem precisar gerenciar nenhuma infraestrutura.
Visão geral da solução
O diagrama a seguir ilustra a arquitetura da solução.
O fluxo de trabalho consiste nas seguintes etapas:
- Um desenvolvedor envia novas alterações de código para seu repositório de código (como AWS CodeCommit), que aciona automaticamente o início de um AWS Code Pipeline desdobramento, desenvolvimento.
- O código do aplicativo passa por um processo de construção de código, realiza verificações de vulnerabilidades e conduz testes de unidade usando suas ferramentas preferidas.
- AWS CodeBuild recupera o repositório e executa um comando git show para extrair as diferenças de código entre a versão de commit atual e a versão de commit anterior. Isso produz uma saída linha por linha que indica as alterações de código feitas nesta versão.
- CodeBuild salva a saída em um Amazon DynamoDB tabela com informações de referência adicionais:
- ID de execução do CodePipeline
- Região AWS
- Nome do CodePipeline
- Número de compilação do CodeBuild
- Data e hora
- Status
- Streams do Amazon DynamoDB captura as modificações de dados feito à mesa.
- An AWS Lambda A função é acionada pelo stream do DynamoDB para processar o registro capturado.
- A função invoca o modelo Anthropic Claude v2 no Amazon Bedrock por meio do Amazon Bedrock API InvokeModel chamar. As diferenças de código, juntamente com um prompt, são fornecidas como entrada para o modelo para análise, e um resumo das alterações de código é retornado como saída.
- A saída do modelo é salva na mesma tabela do DynamoDB.
- O gerente é notificado via Serviço de e-mail simples da Amazon (Amazon SES) do resumo das alterações de código e que sua aprovação é necessária para a implantação.
- O gerente analisa o e-mail e fornece sua decisão (aprovar ou rejeitar) junto com quaisquer comentários de revisão por meio do console do CodePipeline.
- A decisão de aprovação e os comentários de revisão são capturados por Amazon Event Bridge, que aciona uma função Lambda para salvá-los de volta no DynamoDB.
- Se aprovado, o pipeline implantará o código do aplicativo usando suas ferramentas preferidas. Se rejeitado, o fluxo de trabalho termina e a implantação não prossegue.
Nas seções a seguir, você implantará a solução e verificará o fluxo de trabalho de ponta a ponta.
Pré-requisitos
Para seguir as instruções desta solução, você precisa dos seguintes pré-requisitos:
Implante a solução
Para implantar a solução, conclua as seguintes etapas:
- Escolha Pilha de Lançamento para iniciar uma pilha CloudFormation em
us-east-1
: - Escolha Endereço de e-mail, insira um endereço de e-mail ao qual você tenha acesso. O resumo das alterações do código será enviado para este endereço de e-mail.
- Escolha modeloId, deixe como padrão anthropic.claude-v2, que é o modelo Anthropic Claude v2.
A implantação do modelo levará cerca de 4 minutos.
- Ao receber um e-mail do Amazon SES para verificar seu endereço de e-mail, escolha o link fornecido para autorizar seu endereço de e-mail.
- Você receberá um e-mail intitulado “Resumo das alterações” para o commit inicial do repositório de amostra no CodeCommit.
- No console do AWS CloudFormation, navegue até o Saídas guia da pilha implantada.
- Copie o valor de RepoCloneURL. Você precisa disso para acessar o repositório de código de amostra.
Teste a solução
Você pode testar o fluxo de trabalho de ponta a ponta assumindo o papel de desenvolvedor e enviando algumas alterações de código. Um conjunto de exemplos de códigos foi preparado para você no CodeCommit. Para acessar o repositório CodeCommit, insira os seguintes comandos em seu IDE:
Você encontrará a seguinte estrutura de diretórios para um Kit de desenvolvimento em nuvem da AWS (AWS CDK) que cria uma função Lambda para executar uma classificação por bolha em uma sequência de números inteiros. A função Lambda pode ser acessada por meio de um URL disponível publicamente.
Você faz três alterações nos códigos do aplicativo.
- Para aprimorar a função para suportar o algoritmo de classificação rápida e de classificação por bolha, pegue um parâmetro para permitir a seleção do algoritmo a ser usado e retorne o algoritmo usado e a matriz classificada na saída, substitua todo o conteúdo de
lambda/index.py
com o seguinte código:
- Para reduzir a configuração de tempo limite da função de 10 minutos para 5 segundos (porque não esperamos que a função seja executada por mais de alguns segundos), atualize a linha 47 em
my_sample_project/my_sample_project_stack.py
como se segue:
- Para restringir a invocação da função usando o IAM para maior segurança, atualize a linha 56 em
my_sample_project/my_sample_project_stack.py
como se segue:
- Envie as alterações de código digitando os seguintes comandos:
Isso inicia o fluxo de trabalho de implantação do CodePipeline nas etapas 1 a 9, conforme descrito na visão geral da solução. Ao invocar o modelo Amazon Bedrock, fornecemos o seguinte prompt:
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- PlatoData.Network Gerativa Vertical Ai. Capacite-se. Acesse aqui.
- PlatoAiStream. Inteligência Web3. Conhecimento Amplificado. Acesse aqui.
- PlatãoESG. Carbono Tecnologia Limpa, Energia, Ambiente, Solar, Gestão de resíduos. Acesse aqui.
- PlatoHealth. Inteligência em Biotecnologia e Ensaios Clínicos. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/enhance-code-review-and-approval-efficiency-with-generative-ai-using-amazon-bedrock/
- :tem
- :é
- :não
- $UP
- 1
- 10
- 100
- 11
- 17
- 200
- 27
- 58
- 7
- 8
- 9
- a
- Capaz
- Sobre
- acelerar
- Acesso
- acessível
- responsabilidade
- exatamente
- Alcançar
- adicionado
- Adição
- Adicional
- endereço
- Adiciona
- Vantagem
- AI
- algoritmo
- algoritmos
- permitir
- juntamente
- Amazon
- Amazon Web Services
- an
- Analisa
- análise
- analisar
- e
- Antrópico
- qualquer
- api
- app
- Aplicação
- aplicações
- aprovação
- aprovar
- aprovou
- arquitetura
- SOMOS
- por aí
- Ordem
- artificial
- AS
- avaliar
- auxiliar
- Assistente
- atributos
- aumentado
- autenticado
- Autenticação
- autorizar
- Automatizado
- automaticamente
- Automação
- disponível
- AWS
- Formação da Nuvem AWS
- em caminho duplo
- Equilíbrio
- baseado
- BE
- Porque
- sido
- ser
- MELHOR
- entre
- corpo
- ambos
- trazer
- bolha
- construir
- Prédio
- by
- chamada
- CAN
- Pode obter
- capturados
- casas
- CD
- desafiar
- desafios
- alterar
- mudado
- Alterações
- Escolha
- limpar
- Na nuvem
- código
- Revisão de código
- códigos
- comentários
- commit
- comum
- completar
- integrações
- conciso
- Conduzir
- conduz
- Consequências
- Considerações
- consiste
- cônsul
- conteúdo
- contexto
- criado
- cria
- crítico
- Atual
- personalizar
- dados,
- filha
- lidar
- decisão
- Padrão
- definido
- implantar
- implantado
- Implantação
- desenvolvimento
- implanta
- Design
- desejado
- Detalhamento
- Determinar
- desenvolvido
- Developer
- Desenvolvimento
- diagrama
- diferenças
- diferente
- difícil
- anuário
- documentação
- parece
- não
- duração
- facilidade
- eficiência
- eficientemente
- esforço
- ou
- outro
- final
- end-to-end
- termina
- Engenharia
- aumentar
- assegurando
- Entrar
- entrar
- Todo
- Meio Ambiente
- especialmente
- Evento
- exemplo
- Exceto
- esperar
- vasta experiência
- experimentos
- explorar
- explora
- opção
- extrato
- Rosto
- enfrentou
- família
- poucos
- financeiro
- Instituições financeiras
- Encontre
- Flexibilidade
- seguir
- seguinte
- segue
- Escolha
- Foundation
- Gratuito
- da
- totalmente
- função
- funcional
- funcionalidade
- mais distante
- lacuna
- gerado
- generativo
- IA generativa
- ter
- obtendo
- Git
- Go
- vai
- maior
- orientações
- manipular
- arreios
- Ter
- ter
- he
- Alta
- altamente
- sua
- segurar
- Como funciona o dobrador de carta de canal
- Contudo
- HTML
- http
- HTTPS
- humano
- i
- ID
- if
- ilustra
- Impacto
- implementação
- implementação
- implicações
- importante
- melhorar
- in
- em profundidade
- incorpora
- índice
- indicam
- INFORMAÇÕES
- Infraestrutura
- do estado inicial,
- entrada
- instituições
- instruções
- integrar
- integrado
- Integra-se
- para dentro
- Introduz
- invoca
- envolvido
- IT
- json
- Saber
- Conhecimento
- Falta
- língua
- Maior
- lançamento
- principal
- Deixar
- menos
- deixar
- Line
- LINK
- Lista
- mais
- moldadas
- a Principal
- principal
- fazer
- FAZ
- gerencia
- gerenciados
- Gerente
- Gerentes
- maneira
- manual
- Posso..
- significava
- Conheça
- metadados
- poder
- Minutos
- modelo
- modelos
- modificações
- mais
- a maioria
- múltiplo
- Navegar
- você merece...
- Novo
- Próximo
- não
- nenhum
- agora
- números
- numeroso
- of
- Oferece
- frequentemente
- on
- só
- or
- Outros
- de outra forma
- Fora
- delineado
- saída
- lado de fora
- global
- supervisionando
- Visão geral
- próprio
- parâmetro
- pendente
- Realizar
- executa
- significativo
- oleoduto
- articulação
- platão
- Inteligência de Dados Platão
- PlatãoData
- possível
- Publique
- potencial
- poder
- preferido
- preparado
- pré-requisitos
- pressão
- anterior
- anteriormente
- prosseguir
- processo
- processos
- produzir
- produz
- Perfil
- Programação
- Progresso
- projeto
- projetos
- solicita
- adequado
- proposto
- fornecer
- fornecido
- fornece
- publicamente
- propósito
- empurra
- Empurrando
- qualidade
- pergunta
- Links
- rapidamente
- alcance
- receber
- registro
- reduzir
- Reduzido
- reduz
- referência
- Rejeitado..
- liberar
- substituir
- repositório
- pedidos
- requeridos
- Requisitos
- exige
- Recursos
- resposta
- restringir
- Resultados
- retorno
- Retorna
- rever
- Opinões
- Subir
- Tipo
- Execute
- s
- mesmo
- amostra
- Salvar
- salvo
- escalável
- Escala
- digitaliza
- segundo
- seções
- seguro
- segurança
- doadores,
- senior
- enviei
- Serverless
- serviço
- Serviços
- conjunto
- contexto
- rede de apoio social
- mostrar
- semelhante
- simples
- Singapore
- So
- Software
- desenvolvimento de software
- Engenharia de software
- solução
- Soluções
- alguns
- fonte
- especificada
- velocidade
- gasta
- pilha
- começo
- começado
- começa
- Startups
- Passo
- Passos
- transmitir canais
- simplificar
- Tanga
- estrutura
- tal
- suíte
- adequado
- RESUMO
- ajuda
- mesa
- Tire
- tomar
- equipes
- Dados Técnicos:
- Tecnologia
- modelo
- teste
- testes
- do que
- que
- A
- o mundo
- deles
- Eles
- Lá.
- Este
- deles
- isto
- aqueles
- três
- Através da
- aperta
- tempo
- demorado
- timelines
- intitulado
- para
- juntos
- ferramenta
- ferramentas
- transformadora
- Transparência
- desencadeado
- tentar
- dois
- típico
- compreensão
- unidade
- Atualizar
- Atualizada
- URL
- us
- usar
- caso de uso
- usava
- usuários
- usos
- utilização
- v1
- valor
- vário
- verificar
- versão
- via
- volume
- vs
- vulnerabilidade
- foi
- we
- web
- serviços web
- BEM
- foram
- quando
- qual
- Largo
- Ampla variedade
- precisarão
- de
- dentro
- sem
- Atividades:
- de gestão de documentos
- trabalhar
- trabalho
- mundo
- X
- yaml
- Vocês
- investimentos
- zefirnet