В современном быстро меняющемся и высококонкурентном деловом мире компании постоянно стремятся улучшить свои процессы и повысить эффективность. Одним из наиболее эффективных способов достижения этих целей является автоматизация.

В последние годы машинное обучение и искусственный интеллект (ИИ) произвели революцию в нашем подходе к автоматизации. Эти технологии позволили автоматизировать сложные задачи, которые когда-то были возможны только благодаря вмешательству человека.

В этой статье мы рассмотрим, как можно использовать машинное обучение и искусственный интеллект для автоматизации процесса создания примечаний к выпуску для проектов разработки программного обеспечения. В частности, мы покажем вам, как интегрировать Azure DevOps и OpenAI для автоматического создания примечаний к выпуску на основе выполненных задач.

Мы начнем с обзора Azure DevOps и OpenAI — двух технологий, которые мы будем использовать. Затем мы проведем вас через процесс настройки необходимой инфраструктуры, настройки Azure DevOps и ее подключения к OpenAI.

Когда у нас будет готовая инфраструктура, мы углубимся в детали того, как работает интеграция. Мы объясним, как использовать Azure DevOps для получения выполненных задач из вашего проекта разработки программного обеспечения и как передать эту информацию в OpenAI для обработки. Мы также покажем вам, как отформатировать вывод, созданный OpenAI, и создать PDF-документ, которым можно поделиться с вашей командой.

К концу этой статьи у вас будет четкое представление о том, как использовать машинное обучение и ИИ для автоматизации процесса создания примечаний к выпуску для ваших проектов разработки программного обеспечения. У вас также будет работающая реализация, которую вы сможете использовать в качестве отправной точки для своих собственных проектов.

Настройка среды

Прежде чем мы начнем разработку нашего решения, нам нужно настроить нашу среду. В этой главе мы рассмотрим шаги, необходимые для настройки среды, которая может запускать код Python, который мы напишем.

Предпосылки

Чтобы следовать этому руководству, вам понадобятся:

  • Учетная запись Microsoft Azure
  • Python 3.6 или более поздняя версия, установленная на вашем компьютере
  • Менеджер пакетов pip
  • Организация Azure DevOps и личный токен доступа (PAT) с разрешениями на чтение и запись рабочих элементов.
  • Ключ API OpenAI

Установка зависимостей

В нашем проекте мы будем использовать несколько сторонних библиотек Python, в том числе:

  • openai для связи с API OpenAI
  • azure-devops для взаимодействия с Azure DevOps
  • msrest для аутентификации

Мы можем использовать pip для установки этих зависимостей. Откройте терминал или командную строку и выполните следующие команды:

pip install openai azure-devops msrest

Настройка переменных среды

Мы будем использовать несколько переменных среды для хранения конфиденциальной информации, например URL-адрес организации Azure DevOps, личный токен доступа и ключ API OpenAI. Мы будем использовать модуль os для доступа к этим переменным среды в нашем коде Python.

Установите следующие переменные среды со своими собственными значениями:

export ORGANIZATION_URL="https://dev.azure.com/your_organization"
export PERSONAL_ACCESS_TOKEN="your_personal_access_token"
export OPENAI_API_KEY="your_openai_api_key"

Кроме того, вы можете установить эти переменные среды в настройках вашей операционной системы или создать файл .env в каталоге проекта со следующим содержимым:

ORGANIZATION_URL=https://dev.azure.com/your_organization
PERSONAL_ACCESS_TOKEN=your_personal_access_token
OPENAI_API_KEY=your_openai_api_key

Мы загрузим эти переменные среды в наш код Python, используя os.environ.get(). Теперь, когда наша среда настроена, мы можем перейти к разработке нашего решения!

Получение задач из Azure DevOps

В этой главе мы узнаем, как получать задачи из Azure DevOps с помощью REST API Azure DevOps и библиотеки запросов Python.

Прежде чем мы сможем начать, нам потребуются следующие предварительные условия: URL-адрес организации Azure DevOps, токен личного доступа (PAT), имя проекта, путь итерации или путь к области.

Импортировать необходимые библиотеки

Во-первых, нам нужно импортировать необходимые библиотеки. Мы будем использовать библиотеку Python Requests для отправки HTTP-запросов в REST API Azure DevOps.

Настройте заголовки запроса и URL-адрес

Далее нам нужно настроить заголовки запроса и URL. Мы будем отправлять запрос GET в REST API Azure DevOps для получения задач. Нам также нужно будет передать наш токен личного доступа (PAT) в заголовках запроса.

В словаре params мы используем WIQL (язык запросов рабочих элементов) для получения задач, соответствующих указанным критериям. В этом примере мы извлекаем задачи типа «Задача», которые находятся по указанному пути итерации, и упорядочиваем их по самым последним изменениям.

Отправить HTTP-запрос

Теперь мы можем отправить HTTP-запрос в REST API Azure DevOps с помощью библиотеки Python Requests.

Разобрать ответ

После отправки HTTP-запроса нам нужно проанализировать ответ и извлечь информацию о задаче.

Распечатать задания

Наконец, мы можем вывести задачи на консоль.

Комбинированный код

Вот пример комбинированного кода, который включает код из предыдущих глав для настройки среды и получения задач из Azure DevOps.

Убедитесь, что переменные personal_access_token и organization_url заменены вашей собственной информацией, а переменные team_project и team_name задайте в соответствии с вашим собственным проектом Azure DevOps и именами команд. В следующей главе мы подготовим наши задачи для OpenAI!

Подготовка данных для OpenAI API

В этой главе мы подготовим данные, которые будем использовать в качестве входных данных для OpenAI API. Наша цель — создать примечания к выпуску для набора задач, которые мы получили из Azure DevOps.

Предположим, что мы получили следующие задачи от Azure DevOps:

  1. Улучшить функциональность поиска на сайте
  2. Исправление проблемы с регистрацией пользователей
  3. Внедрить новый платежный шлюз
  4. Рефакторинг кода для повышения производительности

Чтобы подготовить эти данные для API OpenAI, мы создадим одну текстовую строку, содержащую все задачи, разделенные новыми строками. Мы также добавим дополнительный текст, чтобы придать контекст задачам:

В приведенном выше коде мы сначала определяем список задач, полученных из Azure DevOps. Затем мы определяем переменную с именем context, которая обеспечивает некоторый контекст для задач. Наконец, мы создаем переменную с именем text, которая объединяет переменные context и tasks, разделенные новыми строками.

Эта строка будет использоваться в качестве входных данных для API OpenAI для создания примечаний к выпуску для нашего последнего выпуска. Теперь, когда наши данные готовы для OpenAI, пришло время обратиться к оракулу!

Создание примечаний к выпуску с помощью OpenAI

Теперь, когда у нас есть данные о задачах, подготовленные для OpenAI, мы можем использовать языковую модель GPT-3.5 для создания примечаний к выпуску на основе этих данных.

Вот пример фрагмента кода, который демонстрирует, как генерировать примечания к выпуску для данных задач, которые мы подготовили в предыдущей главе:

В этом фрагменте кода мы используем метод openai.Completion.create() для создания примечаний к выпуску на основе данных tasks, которые мы подготовили ранее. Переменная prompt используется для предоставления подсказки OpenAI, которая описывает данные задачи, для которой мы хотим создать примечания к выпуску.

Мы устанавливаем для параметра engine значение text-davinci-002, которое является одной из самых мощных языковых моделей, доступных в API OpenAI. Мы также устанавливаем для параметра temperature значение 0,7, которое управляет «креативностью» языковой модели, и для параметра max_tokens значение 1024, которое ограничивает длину генерируемых примечаний к выпуску.

Наконец, мы распечатываем сгенерированные примечания к выпуску, используя метод response.choices[0].text.strip(), который извлекает сгенерированный текст из ответа OpenAI API.

С помощью этого кода мы можем легко создавать примечания к выпуску для любого набора данных о задачах, которые мы извлекаем из Azure DevOps. Далее, последний шаг, создание PDF-файла с нашими примечаниями к выпуску!

Создание PDF-документа из примечаний к выпуску

Теперь, когда мы создали примечания к выпуску с помощью API OpenAI, следующим шагом будет создание документа PDF из текста. В Python доступно множество библиотек для создания PDF-документов, но в этом руководстве мы будем использовать библиотеку reportlab.

Установка репортлаба

Вы можете установить reportlab с помощью pip:

pip install reportlab

Создание PDF-документа

Вот пример кода для создания PDF-документа из примечаний к выпуску:

В приведенном выше коде мы сначала импортируем необходимые модули из reportlab. Мы определяем наш образец примечаний к выпуску как строковую переменную. Затем мы создаем новый PDF-документ, используя метод canvas.Canvas, и указываем имя файла и размер страницы в качестве параметров.

Затем мы используем метод pdf_canvas.drawString, чтобы нарисовать примечания к выпуску в документе PDF. Мы предоставляем координаты, где мы хотим начать рисовать текст и текст для рисования.

Наконец, мы сохраняем документ PDF, используя метод pdf_canvas.save().

Заключение

Мы рассмотрели, как получать задачи из Azure DevOps и использовать их для создания примечаний к выпуску с помощью OpenAI. Мы узнали, как подготовить данные задачи для OpenAI, создать примечания к выпуску с помощью API OpenAI GPT-3 и создать документ в формате PDF для хранения примечаний к выпуску.

В этой статье показано, насколько мощным может быть сочетание различных технологий и API для оптимизации процесса разработки программного обеспечения. Используя Azure DevOps и OpenAI, мы смогли автоматизировать создание примечаний к выпуску и сэкономить драгоценное время.

Как и в случае с любой технологией, всегда есть возможности для улучшения и настройки в соответствии с вашими конкретными потребностями. Примеры кода, представленные в этой статье, могут служить отправной точкой для вашей собственной разработки и настройки.

В конце концов, возможность автоматизировать такие задачи, как создание примечаний к выпуску, может помочь командам работать более эффективно и, в конечном счете, предоставить своим клиентам более качественное программное обеспечение. Мы надеемся, что эта статья была информативной и полезной для тех, кто хочет интегрировать Azure DevOps и OpenAI в свой рабочий процесс разработки программного обеспечения!

Свяжитесь со мной в LinkedIn!