{"id":7549,"date":"2025-01-15T08:00:00","date_gmt":"2025-01-15T07:00:00","guid":{"rendered":"https:\/\/blog.besharp.it\/?p=7549"},"modified":"2025-01-15T14:46:45","modified_gmt":"2025-01-15T13:46:45","slug":"amazon-bedrock-sorry-im-unable-to-assist-you-with-this-request-indagine-e-risoluzione-del-misterioso-errore","status":"publish","type":"post","link":"https:\/\/blog.besharp.it\/it\/amazon-bedrock-sorry-im-unable-to-assist-you-with-this-request-indagine-e-risoluzione-del-misterioso-errore\/","title":{"rendered":"Amazon Bedrock: \u201cSorry, I\u2019m unable to assist you with this request\u201d. Indagine e risoluzione del misterioso errore"},"content":{"rendered":"\n

“Quando hai eliminato l’impossibile, ci\u00f2 che rimane, per quanto improbabile, deve essere la verit\u00e0.”<\/em><\/p>\n\n\n\n

Sherlock Holmes<\/p>\n\n\n\n

Avere un assistente (lo chiameremo Watson!) che ci aiuti a recuperare informazioni e che risponda alle nostre domande \u00e8 sempre utile. Si sa, cercare all’interno di vaste documentazioni (Knowledge Base) pu\u00f2 essere un compito molto impegnativo in termini di tempo.<\/p>\n\n\n\n

Per fortuna, oggi i Large Language Model (LLM) sono qui per aiutarci… Almeno fino a che non si rifiutano di fare il loro lavoro!<\/p>\n\n\n\n

Recentemente, ci siamo imbattuti nel misterioso errore \u201cSorry, I\u2019m unable to assist you with this request\u201d dato dal modello quando si esegue programmaticamente una query \u201cretrieve&generate\u201d utilizzando Amazon Bedrock e la libreria Python boto3.<\/p>\n\n\n\n

TL;DR<\/h2>\n\n\n\n

Utilizzare la query boto3 Amazon Bedrock \u201cretrieve&generate\u201d fornendo un prompt template con il placeholder $output_format_instructions$ gi\u00e0 valutato e creare un parser XML.<\/p>\n\n\n\n

In questo modo si otterr\u00e0 sempre il testo in uscita che, se sintatticamente corretto, potr\u00e0 essere analizzato con il proprio parser XML personalizzato per estrarre il reale testo. Inoltre, questo fa rimanere ancora attivo il parser XML, integrato nel metodo boto3, per cercare i riferimenti ed estrarre le citazioni dei documenti della knowledge-base.<\/p>\n\n\n\n

Altrimenti, se non \u00e8 allineato con la struttura XML definita, \u00e8 sufficiente sanificare i tag XML per estrarre il testo in uscita.<\/p>\n\n\n\n

Il problema<\/h2>\n\n\n\n

Ci \u00e8 stato affidato il compito di implementare un sistema di ricerca basato su una Knowledge Base di una azienda farmaceutica. Abbiamo scelto Amazon Bedrock poich\u00e9 la sintesi e la risposta alle query in linguaggio naturale sono facili da ottenere.<\/p>\n\n\n\n

Purtroppo, le cose non vanno sempre come vorremmo; cos\u00ec, quando abbiamo implementato la soluzione, abbiamo scoperto che l’uso programmatico di boto3 per eseguire una query di retrieve and generate ci dava saltuariamente e in modo imprevedibile l’errore  \u201cSorry, I\u2019m unable to assist you with this request\u201d<\/strong> senza informazioni aggiuntive o log.<\/p>\n\n\n\n

Inutile dire che non \u00e8 disponibile documentazione, n\u00e9 articoli su Internet, quindi abbiamo iniziato la nostra avventura per risolvere il problema. Di seguito potrete leggere come \u00e8 andato il nostro  viaggio e, se state avendo lo stesso problema, potrete trovare la soluzione.<\/p>\n\n\n\n

Continuate a leggere!<\/p>\n\n\n\n

Il nostro caso d\u2019uso e implementazione<\/h2>\n\n\n\n

Facciamo una breve introduzione al caso d’uso per capire meglio il contesto e la soluzione. Sar\u00e0 molto importante per capire, verifica per verifica, dove si trova il problema.<\/p>\n\n\n\n

Il nostro compito era quello di implementare un sistema di ricerca per trovare facilmente i foglietti illustrativi dei farmaci tra tutta la documentazione del catalogo dei prodotti. Il testo del foglietto illustrativo doveva essere accessibile tramite API, in modo che la funzione potesse essere integrata all’interno dell’applicazione web del cliente e utilizzata dalla sua base di utenti per facilitarne l’esperienza (UX).<\/p>\n\n\n\n

Il sistema complessivo pu\u00f2 essere descritto attraverso 3 macro-aree:<\/p>\n\n\n\n