У світі розробки програмного забезпечення перевірка та затвердження коду є важливими процесами для забезпечення якості, безпеки та функціональності програмного забезпечення, що розробляється. Однак керівники, яким доручено контролювати ці важливі процеси, часто стикаються з численними проблемами, такими як:
- Відсутність технічної експертизи – Менеджери можуть не мати глибокого технічного розуміння використовуваної мови програмування або, можливо, не були залучені до розробки програмного забезпечення протягом тривалого періоду. Це призводить до прогалини в знаннях, яка може ускладнити точну оцінку впливу та обґрунтованості запропонованих змін коду.
- Часові обмеження – Огляд і затвердження коду може бути трудомістким процесом, особливо у великих або складніших проектах. Менеджерам необхідно балансувати між ретельністю перевірки та тиском, пов’язаним із дотриманням термінів проекту.
- Обсяг запитів на зміни – Робота з великою кількістю запитів на зміни є звичайною проблемою для керівників, особливо якщо вони контролюють кілька команд і проектів. Подібно до проблеми обмеження часу, менеджери повинні вміти ефективно обробляти ці запити, щоб не гальмувати прогрес проекту.
- Ручне зусилля – Перевірка коду вимагає ручних зусиль менеджерів, а відсутність автоматизації може ускладнити масштабування процесу.
- документація – Належне документування процесу перевірки та затвердження коду є важливим для прозорості та підзвітності.
З підйомом Росії генеративний штучний інтелект (AI), менеджери тепер можуть використовувати цю трансформаційну технологію та інтегрувати її з набором інструментів і послуг розгортання AWS, щоб спростити процес перегляду та затвердження у спосіб, який раніше не був можливим. У цій публікації ми досліджуємо рішення, яке пропонує інтегрований наскрізний робочий процес розгортання, який включає автоматичний аналіз змін і узагальнення разом із функціональністю робочого процесу затвердження. Ми використовуємо Amazon Bedrock, повністю керований сервіс, який робить основні моделі (FM) від провідних стартапів штучного інтелекту та Amazon доступними через API, тож ви можете вибирати з широкого спектру FM, щоб знайти модель, яка найкраще підходить для вашого випадку використання. Завдяки безсерверному досвіду Amazon Bedrock ви можете швидко розпочати роботу, конфіденційно налаштувати FM за допомогою власних даних, а також інтегрувати та розгорнути їх у своїх програмах за допомогою інструментів AWS без необхідності керувати будь-якою інфраструктурою.
Огляд рішення
Наступна діаграма ілюструє архітектуру рішення.
Робочий процес складається з наступних кроків:
- Розробник надсилає нові зміни коду до свого сховища коду (наприклад, Комісія AWS), що автоматично запускає початок an AWS CodePipeline розгортання
- Код програми проходить через процес створення коду, виконує сканування вразливостей і проводить модульні тести за допомогою ваших бажаних інструментів.
- AWS CodeBuild отримує репозиторій і виконує команду git show, щоб отримати відмінності коду між поточною версією коміту та попередньою версією коміту. Це створює вихідні дані рядок за рядком, який вказує на зміни коду, внесені в цей випуск.
- CodeBuild зберігає вихідні дані в Amazon DynamoDB таблиця з додатковою довідковою інформацією:
- Ідентифікатор запуску CodePipeline
- Регіон AWS
- Ім'я кодового трубопроводу
- Номер збірки CodeBuild
- Дата і час
- Статус
- Потоки Amazon DynamoDB фіксує зміни даних зроблені до столу.
- An AWS Lambda функція запускається потоком DynamoDB для обробки отриманого запису.
- Функція викликає модель Anthropic Claude v2 на Amazon Bedrock через Amazon Bedrock API InvokeModel виклик. Відмінності коду разом із підказкою надаються як вхідні дані в модель для аналізу, а зведення змін коду повертається як вихідні дані.
- Вихідні дані моделі зберігаються назад у ту саму таблицю DynamoDB.
- Менеджер сповіщається через Простий сервіс електронної пошти Amazon (Amazon SES) про зведення змін коду та про те, що для розгортання потрібне їх схвалення.
- Менеджер переглядає електронний лист і надає своє рішення (схвалити чи відхилити) разом із будь-якими коментарями до перегляду через консоль CodePipeline.
- Рішення про схвалення та коментарі до перегляду фіксуються Amazon EventBridge, яка запускає функцію Lambda, щоб зберегти їх назад у DynamoDB.
- У разі схвалення конвеєр розгортає код програми за допомогою ваших бажаних інструментів. У разі відхилення робочий процес завершується, і розгортання не продовжується.
У наступних розділах ви розгортаєте рішення та перевіряєте наскрізний робочий процес.
Передумови
Щоб виконати вказівки в цьому рішенні, вам потрібні такі передумови:
Розгорніть рішення
Щоб розгорнути рішення, виконайте такі дії:
- Вибирати Запустити стек щоб запустити стек CloudFormation
us-east-1
: - для Адреса електронної пошти, введіть адресу електронної пошти, до якої ви маєте доступ. Підсумок змін коду буде надіслано на цю електронну адресу.
- для modelId, залиште за умовчанням anthropic.claude-v2, який є моделлю Anthropic Claude v2.
Розгортання шаблону займе близько 4 хвилин.
- Коли ви отримаєте електронний лист від Amazon SES для підтвердження своєї електронної адреси, виберіть надане посилання, щоб авторизувати свою електронну адресу.
- Ви отримаєте електронний лист під назвою «Підсумок змін» для початкового коміту репозиторію зразків у CodeCommit.
- На консолі AWS CloudFormation перейдіть до Виходи вкладка розгорнутого стека.
- Скопіюйте значення RepoCloneURL. Це потрібно для доступу до сховища прикладів коду.
Перевірте розчин
Ви можете перевірити робочий процес від кінця до кінця, взявши на себе роль розробника та внісши деякі зміни в код. Набір прикладів кодів був підготовлений для вас у CodeCommit. до отримати доступ до репозиторію CodeCommit, введіть у середовищі IDE такі команди:
Ви знайдете таку структуру каталогів для an Набір хмарних розробок AWS (AWS CDK), яка створює функцію Lambda для виконання спливаючого сортування рядка цілих чисел. Функція Lambda доступна через загальнодоступну URL-адресу.
Ви вносите три зміни в коди програми.
- Щоб удосконалити функцію для підтримки як швидкого сортування, так і алгоритму бульбашкового сортування, візьміть параметр, щоб дозволити вибір алгоритму для використання, і поверніть як використаний алгоритм, так і відсортований масив у вихідних даних, замініть увесь вміст
lambda/index.py
з таким кодом:
- Щоб зменшити час очікування функції з 10 хвилин до 5 секунд (оскільки ми не очікуємо, що функція працюватиме довше кількох секунд), оновіть рядок 47 у
my_sample_project/my_sample_project_stack.py
наступним чином:
- Щоб обмежити виклик функції за допомогою IAM для додаткової безпеки, оновіть рядок 56 у
my_sample_project/my_sample_project_stack.py
наступним чином:
- Проштовхніть зміни коду, ввівши такі команди:
Це запускає робочий процес розгортання CodePipeline з кроків 1–9, як зазначено в огляді рішення. Під час виклику моделі Amazon Bedrock ми надали таке повідомлення:
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/enhance-code-review-and-approval-efficiency-with-generative-ai-using-amazon-bedrock/
- : має
- :є
- : ні
- $UP
- 1
- 10
- 100
- 11
- 17
- 200
- 27
- 58
- 7
- 8
- 9
- a
- Здатний
- МЕНЮ
- прискорювати
- доступ
- доступною
- підзвітність
- точно
- Achieve
- насправді
- доданий
- доповнення
- Додатковий
- адреса
- Додає
- Перевага
- AI
- алгоритм
- алгоритми
- дозволяти
- по
- Amazon
- Amazon Web Services
- an
- Аналіз
- аналіз
- аналізувати
- та
- Антропний
- будь-який
- API
- додаток
- додаток
- застосування
- твердження
- схвалювати
- затверджений
- архітектура
- ЕСТЬ
- навколо
- масив
- штучний
- AS
- оцінити
- допомогу
- Помічник
- Атрибути
- збільшено
- автентифіковано
- Authentication
- авторизувати
- Автоматизований
- автоматично
- Автоматизація
- доступний
- AWS
- AWS CloudFormation
- назад
- Balance
- заснований
- BE
- оскільки
- було
- буття
- КРАЩЕ
- між
- тіло
- обидва
- приносити
- міхур
- будувати
- Створюємо
- by
- call
- CAN
- Може отримати
- захоплений
- випадок
- CD
- виклик
- проблеми
- зміна
- змінилися
- Зміни
- Вибирати
- очистити
- хмара
- код
- Перегляд коду
- Коди
- коментарі
- commit
- загальний
- повний
- комплекс
- лаконічний
- Проводити
- проводить
- Наслідки
- міркування
- складається
- Консоль
- зміст
- контекст
- створений
- створює
- критичний
- Поточний
- налаштувати
- дані
- дочка
- справу
- рішення
- дефолт
- певний
- розгортання
- розгорнути
- розгортання
- розгортання
- розгортає
- дизайн
- бажаний
- Деталізація
- Визначати
- розвиненою
- Розробник
- розробка
- схема
- Відмінності
- різний
- важкий
- каталог
- документація
- робить
- Не знаю
- тривалість
- простота
- ефективність
- продуктивно
- зусилля
- або
- ще
- кінець
- кінець в кінець
- закінчується
- Машинобудування
- підвищувати
- забезпечення
- Що натомість? Створіть віртуальну версію себе у
- вхід
- Весь
- Навколишнє середовище
- особливо
- Event
- приклад
- Крім
- очікувати
- досвід
- Експерименти
- дослідити
- досліджує
- розширений
- витяг
- Face
- стикаються
- сім'я
- кілька
- фінансовий
- Фінансові установи
- знайти
- Гнучкість
- стежити
- після
- слідує
- для
- фонд
- Безкоштовна
- від
- повністю
- функція
- функціональний
- функціональність
- далі
- розрив
- генерується
- генеративний
- Генеративний ШІ
- отримати
- отримання
- Git
- Go
- йде
- великий
- керівництво
- обробляти
- збруя
- Мати
- має
- he
- Високий
- дуже
- його
- тримати
- Як
- Однак
- HTML
- HTTP
- HTTPS
- людина
- i
- ID
- if
- ілюструє
- Impact
- реалізація
- реалізації
- наслідки
- важливо
- удосконалювати
- in
- поглиблений
- об'єднує
- індекс
- вказує
- інформація
- Інфраструктура
- початковий
- вхід
- установи
- інструкції
- інтегрувати
- інтегрований
- Інтеграція
- в
- Вводить
- викликає
- залучений
- IT
- json
- Знати
- знання
- відсутність
- мова
- більше
- запуск
- провідний
- Залишати
- менше
- дозволяти
- Лінія
- LINK
- список
- довше
- made
- головний
- основний
- зробити
- РОБОТИ
- управляти
- вдалося
- менеджер
- Менеджери
- манера
- керівництво
- Може..
- означав
- Зустрічатися
- метадані
- може бути
- хвилин
- модель
- Моделі
- Поправки
- більше
- найбільш
- множинний
- Переміщення
- Необхідність
- Нові
- наступний
- немає
- ніхто
- зараз
- номера
- численний
- of
- Пропозиції
- часто
- on
- тільки
- or
- Інше
- інакше
- з
- викладені
- вихід
- поза
- загальний
- спостереження
- огляд
- власний
- параметр
- в очікуванні
- Виконувати
- виступає
- period
- трубопровід
- Стрижень
- plato
- Інформація про дані Платона
- PlatoData
- це можливо
- пошта
- потенціал
- влада
- переважним
- підготовлений
- передумови
- тиск
- попередній
- раніше
- продовжити
- процес
- процеси
- виробляти
- випускає
- профіль
- Програмування
- прогрес
- проект
- проектів
- підказок
- правильний
- запропонований
- забезпечувати
- за умови
- забезпечує
- публічно
- мета
- штовхає
- Натискання
- якість
- запит
- Швидко
- швидко
- діапазон
- отримати
- запис
- зменшити
- Знижений
- знижує
- посилання
- Відхилено..
- звільнити
- замінювати
- Сховище
- запитів
- вимагається
- Вимога
- Вимагається
- ресурси
- відповідь
- обмежити
- результати
- повертати
- Умови повернення
- огляд
- Відгуки
- Зростання
- Роль
- прогін
- s
- то ж
- зразок
- зберегти
- зберігаються
- масштабовані
- шкала
- сканування
- seconds
- розділам
- безпечний
- безпеку
- вибір
- старший
- посланий
- Без сервера
- обслуговування
- Послуги
- комплект
- установка
- Повинен
- Показувати
- аналогічний
- простий
- Сінгапур
- So
- Софтвер
- розробка програмного забезпечення
- розробка програмного забезпечення
- рішення
- Рішення
- деякі
- Source
- зазначений
- швидкість
- витрачає
- стек
- старт
- почалася
- починається
- Стартапи
- Крок
- заходи
- потік
- раціоналізувати
- рядок
- структура
- такі
- набір
- підходить
- РЕЗЮМЕ
- підтримка
- таблиця
- Приймати
- взяття
- команди
- технічний
- Технологія
- шаблон
- тест
- Тести
- ніж
- Що
- Команда
- світ
- їх
- Їх
- Там.
- Ці
- вони
- це
- ті
- три
- через
- підтягується
- час
- трудомісткий
- терміни
- під назвою
- до
- разом
- інструмент
- інструменти
- перетворювальний
- прозорість
- спрацьовує
- намагатися
- два
- типовий
- розуміння
- блок
- Оновити
- оновлений
- URL
- us
- використання
- використання випадку
- використовуваний
- користувачі
- використовує
- використання
- v1
- значення
- різний
- перевірити
- версія
- через
- обсяг
- vs
- вразливість
- було
- we
- Web
- веб-сервіси
- ДОБРЕ
- були
- коли
- який
- широкий
- Широкий діапазон
- волі
- з
- в
- без
- Work
- робочий
- робочий
- працює
- світ
- X
- ямл
- Ти
- вашу
- зефірнет