

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à.

# Integrazioni
<a name="sonic-integrations"></a>

Amazon Nova 2 Sonic può essere integrato con vari framework e piattaforme per creare applicazioni di intelligenza artificiale conversazionale. Queste integrazioni forniscono componenti predefiniti e semplificati per casi d'uso comuni. APIs 

## Agenti Strands
<a name="sonic-strands-agents"></a>

Strands Agents è un SDK semplice ma potente che adotta un approccio basato su modelli alla creazione e all'esecuzione di agenti AI. Da semplici assistenti conversazionali a complessi flussi di lavoro autonomi, dallo sviluppo locale all'implementazione in produzione, Strands Agents si adatta alle vostre esigenze.

[Per una documentazione completa sul framework Strands, consulta la documentazione ufficiale di Strands.](https://strandsagents.com/latest/documentation/docs/user-guide/quickstart/)

Strands BidiAgent fornisce interazioni audio e testuali in tempo reale attraverso connessioni di streaming persistenti. A differenza dei modelli tradizionali di richiesta-risposta, questo agente mantiene conversazioni di lunga durata con supporto per interruzioni, elaborazione simultanea e risposte audio continue.

**Prerequisiti:**
+ Python 3.8 o successivo installato
+ Credenziali per AWS configurazioni con accesso ad Amazon Bedrock
+ Familiarità di base con la sintassi di Python async/await 

**Esempio di codice:**

### Esempio di codice
<a name="w2aac25c15b5c15b1"></a>

**Installation (Installazione):**

 Installa i pacchetti richiesti:

```
pip install strands-agents strands-agents-tools
```

Esegui questo esempio:

```
import asyncio
from strands.experimental.bidi.agent import BidiAgent
from strands.experimental.bidi.io.audio import BidiAudioIO
from strands.experimental.bidi.io.text import BidiTextIO
from strands.experimental.bidi.models.novasonic import BidiNovaSonicModel
from strands_tools import calculator

async def main():
    """Test the BidirectionalAgent API."""
    # Audio and Text input/output utility
    audio_io = BidiAudioIO(audio_config={})
    text_io = BidiTextIO()
    
    # Nova Sonic model
    model = BidiNovaSonicModel(region="us-east-1")
    
    async with BidiAgent(model=model, tools=[calculator]) as agent:
        print("New BidiAgent Experience")
        print("Try asking: 'What is 25 times 8?' or 'Calculate the square root of 144'")
        
        await agent.run(
            inputs=[audio_io.input()],
            outputs=[audio_io.output(), text_io.output()]
        )

if __name__ == "__main__":
    try:
        asyncio.run(main())
    except KeyboardInterrupt:
        print("\nConversation ended by user")
    except Exception as e:
        print(f"Error: {e}")
        import traceback
        traceback.print_exc()
```

### 1. Importa: modelli richiesti
<a name="w2aac25c15b5c15b3"></a>

```
from strands.experimental.bidi.agent import BidiAgent 
from strands.experimental.bidi.io.audio import BidiAudioIO 
from strands.experimental.bidi.io.text import BidiTextIO 
from strands.experimental.bidi.models.novasonic import BidiNovaSonicModel 
from strands_tools import calculator
```
+ BidiAgent: La classe di agenti principale che orchestra le conversazioni bidirezionali
+ BidiAudioIO: gestisce l'ingresso e l'uscita audio per le interazioni vocali
+ BidiTextIO: fornisce un output di testo per trascrizioni e risposte
+ BidiNovaSonicModel L'involucro del modello Nova 2 Sonic
+ Calcolatrice: uno strumento predefinito per operazioni matematiche

### 2. Configura I/O audio e di testo
<a name="w2aac25c15b5c15b5"></a>

```
audio_io = BidiAudioIO(audio_config={}) 
text_io = BidiTextIO()
```

L' BidiAudioIO gestisce l'ingresso del microfono e l'uscita degli altoparlanti, mentre l' BidiTextIO visualizza le trascrizioni e le risposte del testo nella console.

### 3. Inizializza il modello
<a name="w2aac25c15b5c15b7"></a>

```
model = BidiNovaSonicModel(region="us-east-1")
```

Create un'istanza del modello Nova Sonic. Il parametro region specifica la AWS regione in cui viene distribuito il modello.

### 4. Crea ed esegui l'agente
<a name="w2aac25c15b5c15b9"></a>

```
async with BidiAgent(model=model, tools=[calculator]) as agent: 
    await agent.run( 
        inputs=[audio_io.input()],  
        outputs=[audio_io.output(), text_io.output()] 
    )
```

L'agente viene creato con:
+ Modello: Il modello Nova 2 Sonic da utilizzare
+ Strumenti: elenco degli strumenti che l'agente può chiamare (come la calcolatrice)
+ Ingressi: ingresso audio dal microfono
+ Uscite: uscita audio per gli altoparlanti e uscita di testo per la console

## Integrazioni del framework
<a name="sonic-framework-integrations"></a>

Amazon Nova 2 Sonic può essere integrato con vari framework e piattaforme per creare applicazioni vocali sofisticate. I seguenti esempi illustrano i modelli di integrazione con i framework più diffusi.

### Amazon Bedrock AgentCore
<a name="sonic-agentcore"></a>

Amazon Bedrock AgentCore fornisce un ambiente di runtime gestito per la distribuzione di applicazioni Nova 2 Sonic con sicurezza e scalabilità di livello aziendale. AgentCoresemplifica la distribuzione di applicazioni di intelligenza artificiale vocale in tempo reale gestendo l'infrastruttura, l'autenticazione e la connettività. WebSocket 

![\[alt text not found\]](http://docs.aws.amazon.com/it_it/nova/latest/nova2-userguide/images/Agentcore-Architecture-Overview_11.png)


**Caratteristiche principali:**
+ Streaming bidirezionale: supporto nativo per l'interfaccia di streaming full-duplex di Nova Sonic con elaborazione degli eventi in tempo reale e comunicazione a bassa latenza.
+ WebSocket infrastruttura: WebSocket server pronti per la produzione con scalabilità automatica, gestione delle connessioni e ripristino degli errori.
+ Implementazione di container: distribuisci le applicazioni Nova Sonic come contenitori nell'infrastruttura gestita con scalabilità orizzontale e controllo delle versioni indipendente.
+ Sicurezza aziendale: autenticazione granulare tramite IAM e SigV4, isolamento VPC e registrazione di controllo completa.

L'architettura mostra come le applicazioni client si connettono a Runtime tramite l'autenticazione SigV4. AgentCore WebSocket L'ambiente containerizzato include il WebSocket server, la logica dell'applicazione e il client Nova Sonic, tutti comunicanti con Nova Sonic tramite l'API di streaming bidirezionale.

**Vantaggi:**
+ Operazioni semplificate: concentratevi sulla logica delle applicazioni AgentCore gestendo al contempo l'infrastruttura, la scalabilità e l'affidabilità.
+ Sicurezza aziendale: funzionalità integrate di autenticazione, autorizzazione e conformità per le implementazioni di produzione.
+ Efficienza in termini di costi: paghi solo per ciò che utilizzi con la scalabilità automatica e l'ottimizzazione delle risorse.
+ Produttività degli sviluppatori: riduci i tempi di produzione con l' WebSocket infrastruttura gestita e l'implementazione di container.

**Casi d'uso**
+ Assistenti vocali del servizio clienti con autenticazione sicura
+ Applicazioni vocali aziendali che richiedono l'integrazione con IAM
+ Piattaforme vocali multi-tenant con implementazioni isolate
+ Applicazioni vocali che richiedono conformità e audit trail

Per una documentazione dettagliata sulla distribuzione di Nova Sonic con AgentCore, consulta la documentazione di [Amazon AgentCore Bedrock](https://aws.amazon.com/bedrock/agentcore/).

### LiveKit
<a name="sonic-livekit"></a>

LiveKit è una piattaforma open source per la creazione di applicazioni audio e video in tempo reale. L'integrazione con Amazon Nova 2 Sonic consente agli sviluppatori di creare interfacce vocali conversazionali senza gestire pipeline audio o protocolli di segnalazione complessi.

 [Per esempi di implementazione dettagliati ed esempi di codice, consulta la documentazione sull'integrazione. LiveKit AWS](https://docs.livekit.io/agents/integrations/aws/)

![\[alt text not found\]](http://docs.aws.amazon.com/it_it/nova/latest/nova2-userguide/images/LiveKit-Architecture-Overview_9.png)


**Come funziona:**
+ Livello client: le applicazioni Web, mobili o desktop si connettono utilizzando LiveKit il client SDKs, che gestisce l'acquisizione audio, lo streaming WebRTC e la riproduzione.
+ LiveKit Server: funge da hub di comunicazione in tempo reale, gestendo le connessioni WebRTC, instradando i flussi audio e gestendo lo stato della sessione con ottimizzazione a bassa latenza.
+ LiveKit Agente: agente basato su Python che riceve l'audio dal server, lo elabora tramite il plug-in Nova Sonic e restituisce le risposte. Include funzionalità integrate come il rilevamento dell'attività vocale e la gestione dei turni.
+ Amazon Nova 2 Sonic: elabora il flusso audio tramite API di streaming bidirezionale, esegue il riconoscimento vocale, la comprensione del linguaggio naturale e genera risposte conversazionali con voce sintetizzata.

### Pipecat
<a name="sonic-pipecat"></a>

Pipecat è un framework per la creazione di applicazioni di intelligenza artificiale conversazionale vocale e multimodale. Fornisce un'architettura modulare basata su pipeline che orchestra più componenti per creare applicazioni vocali intelligenti con Amazon Nova Sonic e altri servizi. AWS 

[Per esempi di implementazione dettagliati ed esempi di codice, consulta la documentazione sull'integrazione. PipeCat AWS](https://docs.pipecat.ai/server/services/s2s/aws)

**Caratteristiche principali:**
+ Architettura della pipeline: framework modulare basato su Python per la composizione di componenti di intelligenza artificiale vocale tra cui ASR, NLU, TTS e altri.
+ Flussi Pipecat: framework di gestione dello stato per la creazione di logiche conversazionali complesse e l'esecuzione di strumenti.
+ Supporto WebRTC: integrazione integrata con Daily e altri provider WebRTC per lo streaming audio in tempo reale.
+ AWS Integrazione: supporto nativo per Amazon Bedrock, Amazon Transcribe e Amazon Polly.

![\[alt text not found\]](http://docs.aws.amazon.com/it_it/nova/latest/nova2-userguide/images/Pipecat-Architecture-Overview_10.png)


L'architettura include:
+ Trasporto WebRTC: streaming audio in tempo reale tra dispositivi client e server delle applicazioni.
+ Rilevamento dell'attività vocale (VAD): Silero VAD con rilevamento vocale configurabile e soppressione del rumore.
+ Riconoscimento vocale: Amazon Transcribe per una conversione accurata e in tempo reale. speech-to-text
+ Comprensione del linguaggio naturale: Amazon Nova Pro on Bedrock con inferenza ottimizzata per la latenza.
+ Esecuzione dello strumento: Pipecat Flows per l'integrazione delle API e le chiamate ai servizi di backend.
+ Generazione di risposte: Amazon Nova Pro per risposte coerenti e sensibili al contesto.
+ Text-to-speech: Amazon Polly con voci generative per un output vocale realistico.

### Implementa su AWS
<a name="sonic-deploy-aws"></a>

Implementa le tue applicazioni Nova Sonic AWS utilizzando l'infrastruttura come codice con AWS CDK (Cloud Development Kit). Questo approccio offre implementazioni ripetibili e controllate dalla versione con le migliori pratiche integrate.

Opzioni di implementazione
+ Amazon ECS (Elastic Container Service): orchestrazione di container completamente gestita con integrazione Application Load Balancer, auto-scaling ed esecuzione Fargate senza server.
+ Amazon EKS (Elastic Kubernetes Services): Kubernetes gestito per orchestrazione complessa, reti avanzate, implementazioni multiregionali e un ampio ecosistema di strumenti.
+ AWS CDK: CDK consente di definire l'infrastruttura cloud utilizzando linguaggi di programmazione familiari. AWS 

[Per un esempio completo e pronto per la produzione di implementazione di Nova Sonic con AWS CDK, consultate il CDK Sample on. Speech-to-Speech ](https://github.com/aws-samples/generative-ai-cdk-constructs-samples/tree/main/samples/speech-to-speech) GitHub Questo esempio illustra:

![\[alt text not found\]](http://docs.aws.amazon.com/it_it/nova/latest/nova2-userguide/images/cdk-12.png)

+ Configurazione completa dell'infrastruttura CDK con TypeScript
+ WebSocket implementazione del server per comunicazioni in tempo reale
+ Implementazione di container con ECS e Fargate
+ Configurazione Application Load Balancer per il supporto WebSocket
+ Configurazione del gruppo di sicurezza e di rete VPC
+ CloudWatch monitoraggio e registrazione
+ Le migliori pratiche per le implementazioni di produzione

### Sistemi multiagenti
<a name="sonic-multi-agent"></a>

L'architettura multiagente è un modello ampiamente utilizzato per la progettazione di assistenti AI che gestiscono attività complesse. In un assistente vocale basato su Nova 2 Sonic, questa architettura coordina più agenti specializzati, in cui ogni agente opera in modo indipendente per consentire l'elaborazione parallela, il design modulare e soluzioni scalabili.

Nova Sonic funge da orchestratore in un sistema multiagente, svolgendo due funzioni chiave:

Gestione del flusso di conversazione: assicura che tutte le informazioni necessarie vengano raccolte prima di procedere alla fase successiva della conversazione.

Classificazione degli intenti: analizza le richieste degli utenti e le indirizza al subagente specializzato appropriato.

![\[alt text not found\]](http://docs.aws.amazon.com/it_it/nova/latest/nova2-userguide/images/Banking-Assistant_13.png)


Il diagramma precedente mostra un assistente vocale bancario che utilizza un'architettura multiagente. Il flusso di conversazione inizia con un saluto e la raccolta del nome dell'utente, quindi gestisce le richieste relative al settore bancario o ai mutui tramite subagenti specializzati.

Esempio di flusso di conversazione:

1. L'utente si connette all'assistente vocale.

1. Nova 2 Sonic: «Ciao\$1 Qual è il tuo nome?»

1. Utente: «Mi chiamo John»

1. Nova 2 Sonic: «Ciao John, come posso aiutarti oggi?»

1. Utente: «Voglio controllare il saldo del mio conto»

1. Nova 2 Sonic: [Percorsi verso l'agente di autenticazione]

1. Agente di autenticazione: «Fornisci l'ID del tuo account»

1. Utente: «12345"

1. Agente di autenticazione: [Verifica l'identità]

1. Nova 2 Sonic: [Percorsi verso l'agente bancario]

1. Agente bancario: «Il tuo saldo attuale è di 5.431,10"

Sebbene questo esempio dimostri che i subagenti utilizzano il framework Strands Agents distribuito su Amazon AgentCore Bedrock, l'architettura è flessibile. È possibile scegliere:
+ Il tuo framework di agenti preferito
+ Qualsiasi provider LLM
+ Opzioni di hosting personalizzate
+ Diversi modelli di orchestrazione

**Vantaggi:**
+ Modularità: ogni agente si concentra su un dominio specifico, semplificando la manutenzione e l'aggiornamento del sistema.
+ Scalabilità: aggiungi nuovi agenti senza modificare quelli esistenti, permettendo al sistema di crescere con le tue esigenze.
+ Elaborazione parallela: più agenti possono lavorare contemporaneamente, migliorando i tempi di risposta per domande complesse.
+ Specializzazione: ogni agente può essere ottimizzato per il suo compito specifico, utilizzando gli strumenti e le basi di conoscenza più appropriati.
+ Isolamento dei guasti: se un agente si guasta, gli altri continuano a funzionare, migliorando l'affidabilità complessiva del sistema.

Consulta [questo blog](https://aws.amazon.com/blogs/machine-learning/building-a-multi-agent-voice-assistant-with-amazon-nova-sonic-and-amazon-bedrock-agentcore/) per maggiori dettagli ed esempi di codice.

Consultate il [Nova Sonic Workshop Multi-Agent Lab](https://catalog.workshops.aws/amazon-nova-sonic-s2s/en-US/02-repeatable-pattern/05-multi-agent-agentcore) per esempi pratici.

### Integrazione della telefonia
<a name="sonic-telephony"></a>

Amazon Nova 2 Sonic si integra con i provider di telefonia per abilitare applicazioni vocali basate sull'intelligenza artificiale accessibili tramite telefonate. Questa guida illustra l'integrazione con Twilio, Vonage e altri sistemi basati su SIP per la creazione di soluzioni di contact center e agenti vocali.

**Twilio**: piattaforma di comunicazione cloud con funzionalità di streaming vocale e multimediale programmabili.

**Vonage**: comunicazioni globali APIs con voce, streaming WebSocket audio e connettività SIP.

AWS fornisce un'implementazione di esempio completa che dimostra Nova Sonic in un ambiente di contact center con analisi in tempo reale e integrazione telefonica.

Archivio: [Sample Sonic](https://github.com/aws-samples/sample-sonic-contact-center-with-telephony) Contact Center con telefonia