Crea un modello di bot di servizio clienti alimentato da una base di conoscenze (FM) con agenti per Amazon Bedrock

Crea un modello di bot di assistenza clienti basato su una piattaforma di apprendimento automatico (FM) con agenti personalizzati per Amazon Bedrock

Dall’arricchimento dell’esperienza conversazionale all’assistenza degli agenti, ci sono molti modi in cui l’intelligenza artificiale generativa (AI) e i modelli fondamentali (FMs) possono aiutare a fornire un supporto più rapido e migliore. Con la crescente disponibilità e diversità dei FMs, è difficile sperimentare e tenersi aggiornati con le ultime versioni dei modelli. Amazon Bedrock è un servizio completamente gestito che offre una scelta di FMs ad alte prestazioni da aziende leader nel settore dell’AI come AI21 Labs, Anthropic, Cohere, Meta, Stability AI e Amazon. Con le capacità complete di Amazon Bedrock, è possibile sperimentare facilmente una varietà di FMs di prim’ordine, personalizzarli privatamente con i propri dati utilizzando tecniche come il fine-tuning e la generazione aiutata da recupero (RAG).

Agenti per Amazon Bedrock

A luglio, AWS ha annunciato l’anteprima degli agenti per Amazon Bedrock, una nuova capacità per gli sviluppatori di creare agenti completamente gestiti con pochi clic. Gli agenti estendono i FMs per eseguire compiti aziendali complessi, dalla prenotazione dei viaggi al processing delle richieste di assicurazioni, dalla creazione di campagne pubblicitarie alla gestione dell’inventario, tutto senza scrivere codice. Con gli agenti completamente gestiti, non bisogna preoccuparsi della creazione o della gestione dell’infrastruttura.

In questo articolo, forniamo una guida passo passo con i blocchi di costruzione per creare un bot di servizio clienti. Utilizziamo un modello di generazione di testo (Anthropic Claude V2) e agenti per Amazon Bedrock per questa soluzione. Forniamo un template di AWS CloudFormation per creare le risorse necessarie per realizzare questa soluzione. Quindi, ti guidiamo attraverso i passaggi per creare un agente per Amazon Bedrock.

ReAct Prompting

I FMs determinano come risolvere i compiti richiesti dall’utente utilizzando una tecnica chiamata ReAct. È un paradigma generale che combina ragionamento e azione con i FMs. ReAct porta i FMs a generare tracce di ragionamento verbale e azioni per un compito. Questo consente al sistema di effettuare ragionamenti dinamici per creare, mantenere e adattare piani di azione incorporando ulteriori informazioni nel ragionamento. I prompt strutturati includono una sequenza di esempi di domande-pensieri-azioni-osservazioni.

  • La domanda è il compito richiesto dall’utente o il problema da risolvere.
  • Il pensiero è un passo di ragionamento che aiuta il FM a capire come affrontare il problema e identificare un’azione da intraprendere.
  • L’azione è un’API che il modello può richiamare da un insieme di API consentite.
  • L’osservazione è il risultato dell’esecuzione dell’azione.

Componenti degli agenti per Amazon Bedrock

Nelle retrovie, gli agenti per Amazon Bedrock automatizzano il processo di ingegnerizzazione degli stimoli e l’orchestrazione dei compiti richiesti dall’utente. Possono integrare in modo sicuro gli stimoli con informazioni specifiche aziendali per fornire risposte all’utente in linguaggio naturale. L’agente suddivide il compito richiesto dall’utente in più passi e coordina i sottocompiti con l’aiuto dei FMs. I gruppi di azioni sono compiti che l’agente può eseguire autonomamente. I gruppi di azioni sono mappati su una funzione di AWS Lambda e uno schema API correlato per effettuare chiamate API. Il diagramma seguente rappresenta la struttura dell’agente.

Componenti degli agenti per Amazon Bedrock

Panoramica della soluzione

Utilizziamo come caso di studio un rivenditore di scarpe per creare il bot di servizio clienti. Il bot aiuta i clienti a acquistare scarpe fornendo opzioni attraverso una conversazione umanistica. I clienti conversano con il bot in linguaggio naturale con più passaggi che invocano API esterne per completare i sottocompiti. Il diagramma seguente illustra il flusso di processo di esempio.

Diagramma di sequenza per caso d'uso

Il seguente diagramma rappresenta un’architettura di alto livello di questa soluzione.

Diagramma di architettura della soluzione
  1. Puoi creare un agente con FMs supportati da Amazon Bedrock come Anthropic Claude V2.
  2. Allegare uno schema API, che risiede in un bucket di Amazon Simple Storage Service (Amazon S3), e una funzione Lambda contenente la logica aziendale all’agente. (Nota: Questo è un passo di configurazione one-time.)
  3. L’agente utilizza le richieste dei clienti per creare un prompt utilizzando il framework ReAct. Poi utilizza lo schema API per invocare il codice corrispondente nella funzione Lambda.
  4. Puoi eseguire una varietà di attività, tra cui inviare notifiche email, scrivere su database e attivare API dell’applicazione nelle funzioni Lambda.

In questo post, utilizziamo la funzione Lambda per recuperare i dettagli dei clienti, elencare le scarpe che corrispondono all’attività preferita dal cliente e infine effettuare ordini. Il nostro codice è supportato da un database SQLite in memoria. Puoi utilizzare costrutti simili per scrivere su uno store di dati persistente.

Prerequisiti

Per implementare la soluzione fornita in questo post, è necessario disporre di un account AWS e di accesso ad Amazon Bedrock con agenti abilitati (attualmente in anteprima). Utilizzare il modello AWS CloudFormation per creare il set di risorse necessario per la soluzione.

us-east-1 Stack CloudFormation

Il modello CloudFormation crea due ruoli IAM. Aggiorna questi ruoli per applicare le autorizzazioni di privilegio minimo come discusso in Pratiche di sicurezza migliori. Clicca qui per scoprire quali funzionalità IAM sono disponibili per l’uso con agenti per Amazon Bedrock.

  1. LambdaBasicExecutionRole con accesso completo a Amazon S3 e accesso a CloudWatch per il logging.
  2. AmazonBedrockExecutionRoleForAgents con accesso completo a Amazon S3 e accesso completo a Lambda.

Importante: Gli agenti per Amazon Bedrock devono avere il nome del ruolo preceduto da AmazonBedrockExecutionRoleForAgents_*

Configurazione agenti Bedrock

Nelle prossime due sezioni, ti guideremo nella creazione e nel test di un agente.

Crea un agente per Amazon Bedrock

Per creare un agente, apri la console Amazon Bedrock e scegli Agenti nel riquadro di navigazione a sinistra. Quindi seleziona Crea Agente.

Questo avvia il flusso di creazione dell’agente.

  1. Fornire dettagli sull’agente: Assegnare un nome e una descrizione (opzionale) all’agente. Selezionare il ruolo di servizio creato dalla stack di CloudFormation e selezionare Avanti.
Dettagli agente
  1. Selezionare un modello di base: Nella schermata Seleziona modello, selezionare un modello. Fornire istruzioni chiare e precise all’agente su quali compiti svolgere e come interagire con gli utenti.

Seleziona modello di base

  1. Aggiungi gruppi di azioni: Un’azione è un compito che l’agente può svolgere mediante chiamate API. Un insieme di azioni costituisce un gruppo di azioni. Fornire uno schema API che definisce tutte le API nel gruppo di azioni. È necessario fornire uno schema API nel formato JSON OpenAPI. La funzione Lambda contiene la logica di business necessaria per effettuare le chiamate API. È necessario associare una funzione Lambda a ciascun gruppo di azioni.

Assegnare un nome al gruppo di azioni e una descrizione per l’azione. Selezionare la funzione Lambda, fornire un file di schema API e selezionare Avanti.

Gruppi di azioni agente
  1. Nel passaggio finale, rivedere la configurazione dell’agente e selezionare Crea agente.

Testa e distribuisci agenti per Amazon Bedrock

  1. Testare l’agente: Dopo la creazione dell’agente, viene visualizzata una finestra di dialogo con una panoramica dell’agente e una bozza di lavoro. La console di Amazon Bedrock fornisce un’interfaccia utente per testare l’agente.

  1. Distribuire: Dopo il test, è possibile distribuire l’agente. Per distribuire un agente nell’applicazione, è necessario creare un alias. Amazon Bedrock crea automaticamente una versione per tale alias.

Le seguenti azioni si verificano con la configurazione dell’agente precedente e il codice Lambda fornito in questo post:

  1. L’agente crea una richiesta in base alle istruzioni fornite dallo sviluppatore (come ad esempio “Sei un agente che aiuta i clienti a acquistare scarpe.”), agli schemi API necessari per completare i compiti e ai dettagli delle fonti di dati. La creazione automatica della richiesta risparmia settimane di sperimentazione con richieste per diversi modelli di base.
  2. L’agente orchestre il compito richiesto dall’utente, come ad esempio “Sto cercando delle scarpe”, suddividendolo in sotto-compiti più piccoli, come ottenere i dettagli del cliente, abbinare l’attività preferita dal cliente con l’attività delle scarpe e effettuare ordini. L’agente determina la sequenza corretta delle attività e gestisce gli errori lungo il percorso.

La seguente immagine mostra alcuni esempi di risposte dell’agente.

Esempi di risposte dell'agente

Selezionando Mostra traccia per ogni risposta, una finestra di dialogo mostra la tecnica di ragionamento utilizzata dall’agente e la risposta finale generata da FM.

Traccia dell'agente 1
Traccia dell'agente 2
Traccia dell'agente 3

Pulizia

Per evitare addebiti futuri, eliminare le risorse. Puoi farlo eliminando lo stack dalla console di CloudFormation.

Elimina stack di CloudFormation

Fai pure il download e prova il codice utilizzato in questo post dal repository GitHub agents for Amazon Bedrock. Puoi anche invocare gli agenti per Amazon Bedrock in modo programmato; un esempio di notebook Jupyter è disponibile nel repository.

Conclusioni

Gli agenti per Amazon Bedrock possono aiutarti a incrementare la produttività, migliorare l’esperienza del servizio clienti o automatizzare le attività di DevOps. In questo post, ti abbiamo mostrato come configurare gli agenti per Amazon Bedrock per creare un servizio clienti bot.

Ti incoraggiamo a saperne di più attraverso la revisione delle funzionalità aggiuntive di Amazon Bedrock. Puoi utilizzare il codice di esempio fornito in questo post per creare la tua implementazione. Prova il nostro workshop per ottenere un’esperienza pratica con Amazon Bedrock.