Nel mondo dello sviluppo software, la revisione e l'approvazione del codice sono processi importanti per garantire la qualità, la sicurezza e la funzionalità del software in fase di sviluppo. Tuttavia, i manager incaricati di supervisionare questi processi critici spesso affrontano numerose sfide, come le seguenti:
- Mancanza di competenza tecnica – I manager potrebbero non avere una conoscenza tecnica approfondita del linguaggio di programmazione utilizzato o potrebbero non essere stati coinvolti nell’ingegneria del software per un periodo prolungato. Ciò si traduce in una lacuna di conoscenze che può rendere difficile per loro valutare accuratamente l’impatto e la solidità delle modifiche al codice proposte.
- Vincoli di tempo – La revisione e l’approvazione del codice possono essere un processo dispendioso in termini di tempo, soprattutto in progetti più grandi o complessi. I manager devono trovare un equilibrio tra la completezza della revisione e la pressione di rispettare le tempistiche del progetto.
- Volume delle richieste di modifica – Gestire un volume elevato di richieste di modifica è una sfida comune per i manager, soprattutto se supervisionano più team e progetti. Analogamente alla sfida dei vincoli temporali, i manager devono essere in grado di gestire tali richieste in modo efficiente in modo da non ostacolare l’avanzamento del progetto.
- Sforzo manuale – La revisione del codice richiede uno sforzo manuale da parte dei manager e la mancanza di automazione può rendere difficile la scalabilità del processo.
- Documentazione – Una documentazione adeguata del processo di revisione e approvazione del codice è importante per la trasparenza e la responsabilità.
Con l'ascesa di intelligenza artificiale generativa (AI), i manager possono ora sfruttare questa tecnologia trasformativa e integrarla con la suite AWS di strumenti e servizi di distribuzione per semplificare il processo di revisione e approvazione in un modo che prima non era possibile. In questo post, esploriamo una soluzione che offre un flusso di lavoro di distribuzione end-to-end integrato che incorpora l'analisi e il riepilogo automatizzati delle modifiche insieme alla funzionalità del flusso di lavoro di approvazione. Noi usiamo Roccia Amazzonica, un servizio completamente gestito che rende disponibili tramite un'API i Foundation Model (FM) delle principali startup di intelligenza artificiale e di Amazon, così puoi scegliere tra un'ampia gamma di FM per trovare il modello più adatto al tuo caso d'uso. Con l'esperienza serverless di Amazon Bedrock, puoi iniziare rapidamente, personalizzare privatamente i FM con i tuoi dati e integrarli e distribuirli nelle tue applicazioni utilizzando gli strumenti AWS senza dover gestire alcuna infrastruttura.
Panoramica della soluzione
Il diagramma seguente illustra l'architettura della soluzione.
Il flusso di lavoro è costituito dai seguenti passaggi:
- Uno sviluppatore inserisce le nuove modifiche al codice nel proprio repository di codice (come AWS CodeCommit), che attiva automaticamente l'inizio di un file AWS Code Pipeline distribuzione.
- Il codice dell'applicazione passa attraverso un processo di creazione del codice, esegue scansioni di vulnerabilità e conduce test unitari utilizzando gli strumenti preferiti.
- AWSCodeBuild recupera il repository ed esegue un comando git show per estrarre le differenze di codice tra la versione di commit corrente e la versione di commit precedente. Ciò produce un output riga per riga che indica le modifiche al codice apportate in questa versione.
- CodeBuild salva l'output in un file Amazon DynamoDB tabella con ulteriori informazioni di riferimento:
- ID di esecuzione CodePipeline
- Regione AWS
- Nome della CodePipeline
- Numero di build CodeBuild
- Data e ora
- Stato dei servizi
- Stream di Amazon DynamoDB cattura le modifiche dei dati fatto in tavola.
- An AWS Lambda la funzione viene attivata dal flusso DynamoDB per elaborare il record acquisito.
- La funzione richiama il modello Anthropic Claude v2 su Amazon Bedrock tramite Amazon Bedrock API InvokeModel chiamata. Le differenze nel codice, insieme a un prompt, vengono fornite come input al modello per l'analisi e come output viene restituito un riepilogo delle modifiche al codice.
- L'output del modello viene salvato nella stessa tabella DynamoDB.
- Il gestore viene avvisato tramite Servizio di posta elettronica semplice Amazon (Amazon SES) del riepilogo delle modifiche al codice e che la loro approvazione è necessaria per la distribuzione.
- Il manager esamina l'e-mail e fornisce la propria decisione (approvazione o rifiuto) insieme a eventuali commenti di revisione tramite la console CodePipeline.
- La decisione di approvazione e i commenti di revisione vengono acquisiti da Amazon EventBridge, che attiva una funzione Lambda per salvarli nuovamente in DynamoDB.
- Se approvata, la pipeline distribuisce il codice dell'applicazione utilizzando i tuoi strumenti preferiti. Se rifiutato, il flusso di lavoro termina e la distribuzione non procede ulteriormente.
Nelle sezioni seguenti si distribuisce la soluzione e si verifica il flusso di lavoro end-to-end.
Prerequisiti
Per seguire le istruzioni in questa soluzione, sono necessari i seguenti prerequisiti:
Distribuisci la soluzione
Per distribuire la soluzione, completare i seguenti passaggi:
- Scegli Avvia Stack per avviare uno stack CloudFormation in
us-east-1
: - Nel Indirizzo email, inserisci un indirizzo email a cui hai accesso. Il riepilogo delle modifiche al codice verrà inviato a questo indirizzo email.
- Nel modelloId, lascia come predefinito antropic.claude-v2, che è il modello Anthropic Claude v2.
La distribuzione del modello richiederà circa 4 minuti.
- Quando ricevi un'e-mail da Amazon SES per verificare il tuo indirizzo e-mail, scegli il collegamento fornito per autorizzare il tuo indirizzo e-mail.
- Riceverai un'e-mail intitolata "Riepilogo delle modifiche" per il commit iniziale del repository di esempio in CodeCommit.
- Nella console AWS CloudFormation, vai a Uscite scheda dello stack distribuito.
- Copia il valore di RepoCloneURL. Ne hai bisogno per accedere al repository del codice di esempio.
Prova la soluzione
Puoi testare il flusso di lavoro dall'inizio alla fine assumendo il ruolo di sviluppatore e apportando alcune modifiche al codice. Una serie di codici di esempio è stata preparata per te in CodeCommit. A accedere al repository CodeCommit, inserisci i seguenti comandi sul tuo IDE:
Troverai la seguente struttura di directory per an Kit di sviluppo cloud AWS (AWS CDK) applicazione che crea una funzione Lambda per eseguire un ordinamento a bolle su una stringa di numeri interi. La funzione Lambda è accessibile tramite un URL disponibile pubblicamente.
Si apportano tre modifiche ai codici dell'applicazione.
- Per migliorare la funzione per supportare sia l'algoritmo di ordinamento rapido che quello di ordinamento a bolle, inserire un parametro per consentire la selezione dell'algoritmo da utilizzare e restituire sia l'algoritmo utilizzato che l'array ordinato nell'output, sostituire l'intero contenuto di
lambda/index.py
con il seguente codice:
- Per ridurre l'impostazione del timeout della funzione da 10 minuti a 5 secondi (perché non ci aspettiamo che la funzione venga eseguita per più di pochi secondi), aggiorna la riga 47 in
my_sample_project/my_sample_project_stack.py
come segue:
- Per limitare l'invocazione della funzione utilizzando IAM per maggiore sicurezza, aggiornare la riga 56 in
my_sample_project/my_sample_project_stack.py
come segue:
- Effettuare le modifiche al codice inserendo i seguenti comandi:
Ciò avvia il flusso di lavoro di distribuzione CodePipeline dai passaggi 1–9 come indicato nella panoramica della soluzione. Quando si richiama il modello Amazon Bedrock, abbiamo fornito il seguente prompt:
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- PlatoData.Network Generativo verticale Ai. Potenzia te stesso. Accedi qui.
- PlatoAiStream. Intelligenza Web3. Conoscenza amplificata. Accedi qui.
- PlatoneESG. Carbonio, Tecnologia pulita, Energia, Ambiente, Solare, Gestione dei rifiuti. Accedi qui.
- Platone Salute. Intelligence sulle biotecnologie e sulle sperimentazioni cliniche. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/enhance-code-review-and-approval-efficiency-with-generative-ai-using-amazon-bedrock/
- :ha
- :È
- :non
- $ SU
- 1
- 10
- 100
- 11
- 17
- 200
- 27
- 58
- 7
- 8
- 9
- a
- capace
- WRI
- accelerare
- accesso
- accessibile
- responsabilità
- con precisione
- Raggiungere
- effettivamente
- aggiunto
- aggiunta
- aggiuntivo
- indirizzo
- Aggiunge
- Vantaggio
- AI
- algoritmo
- Algoritmi
- consentire
- lungo
- Amazon
- Amazon Web Services
- an
- Analisi
- .
- analizzare
- ed
- Antropico
- in qualsiasi
- api
- App
- Applicazioni
- applicazioni
- approvazione
- approvare
- approvato
- architettura
- SONO
- in giro
- Italia
- artificiale
- AS
- valutare
- assistere
- Assistant
- gli attributi
- aumentata
- autenticato
- Autenticazione
- autorizzare
- Automatizzata
- automaticamente
- Automazione
- disponibile
- AWS
- AWS CloudFormazione
- precedente
- Equilibrio
- basato
- BE
- perché
- stato
- essendo
- MIGLIORE
- fra
- stile di vita
- entrambi
- portare
- bolla
- costruire
- Costruzione
- by
- chiamata
- Materiale
- Può ottenere
- catturato
- Custodie
- CD
- Challenge
- sfide
- il cambiamento
- cambiato
- Modifiche
- Scegli
- cavedano
- Cloud
- codice
- Revisione del codice
- codici
- Commenti
- commettere
- Uncommon
- completamento di una
- complesso
- conciso
- Segui il codice di Condotta
- comportamenti
- Conseguenze
- Considerazioni
- consiste
- consolle
- contenuto
- contesto
- creato
- crea
- critico
- Corrente
- personalizzare
- dati
- figlia
- trattare
- decisione
- Predefinito
- definito
- schierare
- schierato
- distribuzione
- deployment
- Distribuisce
- Design
- desiderato
- Detailing
- Determinare
- sviluppato
- Costruttori
- Mercato
- diagramma
- differenze
- diverso
- difficile
- elenco
- documentazione
- effettua
- Dont
- durata
- alleviare
- efficienza
- in modo efficiente
- sforzo
- o
- altro
- fine
- da un capo all'altro
- finisce
- Ingegneria
- accrescere
- assicurando
- entrare
- entrare
- Intero
- Ambiente
- particolarmente
- Evento
- esempio
- Tranne
- attenderti
- esperienza
- esperimenti
- esplora
- esplora
- estratto
- Faccia
- di fronte
- famiglia
- pochi
- finanziario
- Istituzioni finanziarie
- Trovate
- Flessibilità
- seguire
- i seguenti
- segue
- Nel
- Fondazione
- Gratis
- da
- completamente
- function
- funzionale
- funzionalità
- ulteriormente
- divario
- generato
- generativo
- AI generativa
- ottenere
- ottenere
- Idiota
- Go
- va
- maggiore
- guida
- maniglia
- cintura da arrampicata
- Avere
- avendo
- he
- Alta
- vivamente
- il suo
- tenere
- Come
- Tuttavia
- HTML
- http
- HTTPS
- umano
- i
- ID
- if
- illustra
- Impact
- implementazione
- Implementazione
- implicazioni
- importante
- competenze
- in
- Uno sguardo approfondito sui miglioramenti dei pneumatici da corsa di Bridgestone.
- incorpora
- Index
- indica
- informazioni
- Infrastruttura
- inizialmente
- ingresso
- istituzioni
- istruzioni
- integrare
- integrato
- Integra
- ai miglioramenti
- Introduce
- invoca
- coinvolto
- IT
- json
- Sapere
- conoscenze
- Dipingere
- Lingua
- superiore, se assunto singolarmente.
- lanciare
- principale
- Lasciare
- meno
- lasciare
- linea
- LINK
- Lista
- più a lungo
- fatto
- Principale
- maggiore
- make
- FA
- gestire
- gestito
- direttore
- I gestori
- modo
- Manuale
- Maggio..
- significava
- Soddisfare
- Metadati
- forza
- Minuti
- modello
- modelli
- modifiche
- Scopri di più
- maggior parte
- multiplo
- Navigare
- Bisogno
- New
- GENERAZIONE
- no
- Nessuna
- adesso
- numeri
- numerose
- of
- Offerte
- di frequente
- on
- esclusivamente
- or
- Altro
- altrimenti
- su
- delineato
- produzione
- al di fuori
- complessivo
- supervisionando
- panoramica
- proprio
- parametro
- in attesa di
- Eseguire
- esegue
- periodo
- conduttura
- Perno
- Platone
- Platone Data Intelligence
- PlatoneDati
- possibile
- Post
- potenziale
- energia
- preferito
- preparato
- prerequisiti
- pressione
- precedente
- in precedenza
- procedere
- processi
- i processi
- produrre
- produce
- Profilo
- Programmazione
- Progressi
- progetto
- progetti
- istruzioni
- corretto
- proposto
- fornire
- purché
- fornisce
- pubblicamente
- scopo
- spinge
- spingendo
- qualità
- domanda
- Presto
- rapidamente
- gamma
- ricevere
- record
- ridurre
- Ridotto
- riduce
- riferimento
- Respinto..
- rilasciare
- sostituire
- deposito
- richieste
- necessario
- Requisiti
- richiede
- Risorse
- risposta
- limitare
- Risultati
- ritorno
- problemi
- recensioni
- Recensioni
- Aumento
- Ruolo
- Correre
- s
- stesso
- campione
- Risparmi
- salvato
- scalabile
- Scala
- scansioni
- secondo
- sezioni
- sicuro
- problemi di
- prodotti
- anziano
- inviato
- serverless
- servizio
- Servizi
- set
- regolazione
- dovrebbero
- mostrare attraverso le sue creazioni
- simile
- Un'espansione
- Singapore
- So
- Software
- lo sviluppo del software
- Ingegneria del software
- soluzione
- Soluzioni
- alcuni
- Fonte
- specificato
- velocità
- spende
- pila
- inizia a
- iniziato
- inizio
- Startup
- step
- Passi
- ruscello
- snellire
- Corda
- La struttura
- tale
- suite
- adatto
- SOMMARIO
- supporto
- tavolo
- Fai
- presa
- le squadre
- Consulenza
- Tecnologia
- modello
- test
- test
- di
- che
- Il
- il mondo
- loro
- Li
- Là.
- Strumenti Bowman per analizzare le seguenti finiture:
- di
- questo
- quelli
- tre
- Attraverso
- stringe
- tempo
- richiede tempo
- timeline
- titolato
- a
- insieme
- strumenti
- trasformativa
- Trasparenza
- innescato
- prova
- seconda
- tipico
- e una comprensione reciproca
- unità
- Aggiornanento
- aggiornato
- URL
- us
- uso
- caso d'uso
- utilizzato
- utenti
- usa
- utilizzando
- v1
- APPREZZIAMO
- vario
- verificare
- versione
- via
- volume
- vs
- vulnerabilità
- Prima
- we
- sito web
- servizi web
- WELL
- sono stati
- quando
- quale
- largo
- Vasta gamma
- volere
- con
- entro
- senza
- Lavora
- flusso di lavoro
- lavoro
- lavori
- mondo
- X
- YAML
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro