

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Sviluppo e orchestrazione di soluzioni di intelligenza artificiale generativa per l'assistenza sanitaria
<a name="development"></a>

Per creare le soluzioni di questa guida, è necessario creare un'architettura RAG che utilizzi LLM ottimizzati per fornire agli operatori sanitari dati aumentati sui pazienti, approfondimenti clinici e diagnostici e risultati previsti dei pazienti. Ciò richiede l'integrazione di più strumenti per creare un flusso di lavoro Servizi AWS coeso ed efficiente. In questa sezione vengono descritti i seguenti argomenti:
+ [Amazon Q Developer](#development-amazon-q)— Usa Amazon Q Developer per rispondere a domande tecniche ed errori di codice durante il processo di sviluppo.
+ [Multi-retriever Design RAG](#development-multi-retriever-rag)— Progetta e implementa soluzioni RAG che utilizzano più retriever per recuperare il contesto medico corretto per la domanda dell'utente.
+ [ReAct agenti](#development-react-agents)— Implementa agenti che combinano il ragionamento con l'azione dinamica.

## Amazon Q Developer
<a name="development-amazon-q"></a>

Quando si crea una soluzione di intelligenza artificiale generativa, può essere difficile creare agenti di intelligenza artificiale e connettere i servizi chiave. Tuttavia, [Amazon Q Developer](https://aws.amazon.com/q/developer/) aiuta i data scientist e gli ingegneri di intelligenza artificiale fornendo l'accesso a un assistente AI generativo avanzato. Amazon Q può rispondere in modo rapido e preciso alle domande degli utenti e agli errori di codice, il che può aiutarti a ottimizzare il processo di sviluppo LLM. Amazon Q offre vantaggi significativi agli sviluppatori che creano applicazioni che utilizzano i modelli di base di Amazon Bedrock. Può semplificare i flussi di lavoro e migliorare la qualità del codice. Automatizza la generazione di script Python e configurazioni Infrastructure as Code (IaC), riducendo significativamente i tempi e gli sforzi di sviluppo. Grazie a funzionalità di refactoring avanzate, Amazon Q può migliorare le prestazioni del codice, identificare le vulnerabilità di sicurezza e garantire che gli sviluppatori aderiscano alle migliori pratiche. Inoltre, facilita l'apprendimento e l'adozione per i principianti fornendo suggerimenti e spiegazioni sensibili al contesto, rendendo le attività di codifica complesse più accessibili ed efficienti.

## Multi-retriever Design RAG
<a name="development-multi-retriever-rag"></a>

In un'applicazione di intelligenza artificiale generativa, una pipeline RAG multi-retriever può recuperare in modo efficiente informazioni da più fonti di dati per aiutare gli operatori sanitari e i medici a rispondere a domande mediche. Questa pipeline utilizza diversi tipi di retriever per estrarre dati pertinenti da diverse basi di conoscenza. Ogni retriever è specializzato nel recupero di un particolare tipo di informazioni, come anamnesi dei pazienti, approfondimenti diagnostici, note cliniche o contenuti tratti da ricerche mediche e testi accademici.

Utilizza la natura dei dati e i requisiti specifici dell'applicazione per determinare quale sia la knowledge base di backend corretta per il tuo caso d'uso. Un database vettoriale di Amazon OpenSearch Service è ideale per grandi volumi di dati sanitari non strutturati o semistrutturati, tra cui riepiloghi di valutazione delle diagnosi di immagini, riepiloghi delle dimissioni, report clinici, ricerche mediche e contenuti di testo accademico. D'altra parte, un servizio di database grafico, come Amazon Neptune, può essere ideale per i casi d'uso nel settore sanitario che richiedono un'esplorazione approfondita delle relazioni temporali tra entità, come paziente, anamnesi del paziente, operatore sanitario, farmaci, sintomi e trattamenti.

*Un componente fondamentale di questa pipeline è la previsione dell'intento delle interrogazioni degli utenti.* Ciò garantisce che il sistema indirizzi la query alla catena di retriever corretta. Ad esempio, se un medico chiede informazioni sulla storia del trattamento di un paziente, sui sintomi, sull'interazione con l'ospedale, sulla probabilità di riammissione in ospedale o sui potenziali esiti del paziente, il modulo di previsione dell'intento di interrogazione identifica tale intento. Indirizza la richiesta alla catena di recupero che può recuperare le cartelle cliniche dei pazienti o i dati cronologici del trattamento dal grafico delle conoscenze mediche. In alternativa, se la domanda riguarda l'individuazione di malattie, valutazioni diagnostiche specifiche o dettagli di procedure cliniche specifiche dai libri di testo accademici, la query viene indirizzata alla catena di retriever che può recuperare queste informazioni dal database Service Vector. OpenSearch Puoi utilizzare la funzionalità di [tool-calling](https://python.langchain.com/docs/concepts/tool_calling/) di LangChain per associare uno strumento personalizzato ad Amazon Bedrock LLM in grado di classificare una domanda dell'utente in intenti predefiniti.

Questo sistema RAG multi-retriever include LangChain agenti progettati per gestire l'accesso alla knowledge base specifica. Puoi utilizzarlo LangChain per orchestrare l'interazione tra Amazon Bedrock LLM, i diversi retriever e gli strumenti. LangChaininclude una classe tool-calling che consente di creare strumenti personalizzati, come un classificatore di intenti, un retriever per Neptune, un retriever per OpenSearch Service o qualsiasi altro strumento che può essere sviluppato per classificare l'intento dell'utente e accedere ai dati da una specifica base di conoscenza in un formato strutturato. Quindi fornite questi strumenti alla classe per creare un agente Reasoning and Acting (). ReAct L' ReAct agente elabora la domanda dell'utente, pianifica i passaggi sequenziali per rispondere alla domanda, quindi esegue iterativamente gli strumenti disponibili ed elabora le risposte dello strumento per rispondere finalmente alla richiesta dell'utente.

L'immagine seguente mostra come funziona un sistema RAG multi-retriever progettato per un recupero efficiente delle conoscenze e una risoluzione intelligente delle query. Un LangChain ReAct agente analizza l'intento dell'utente, formula un piano strutturato di esecuzione e seleziona gli strumenti di recupero più pertinenti. Il sistema interroga una cache di domande precedenti e verifica la presenza di domande simili in base ad attributi chiave, come l'ID del paziente, la condizione medica e la data della visita. Se viene trovata una domanda molto simile, la risposta corrispondente viene recuperata direttamente. In caso contrario, l'agente esegue il retriever appropriato. Per recuperare informazioni incentrate sul paziente, come la storia del trattamento, i sintomi, le interazioni ospedaliere o la probabilità di riammissione, il sistema utilizza un graph retriever. Per le valutazioni diagnostiche, le procedure cliniche e i risultati medici strutturati, l'agente utilizza un recuperatore di database vettoriali. In scenari che richiedono una combinazione di conoscenze contestuali provenienti da entrambi gli archivi di dati, per generare una risposta completa, il sistema utilizza una strategia di recupero ibrida che integra i risultati sia del knowledge graph che del database vettoriale.

![Un'architettura che utilizza più LangChain retriever per eseguire Retrieval Augmented Generation.](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/rag-healthcare-use-cases/images/multi-retriever-rag.png)


## ReAct agenti
<a name="development-react-agents"></a>

Gli agenti Reasoning e Acting (ReAct) sono progettati per applicazioni RAG multiformi. Questi agenti offrono una potente combinazione di ragionamento e azione dinamica, in particolare per applicazioni complesse che prevedono flussi di lavoro di recupero logico delle informazioni passo dopo passo. [Per ulteriori informazioni, vedere: Synergizing Reasoning and Acting in Language Models. ReAct](https://react-lm.github.io/)

In contesti medici e sanitari, le domande di un medico o di un medico sono spesso multiformi. Ad esempio, un medico potrebbe chiedere «Quali trattamenti sono stati somministrati a pazienti simili affetti sia da ipertensione che da diabete di tipo 2?» Dopo aver identificato l'intento dell'utente, ovvero quello di recuperare i trattamenti per l'ipertensione e il diabete di tipo 2, l'agente di intelligenza artificiale deve suddividere questa query in attività secondarie e quindi scegliere la strategia di recupero più efficiente. In questo caso, l'agente di intelligenza artificiale deve identificare i nodi più rilevanti (come l'età del paziente, il sesso, le condizioni, i trattamenti e i farmaci) e quindi interrogare il grafico per individuare tali entità e i relativi attributi e relazioni. ReAct gli agenti sono molto utili perché combinano la capacità di ragionamento (inferenza logica) di un LLM con un'azione (interrogare o interagire con risorse o basi di conoscenza esterne).

Per rispondere alla domanda dell'utente «Quali trattamenti sono stati somministrati a pazienti simili affetti sia da ipertensione che da diabete di tipo 2?» , l'esempio seguente illustra come funziona un ReAct agente:

1. **Ragionamento dell'agente**: l' ReAct agente deduce che la domanda implica il recupero di informazioni sulle condizioni (diabete e ipertensione). Considera l'età del paziente, i trattamenti, i farmaci e il periodo da analizzare.

1. **Azione dell'agente**: l'agente utilizza OpenCypher per interrogare il Knowledge Graph sui trattamenti specifici per il diabete di tipo 2 e l'ipertensione. Inoltre, recupera i farmaci somministrati, le date delle visite ospedaliere, gli effetti collaterali dei farmaci, gli esiti noti dei pazienti e i dati incrociati per pazienti simili (ad esempio pazienti dello stesso sesso ed età).

1. **Osservazione degli agenti**: dal Knowledge Graph, l'agente recupera i dati tabulari degli ultimi sei mesi sui trattamenti somministrati a pazienti affetti sia da ipertensione che da diabete di tipo 2.

1. **Ragionamento dell'agente**: per classificare i risultati dei record recuperati, l'agente identifica attributi importanti, come la frequenza, gli effetti collaterali dei farmaci o gli esiti noti dei pazienti.

1. **Azione dell'agente**: l'agente riordina i record in base agli attributi identificati e alla logica predefinita impartita tramite il prompt di sistema.

1. **Generazione di risposte**: il LLM in Amazon Bedrock genera una risposta basata sul contesto preparato dall' ReAct agente.