Guida alla integrazione senza soluzione di continuità di Rasa-Powered Chatbot con Confluence e Jira

Guida all'integrazione senza soluzione di continuità di Chatbot con Rasa-Powered con Confluence e Jira

Introduzione

I chatbot si sono evoluti in sofisticati agenti conversazionali guidati dall’intelligenza artificiale negli ultimi anni. Questa guida approfondisce la costruzione di un chatbot avanzato basato su Rasa specificamente progettato per rispondere alle domande degli utenti relative alle pagine di Confluence e ai ticket Jira. L’integrazione di Confluence e Jira porta notevoli vantaggi, ottimizzando il recupero delle informazioni e favorisce un ambiente di lavoro coeso. Confluence facilita la documentazione collaborativa, mentre Jira è un solido strumento di gestione dei progetti. Creando un chatbot che si integra in modo trasparente con queste piattaforme, si migliora l’accessibilità e si ottimizza l’efficienza per i team che collaborano nella creazione di contenuti e nella gestione dei progetti.

Obiettivi di apprendimento

In questo articolo imparerai:

  • Configurazione del progetto Rasa: Impara ad avviare un progetto Rasa, stabilendo le basi per lo sviluppo avanzato del chatbot.
  • Definizione degli intenti NLU: Definisci specifici intenti di comprensione del linguaggio naturale (NLU) per le query di Confluence e Jira, migliorando la comprensione del chatbot.
  • Sviluppo di azioni personalizzate: Crea azioni personalizzate in Python per interagire con le API di Confluence e Jira per funzionalità estese.
  • Formazione e test del modello: Comprendi il processo di formazione del modello, assicurati la generalizzazione del chatbot e utilizza i test iterativi per il miglioramento continuo.

Questo articolo è stato pubblicato come parte del Data Science Blogathon.

Concetti fondamentali

Rasa

Rasa, una piattaforma di intelligenza artificiale conversazionale open-source, permette agli sviluppatori di creare chatbot robusti e consapevoli del contesto. Oltre ai semplici sistemi basati su regole, Rasa utilizza l’apprendimento automatico per comprendere e rispondere a input utente complessi. Le sue capacità di elaborazione del linguaggio naturale e gli strumenti di gestione del dialogo rendono Rasa una soluzione versatile per la creazione di agenti conversazionali intelligenti.

Jira

Jira, sviluppato da Atlassian, è un famoso strumento di gestione dei progetti e di tracciamento degli issue. Ampiamente utilizzato nello sviluppo agile del software, Jira facilita la collaborazione efficiente organizzando le attività, tracciando gli issue e permettendo ai team di ottimizzare i loro flussi di lavoro. Le sue numerose funzionalità, come i workflow personalizzabili e la collaborazione in tempo reale, contribuiscono alla popolarità di Jira tra i team di sviluppo e i project manager. Le sue estensive RESTful API consentono l’integrazione senza soluzione di continuità con strumenti e applicazioni esterne, agevolando lo scambio di dati in tempo reale e l’automazione.

Confluence

Confluence, di nuovo sviluppato da Atlassian, è una piattaforma collaborativa che facilita la documentazione efficiente, la condivisione delle conoscenze e il lavoro di squadra all’interno delle organizzazioni. È uno spazio centralizzato in cui i team possono creare, condividere e collaborare su contenuti, rendendolo uno strumento essenziale per la documentazione dei progetti, appunti delle riunioni e la gestione generale delle informazioni. L’editing collaborativo in tempo reale consente a più membri del team di lavorare contemporaneamente sullo stesso documento. Grazie alle sue robuste funzionalità di ricerca, trovare informazioni pertinenti è efficiente. Confluence si integra senza soluzione di continuità con altri prodotti Atlassian come Jira, creando un ecosistema unificato di gestione dei progetti e documentazione.

Chatbot

Chatbots sono diventati fondamentali per le moderne interazioni digitali, fornendo risposte istantanee e personalizzate. Alimentati dall’intelligenza artificiale, i chatbot interpretano gli input degli utenti, comprendono il contesto e forniscono informazioni o azioni rilevanti. Dai supporti clienti all’automazione dei processi, i chatbot trasformano il modo in cui le aziende interagiscono con gli utenti, migliorando l’efficienza e l’esperienza utente. I chatbot utilizzano l’elaborazione del linguaggio naturale per identificare l’intento dell’utente, consentendo loro di rispondere in modo contestuale e accurato. Nel contesto di Rasa, le azioni personalizzate sono funzioni in Python che estendono la funzionalità del chatbot, consentendo di eseguire attività oltre il semplice riconoscimento dell’intento.

Prerequisiti

Prima di immergerci nel processo di sviluppo, assicuriamoci di avere gli strumenti e l’accesso necessari:

Python e Ambiente Virtuale

  • Assicurati di avere Python installato. Crea e attiva un ambiente virtuale utilizzando:
# Prompt dei comandi (Windows) o terminale (macOS/Linux)python -m venv myenv# Su Windows\myenv\Scripts\activate# Su macOS/Linuxsource myenv/bin/activate

Installare Rasa

  • Installare Rasa Open Source usando:
# Prompt dei comandi (Windows) o terminale (macOS/Linux)pip install rasa

Accesso a Confluence e Jira:

  • Assicurati di poter accedere a Confluence e Jira e di avere le autorizzazioni necessarie per recuperare informazioni tramite le loro API.

API di Confluence

  1. Genera il Token di Accesso Personale (PAT):
  • Accedi alla tua istanza di Confluence.
  • Vai alla tua immagine del profilo in basso a sinistra, quindi scegli “Impostazioni personali”.
  • Clicca su “Crea e gestisci token API”.
  • Crea un nuovo token API e tienilo al sicuro.

2. Recupera la chiave dello spazio: Avrai bisogno della chiave dello spazio per recuperare informazioni sulle pagine di Confluence. Puoi trovarla nell’URL quando navighi in uno spazio di Confluence.3. Endpoint API: L’endpoint API di Confluence sarà basato sull’URL dell’istanza di Confluence. Ad esempio, se il tuo Confluence è ospitato su https://your-confluence-instance.com, l’endpoint API potrebbe avere un aspetto simile a https://your-confluence-instance.com/rest/api/content.

API di Jira

1. Genera il token API:

  • Accedi all’istanza di Jira.
  • Vai alle “Impostazioni account” o alla “Sicurezza” (la posizione esatta potrebbe variare in base alla versione di Jira che stai utilizzando).
  • Crea un nuovo token API.

2. Endpoint API:

  • L’endpoint API di Jira di solito è basato sull’URL dell’istanza di Jira. Ad esempio, se il tuo Jira è ospitato su https://your-jira-instance.com, l’endpoint API potrebbe avere un aspetto simile a https://your-jira-instance.com/rest/api/latest/issue.

Costruire il Chatbot

Crea un Nuovo Progetto Rasa

Impostare un progetto Rasa comporta la creazione di una struttura di directory e l’inizializzazione del progetto. Questo passaggio è fondamentale per organizzare il processo di sviluppo del tuo chatbot. La struttura delle directory organizza vari aspetti del tuo chatbot, dai dati di addestramento alle azioni personalizzate. Comprendere lo scopo di ogni directory è cruciale per mantenere un progetto ben organizzato e scalabile. Questa organizzazione migliora la gestione del progetto e fornisce una chiara roadmap per future espansioni e miglioramenti.

# Prompt dei comandi: Crea un nuovo progetto Rasamkdir my_rasa_projectcd my_rasa_projectrasa init

Definire Intenti NLU per Confluence e Jira

Per consentire al nostro chatbot di capire le richieste degli utenti sulle pagine di Confluence e sui ticket di Jira, è necessario definire intenti di comprensione del linguaggio naturale (NLU). Fornisci esempi di richieste relative a Confluence e Jira nei dati di addestramento NLU. La ricchezza dei dati di addestramento influenza direttamente la capacità del chatbot di interpretare e rispondere accuratamente alle richieste degli utenti. Ad esempio, considera di aggiungere variazioni come “Puoi fornirmi informazioni su Confluence?” o “Dimmi dello stato dei ticket di Jira.” Questo migliora la capacità del modello di generalizzare e adattarsi a diverse frasi che gli utenti potrebbero utilizzare.

# File YAML che rappresenta i dati di addestramento per il componente NLU di un chatbot Rasa# data/nlu.ymlversione: "2.0"nlu:- motivo: query_confluence  esempi: |    - Dimmi di Confluence    - Come posso trovare informazioni su Confluence?    - Cos'è una pagina di Confluence?- motivo: query_jira  esempi: |    - Come posso controllare i miei ticket di Jira?    - Dimmi dello stato dei ticket di Jira    - Quali sono i miei problemi aperti in Jira?

Comprendere le sfumature dell’input dell’utente è fondamentale. Fornendo un robusto insieme di esempi, si dà al proprio chatbot la capacità di gestire efficacemente una vasta gamma di query. Si consiglia di incorporare ulteriori utenti virtuali e scenari per garantire la versatilità del chatbot nell’uso reale.

Creare un’azione personalizzata per Confluence e Jira

Le azioni personalizzate in Rasa ci consentono di estendere la funzionalità del nostro chatbot. Creare un’azione personalizzata (actions.py) per gestire le query sulle pagine di Confluence e i ticket di Jira. Questa azione interagirà con le rispettive API per recuperare informazioni. È essenziale approfondire le complessità delle interazioni con le API, la gestione degli errori e l’elaborazione delle risposte per garantire l’affidabilità e la resilienza del chatbot.

Espandere le azioni personalizzate per gestire una gamma più ampia di scenari. Ad esempio, è possibile implementare una strategia di risposta per i casi in cui non vengono trovate pagine di Confluence o ticket di Jira. Questo approccio proattivo migliora l’esperienza dell’utente e offre interazioni più significative.

# File Python: Azione personalizzata per Confluence e 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]]:        # Sostituire con i dettagli di Confluence e Jira        confluence_api_url = 'INDIRIZZO_API_CONFLUENCE/rest/api/content'        jira_api_url = 'INDIRIZZO_API_JIRA/rest/api/latest/issue'        confluence_space_key = 'CONFLUENCE_SPACE_KEY'        personal_access_token = 'PERSONAL_ACCESS_TOKEN'        user_query = tracker.latest_message.get('text')        headers = {'Authorization': f'Bearer {personal_access_token}'}

# Gestire la query di 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', 'Nessun titolo')                    url = result.get('_links', {}).get('webui', '')response_message =  "Ho trovato informazioni su '{title}'. Puoi trovarle [qui]({url})."else: response_message = "Non ho trovato alcuna informazione su quell'argomento in Confluence."else: response_message = "Mi dispiace, ma c'è stato un problema nel recuperare le informazioni da Confluence." 

# Gestire la query di 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', 'Nessuna chiave') summary = result.get('fields', {}).get('summary', 'Nessun riepilogo') response_message = f"Ho trovato informazioni sul problema Jira '{issue_key} - {summary}'."else: response_message = "Mi dispiace, ma c'è stato un problema nel recuperare le informazioni da Jira."else: response_message = "Non sono sicuro di come gestire quella query." dispatcher.utter_message(response_message)return []

Raffinare e ampliare continuamente queste azioni per soddisfare le esigenze degli utenti in evoluzione e le nuove possibilità di integrazione.

Configurare Rasa

La configurazione del proprio progetto Rasa è fondamentale per determinare il comportamento del chatbot. Il file config.yml contiene impostazioni per l’addestramento dei modelli NLU e di gestione del dialogo. Esplorare diverse configurazioni e sperimentare per ottimizzare le prestazioni del chatbot in base alle proprie esigenze uniche.

Il file di configurazione svolge il ruolo di centro di controllo per il comportamento del chatbot. Approfondire i vari parametri, sperimentare con diverse pipeline di apprendimento automatico e regolare le impostazioni per ottenere l’equilibrio desiderato tra precisione ed efficienza.

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

Allenare il modello Rasa

Allenare il modello Rasa è fondamentale per preparare il tuo chatbot per gli scenari del mondo reale. Il processo di allenamento coinvolge l’esposizione del modello ai dati di allenamento, consentendogli di imparare e generalizzare dagli esempi. Rivedere e aggiornare regolarmente i dati di allenamento per migliorare nel tempo l’accuratezza del modello.

Considera l’implementazione di un robusto sistema di versioning per i tuoi dati di allenamento. Questo garantisce la tracciabilità e facilita l’individuazione di set di dati specifici che contribuiscono a miglioramenti o sfide nelle prestazioni del tuo chatbot.

# Prompt dei comandi (Windows) o terminale (macOS/Linux)rasa train

Eseguire il server delle azioni di Rasa

Il server delle azioni di Rasa gestisce l’esecuzione delle azioni personalizzate. Eseguire un server delle azioni dedicato garantisce la reattività del tuo chatbot, consentendogli di svolgere compiti complessi, come recuperare dati in tempo reale da Confluence e Jira.

Esplora la scalabilità del tuo server delle azioni mentre il tuo chatbot guadagna slancio. Considera le opzioni di bilanciamento del carico e ridondanza per garantire un’esperienza utente senza interruzioni anche durante l’uso intensivo.

# Prompt dei comandi: Esegui il server delle azioni di Rasa rasa run actions

Interagire con il tuo chatbot

Con il server delle azioni di Rasa in esecuzione, apri un nuovo terminale e avvia la shell di Rasa. Questa shell interattiva facilita la comunicazione con il tuo chatbot, consentendoti di testare vari scenari e valutare le sue risposte a diverse query. Il testing iterativo è essenziale per identificare aree di miglioramento e perfezionamento.

rasa shell

Output di esempio:

Utente: Qual è lo stato del nostro progetto attuale?Chatbot: Il progetto attuale sta progredendo bene. Abbiamo completato l'80% dei compiti.Utente: Puoi fornire informazioni sulla documentazione del nostro progetto in Confluence?Chatbot: La documentazione del progetto è disponibile su Confluence. Puoi trovare informazioni dettagliate, [qui](link-to-confluence-page).Utente: Crea un nuovo problema Jira per la pianificazione dello sprint imminente.Chatbot: Un nuovo problema Jira per la pianificazione dello sprint imminente è stato creato con successo. L'ID del problema è PROJ-123. C'è qualcos'altro che desideri chiedere?

Mentre perfezioni il tuo chatbot, considera l’esplorazione di funzionalità avanzate come il riconoscimento delle entità per estrarre informazioni specifiche dalle query degli utenti.

Casi d’uso

L’integrazione di Confluence e Jira in un chatbot basato su Rasa offre una gamma di casi d’uso convincenti, ridefinendo la collaborazione e la gestione dei progetti:

1. Gestione di progetto: i chatbot integrati con Jira possono fornire aggiornamenti in tempo reale sullo stato del progetto, il tracciamento dei problemi e il progresso dello sprint. Puoi richiedere informazioni su problemi specifici di Jira, scadenze imminenti e assegnazioni di squadra.

2. Accesso alla base di conoscenza: i chatbot integrati in Confluence consentono un accesso rapido alla documentazione, alle FAQ e alla conoscenza legata al progetto.

3. Report automatizzati: i chatbot possono generare report automatizzati sui traguardi del progetto, il completamento dei compiti e la produttività complessiva del team. Migliorano l’efficienza riducendo gli sforzi manuali e ottimizzando i processi di gestione delle attività.

Rischi e considerazioni

Assicurati di gestire in modo sicuro i token di accesso personale e le chiavi API per impedire l’accesso non autorizzato ai dati di Confluence e Jira. Presta attenzione al tipo di informazioni condivise tramite il chatbot, specialmente quando riguardano dettagli sensibili del progetto o dati dell’utente. Gli utenti potrebbero aver bisogno di istruzioni su come interagire in modo efficace con il chatbot. Fornisci istruzioni chiare ed esempi per migliorare l’esperienza utente. Implementa meccanismi robusti di gestione degli errori nelle tue azioni personalizzate per gestire con eleganza situazioni in cui le pagine di Confluence o i problemi di Jira non vengono trovati.

Conclusione

In conclusione, questa guida esaustiva illustra il percorso per la costruzione di un chatbot avanzato basato su Rasa, progettato per affrontare le query degli utenti relative alle pagine di Confluence e ai ticket di Jira. L’articolo illumina i notevoli vantaggi del razionalizzare il recupero delle informazioni e favorisce un ambiente di lavoro coeso esplorando l’integrazione di Confluence e Jira nel chatbot. Dalla configurazione di un progetto Rasa alla definizione degli intenti NLU fino allo sviluppo di azioni personalizzate per le interazioni API, acquisirai una comprensione olistica del processo di creazione del chatbot. La guida mette in evidenza la configurazione di Rasa per una performance ottimale, l’allenamento del modello con diversi esempi e il testing iterativo per un continuo perfezionamento. Questo approccio non solo migliora l’accessibilità per la creazione collaborativa di contenuti e la gestione dei progetti, ma getta anche le basi per ulteriori esplorazioni e personalizzazioni nel panorama in continua evoluzione dell’IA conversazionale.

Punti salienti

  • Ottieni spunti pratici per la creazione di un chatbot avanzato utilizzando Rasa, con particolare attenzione alle applicazioni personalizzate per l’integrazione di Confluence e Jira.
  • Comprendi i vantaggi dell’integrazione di Confluence e Jira, semplificando il recupero delle informazioni e promuovendo un ambiente di lavoro coeso ed efficiente.
  • Esplora le tecniche di configurazione per ottimizzare il progetto Rasa, migliorando la comprensione del linguaggio naturale (NLU) e la gestione del dialogo.
  • Abbraccia il testing iterativo e l’addestramento del modello per un continuo perfezionamento, garantendo l’adattabilità ed efficacia del chatbot nel tempo.

Domande frequenti

I media mostrati in questo articolo non sono di proprietà di Analytics Vidhya e vengono utilizzati a discrezione dell’autore.