Чатбот, работающий на платформе Rasa Полное руководство по интеграции Confluence и Jira

Интеграция Confluence и Jira Полное руководство по использованию чатбота на платформе Rasa

Введение

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

Цели обучения

В этой статье вы узнаете:

  • Настройка проекта Rasa: Узнайте, как создать проект Rasa, чтобы обеспечить основу для развития продвинутого чатбота.
  • Определение намерений NLU: Определите конкретные намерения по пониманию естественного языка (NLU) для запросов Confluence и Jira, улучшая понимание чатботом.
  • Разработка пользовательских действий: Создайте пользовательские действия на основе Python для взаимодействия с API Confluence и Jira для расширенного функционала.
  • Обучение и тестирование модели: Познакомьтесь с процессом обучения модели, обеспечьте общность работы чатбота и используйте итеративное тестирование для непрерывного улучшения.

Эта статья была опубликована в рамках Data Science Blogathon.

Основные понятия

Rasa

Rasa, открытая платформа для разговорных искусственных интеллектов, позволяет разработчикам создавать надежные, осознающие контекст чатботы. В отличие от простых систем на основе правил, Rasa использует машинное обучение для понимания и отклика на сложные входы пользователя. Его возможности по обработке естественного языка и инструменты управления диалогами делают Rasa универсальным решением для создания интеллектуальных разговорных агентов.

Jira

Jira, разработанный компанией Atlassian, является известным инструментом управления проектами и отслеживания проблем. Широко используется в гибкой разработке программного обеспечения, Jira облегчает совместную работу, организацию задач, отслеживание проблем и позволяет командам оптимизировать свой рабочий процесс. Его функциональные возможности, такие как настраиваемые рабочие процессы и совместное редактирование в реальном времени, способствуют популярности Jira среди команд разработки и управления проектами. Благодаря обширным RESTful API Jira позволяет без проблем интегрироваться с внешними инструментами и приложениями, обеспечивая обмен данными в режиме реального времени и автоматизацию.

Confluence

Confluence, также разработанный компанией Atlassian, является совместной платформой, облегчающей эффективную документацию, обмен знаниями и сотрудничество внутри организаций. Это централизованное пространство, где команды могут создавать, совместно использовать и сотрудничать над контентом, что делает его важным инструментом для документации проекта, заметок собраний и управления общими знаниями. Возможность совместного редактирования в режиме реального времени позволяет нескольким членам команды одновременно работать над одним документом. Благодаря мощным возможностям поиска в Confluence, поиск соответствующей информации осуществляется эффективно. Confluence без проблем интегрируется с другими продуктами Atlassian, такими как Jira, создавая единое экосистему управления проектами и документацией.

Чатбот

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

Необходимые предпосылки

Прежде чем мы приступим к процессу разработки, убедимся, что у нас есть необходимые инструменты и доступ:

Python и виртуальная среда

  • Убедитесь, что у вас установлен Python. Создайте и активируйте виртуальную среду с помощью команд:
# Командная строка (Windows) или терминал (macOS/Linux)
python -m venv myenv
# На Windows.
\myenv\Scripts\activate
# На macOS/Linux
source myenv/bin/activate

Установка Rasa

  • Установите Rasa Open Source, используя следующую команду:
# Командная строка (Windows) или терминал (macOS/Linux)
pip install rasa

Доступ к Confluence и Jira:

  • Убедитесь, что у вас есть доступ к Confluence и Jira и необходимые разрешения для получения информации через их API.

Confluence API

  • Ссылка на документацию: Confluence REST API
  • Шаги для создания API:
  1. Создайте персональный токен доступа (PAT):
  • Войдите в свой экземпляр Confluence.
  • Перейдите к вашей аватарке профиля в левом нижнем углу и выберите “Личные настройки”.
  • Нажмите на “Создать и управлять API-токенами”.
  • Создайте новый API-токен и сохраните его в надежном месте.

2.  Получите ключ пространства: Вам понадобится ключ пространства для получения информации о страницах Confluence. Вы можете найти его в URL-адресе при переходе на пространство Confluence.3.  Конечная точка API: Конечная точка API Confluence будет основана на URL-адресе вашего экземпляра Confluence. Например, если ваш Confluence размещен по адресу https://your-confluence-instance.com, конечная точка API может выглядеть как https://your-confluence-instance.com/rest/api/content.

Jira API

  • Ссылка на документацию: Jira Cloud REST API
  • Шаги для создания API:

1. Создайте токен API:

  • Войдите в свой экземпляр Jira.
  • Перейдите в “Настройки учетной записи” или “Безопасность” (точное местоположение может варьироваться в зависимости от версии Jira).
  • Создайте новый токен API.

2. Конечная точка API:

  • Обычно конечная точка API Jira основана на URL-адресе вашего экземпляра Jira. Например, если ваш Jira размещен по адресу https://your-jira-instance.com, конечная точка API может выглядеть как https://your-jira-instance.com/rest/api/latest/issue.

Создание Чатбота

Создание нового проекта Rasa

Настройка проекта Rasa включает в себя создание структуры каталогов и инициализацию проекта. Этот шаг является основой для организации процесса разработки вашего чатбота. Структура каталогов организует различные аспекты вашего чатбота, от обучающих данных до пользовательских действий. Понимание назначения каждого каталога является важным условием для поддержания хорошо организованного и масштабируемого проекта. Эта организация улучшает управление проектом и предоставляет четкую дорожную карту для будущих расширений и улучшений.

# Командная строка: Cоздание нового проекта Rasa
mkdir my_rasa_project
cd my_rasa_project
rasa init

Определение NLU-намерений для Confluence и Jira

Для того, чтобы наш чатбот мог понимать запросы пользователей о страницах Confluence и задачах Jira, нам необходимо определить намерения естественного языка (NLU). Предоставьте примеры запросов, связанных с Confluence и Jira, в обучающих данных NLU. Богатство ваших обучающих данных напрямую влияет на способность чатбота интерпретировать и реагировать на запросы пользователей точно. Например, рассмотрите добавление вариаций, таких как «Можете предоставить информацию о Confluence?» или «Расскажите о статусах задач Jira». Это улучшает способность модели к обобщению и допускает различные фразировки, которые могут использовать пользователи.

# YAML-файл, представляющий обучающие данные для компонента NLU чатбота Rasa
# data/nlu.yml
version: "2.0"
nlu:
- intent: query_confluence
  examples: |
    - Расскажи мне о Confluence
    - Как я могу найти информацию о Confluence?
    - Что такое страница Confluence?
- intent: query_jira 
  examples: |
    - Как я могу проверить свои задачи Jira? 
    - Расскажи мне о статусе задачи Jira
    - Какие у меня открытые задачи Jira?

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

Создание пользовательского действия для Confluence и Jira

Пользовательские действия в Rasa позволяют расширять функциональность нашего чатбота. Создайте пользовательское действие (actions.py), чтобы обрабатывать запросы о страницах Confluence и задачах Jira. Это действие будет взаимодействовать с соответствующими API для получения информации. Важно изучить особенности взаимодействия с API, обработки ошибок и обработки ответов, чтобы обеспечить надежность и стойкость вашего чатбота.

Расширьте ваши пользовательские действия для обработки более широкого спектра сценариев. Например, вы можете реализовать стратегию ответа в случае, когда страницы Confluence или задачи Jira не найдены. Такой превентивный подход повышает пользовательский опыт и обеспечивает более значимые взаимодействия.

# Файл Python: Пользовательское действие для Confluence и Jira# actions.pyimport requestsfrom typing import Any, Text, Dict, Listfrom rasa_sdk import Action, Trackerfrom rasa_sdk.executor import CollectingDispatcherclass ActionQueryConfluenceJira(Action):    def name(self) -> Text:        return "action_query_confluence_jira"    def run(        self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any]    ) -> List[Dict[Text, Any]]:        # Замените своими данными Confluence и Jira        confluence_api_url = 'YOUR_CONFLUENCE_API_URL/rest/api/content'        jira_api_url = 'YOUR_JIRA_API_URL/rest/api/latest/issue'        confluence_space_key = 'YOUR_CONFLUENCE_SPACE_KEY'        personal_access_token = 'YOUR_PERSONAL_ACCESS_TOKEN'        user_query = tracker.latest_message.get('text')        headers = {'Authorization': f'Bearer {personal_access_token}'}

# Обрабатываем запрос Confluence        if tracker.latest_message['intent']['name'] == 'query_confluence':            params = {'spaceKey': confluence_space_key, 'cql': 'text~"{}"'.format(user_query)}            response = requests.get(confluence_api_url, headers=headers, params=params)        if response.status_code == 200:                results = response.json().get('results', [])               if results:                    result = results[0]                    title = result.get('title', 'Без названия')                    url = result.get('_links', {}).get('webui', '')response_message =  "Я нашел информацию о '{title}'. Вы можете найти ее [здесь]({url})."else: response_message = "Я не смог найти никакой информации по этой теме в Confluence."else: response_message = "Извините, возникла проблема с получением информации из Confluence." 

# Обрабатываем запрос Jiraelif tracker.latest_message['intent']['name'] == 'query_jira': params = {'jql': 'text~"{}"'.format(user_query)} response = requests.get(jira_api_url, headers=headers, params=params)if response.status_code == 200: result = response.json() issue_key = result.get('key', 'Нет ключа') summary = result.get('fields', {}).get('summary', 'Нет описания') response_message = f"Я нашел информацию о задаче Jira '{issue_key} - {summary}'."else: response_message = "Извините, возникла проблема с получением информации из Jira."else: response_message = "Я не уверен, как обработать этот запрос." dispatcher.utter_message(response_message)return []

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

Настройка Rasa

Настройка вашего проекта Rasa имеет ключевое значение для определения поведения чатбота. Файл config.yml содержит настройки для обучения моделей NLU и управления диалогами. Изучите различные конфигурации и экспериментируйте для оптимизации производительности вашего чатбота в соответствии с вашими уникальными требованиями.

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

# config.ymllanguage: "en"pipeline:  - name: "WhitespaceTokenizer"  - name: "RegexFeaturizer"  - name: "CRFEntityExtractor"  - name: "CountVectorsFeaturizer"  - name: "EmbeddingIntentClassifier"

Обучите модель Rasa

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

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

# Командная строка (Windows) или терминал (macOS/Linux)rasa train

Запустите Rasa Action Server

Rasa action server отвечает за выполнение пользовательских действий. Запуск выделенного action server обеспечивает отзывчивость вашего чат-бота, позволяя ему выполнять сложные задачи, такие как получение данных в реальном времени с Confluence и Jira.

Исследуйте масштабируемость вашего action server, по мере того как ваш чат-бот набирает популярность. Рассмотрите варианты балансировки нагрузки и обеспечения резервности, чтобы обеспечить бесперебойное пользовательское взаимодействие, даже во время пиковой нагрузки.

# Командная строка: Запустите Rasa action serverrasa run actions

Взаимодействуйте с вашим чат-ботом

С запущенным Rasa action server откройте новый терминал и запустите Rasa shell. Эта интерактивная оболочка облегчает общение с вашим чат-ботом, позволяя вам тестировать различные сценарии и оценивать его реакции на различные запросы. Итеративное тестирование является важным для выявления областей для улучшения и совершенствования.

rasa shell

Пример вывода:

Пользователь: Каков статус нашего текущего проекта?Чат-бот: Текущий проект развивается хорошо. Мы завершили 80% задач.Пользователь: Можете предоставить информацию о нашей документации проекта в Confluence?Чат-бот: Документация проекта доступна в Confluence. Вы можете найти подробную информацию [здесь](ссылка-на-страницу-confluence).Пользователь: Создайте новую задачу Jira для планирования предстоящего спринта.Чат-бот: Новая задача Jira для планирования предстоящего спринта была успешно создана. Идентификатор задачи: PROJ-123. Хотите спросить что-то еще?

При совершенствовании вашего чат-бота рассмотрите использование продвинутых функций, таких как распознавание сущностей, для извлечения конкретной информации из запросов пользователей.

Варианты использования

Интеграция Confluence и Jira в чат-бот, основанный на Rasa, открывает широкий спектр удивительных вариантов использования, переопределяя сотрудничество и управление проектами:

1. Управление проектами: Чат-боты, интегрированные с Jira, могут предоставлять обновления в режиме реального времени о статусе проекта, отслеживании задач и прогрессе спринтов. Вы можете получать информацию о конкретных задачах Jira, предстоящих сроках и назначениях команды.

2. Доступ к базе знаний: Чат-боты, интегрированные с Confluence, позволяют быстро получать доступ к документации, ЧЗВ и проектно-связанному знанию.

3. Автоматизированная отчетность: Чат-боты могут генерировать автоматические отчеты о вехах проекта, завершении задач и общей производительности команды. Увеличивают эффективность, позволяя сократить ручные усилия и оптимизировать процессы управления задачами.

Риски и соображения

Обеспечьте безопасную обработку личных ключей доступа и ключей API, чтобы предотвратить несанкционированный доступ к данным Confluence и Jira. Будьте осторожны с типом информации, передаваемой через чат-бот, особенно когда речь идет о конфиденциальных данных проекта или данных пользователей. Пользователям может потребоваться руководство по эффективному взаимодействию с чат-ботом. Предоставьте четкие инструкции и примеры, чтобы улучшить пользовательский опыт. Реализуйте надежные механизмы обработки ошибок в ваших пользовательских действиях, чтобы грамотно управлять ситуациями, когда страницы Confluence или задачи Jira не найдены.

Заключение

В заключение, этот исчерпывающий руководство поможет вам создать продвинутый чат-бот на основе Rasa, который идеально подойдет для ответов на запросы пользователей, связанные с страницами Confluence и Jira-задачами. Статья проливает свет на значительные преимущества систематизации поиска информации и создания единой рабочей среды, исследуя интеграцию Confluence и Jira в чат-бот. Начиная с создания проекта Rasa и определения намерений обработки естественного языка (NLU), заканчивая разработкой пользовательских действий для взаимодействия с API, вы получите голистическое понимание процесса создания чат-бота. Руководство подчеркивает настройку Rasa для достижения оптимальной производительности, обучение модели на разнообразных примерах и итеративное тестирование для непрерывного совершенствования. Такой подход не только повышает доступность для сотрудничества при создании контента и управлении проектами, но и положит основу для дальнейшего исследования и настройки в развивающейся сфере разговорного ИИ.

Основные выводы

  • Получите практические инсайты в создание продвинутого чат-бота с использованием Rasa, с акцентом на настраиваемые приложения для интеграции Confluence и Jira.
  • Поймите преимущества интеграции Confluence и Jira, оптимизируя извлечение информации и создавая единую и эффективную рабочую среду.
  • Исследуйте техники конфигурации для оптимизации проекта Rasa с целью улучшения понимания естественного языка (NLU) и управления диалогом.
  • Примите итеративное тестирование и обучение моделей для непрерывного совершенствования, обеспечивая адаптивность и эффективность чат-бота со временем.

Часто задаваемые вопросы

Показанные в этой статье материалы не принадлежат Analytics Vidhya и используются поc усмотрению автора.