In Parte 1 di questa serie, abbiamo presentato una soluzione che utilizzava il file Incorporamenti multimodali di Amazon Titan modello per convertire singole diapositive da una serie di diapositive in incorporamenti. Abbiamo archiviato gli incorporamenti in un database vettoriale e quindi abbiamo utilizzato il file Assistente grande per il linguaggio e la visione (LLaVA 1.5-7b) modello per generare risposte testuali alle domande degli utenti basate sulla diapositiva più simile recuperata dal database vettoriale. Abbiamo utilizzato i servizi AWS inclusi Roccia Amazzonica, Amazon Sage Makere Amazon OpenSearch senza server in questa soluzione.
In questo post mostriamo un approccio diverso. Noi usiamo il Antropico Claude 3 Sonetto modello per generare descrizioni di testo per ogni diapositiva nella presentazione. Queste descrizioni vengono quindi convertite in incorporamenti di testo utilizzando il file Incorporamenti di testo di Amazon Titan modello e archiviato in un database vettoriale. Quindi utilizziamo il modello Claude 3 Sonnet per generare risposte alle domande degli utenti in base alla descrizione testuale più pertinente recuperata dal database vettoriale.
Puoi testare entrambi gli approcci per il tuo set di dati e valutare i risultati per vedere quale approccio offre i risultati migliori. Nella parte 3 di questa serie, valutiamo i risultati di entrambi i metodi.
Panoramica della soluzione
La soluzione fornisce un'implementazione per rispondere alle domande utilizzando le informazioni contenute nel testo e negli elementi visivi di una presentazione. Il design si basa sul concetto di Retrieval Augmented Generation (RAG). Tradizionalmente, il RAG è stato associato a dati testuali che possono essere elaborati da modelli linguistici di grandi dimensioni (LLM). In questa serie estendiamo RAG per includere anche le immagini. Ciò fornisce una potente capacità di ricerca per estrarre contenuti contestualmente rilevanti da elementi visivi come tabelle e grafici insieme al testo.
Questa soluzione include i seguenti componenti:
- Amazon Titan Text Embeddings è un modello di incorporamento di testo che converte testo in linguaggio naturale, comprese singole parole, frasi o anche documenti di grandi dimensioni, in rappresentazioni numeriche che possono essere utilizzate per potenziare casi d'uso come ricerca, personalizzazione e clustering basati sulla somiglianza semantica.
- Claude 3 Sonnet è la prossima generazione di modelli all'avanguardia di Anthropic. Sonnet è uno strumento versatile in grado di gestire un'ampia gamma di attività, da ragionamenti e analisi complessi a risultati rapidi, nonché ricerca e recupero efficienti di grandi quantità di informazioni.
- OpenSearch Serverless è una configurazione serverless on demand per Amazon OpenSearch Service. Utilizziamo OpenSearch Serverless come database vettoriale per l'archiviazione degli incorporamenti generati dal modello Amazon Titan Text Embeddings. Un indice creato nella raccolta OpenSearch Serverless funge da archivio vettoriale per la nostra soluzione RAG.
- Importazione di Amazon OpenSearch (OSI) è un raccoglitore di dati serverless completamente gestito che fornisce dati ai domini del servizio OpenSearch e alle raccolte Serverless di OpenSearch. In questo post utilizziamo un'API della pipeline OSI per fornire dati all'archivio vettoriale OpenSearch Serverless.
La progettazione della soluzione è composta da due parti: acquisizione e interazione con l'utente. Durante l'importazione, elaboriamo il gruppo di diapositive di input convertendo ciascuna diapositiva in un'immagine, generando descrizioni e incorporamenti di testo per ciascuna immagine. Successivamente popoliamo l'archivio dati vettoriali con gli incorporamenti e la descrizione testuale per ciascuna diapositiva. Questi passaggi vengono completati prima dei passaggi di interazione con l'utente.
Nella fase di interazione con l'utente, una domanda dell'utente viene convertita in incorporamenti di testo. Viene eseguita una ricerca per similarità nel database vettoriale per trovare una descrizione testuale corrispondente a una diapositiva che potrebbe potenzialmente contenere risposte alla domanda dell'utente. Forniamo quindi la descrizione della diapositiva e la domanda dell'utente al modello Claude 3 Sonnet per generare una risposta alla query. Tutto il codice per questo post è disponibile nel file GitHub riposo.
Il diagramma seguente illustra l'architettura di inserimento.
Il flusso di lavoro è costituito dai seguenti passaggi:
- Le diapositive vengono convertite in file di immagine (uno per diapositiva) in formato JPG e passate al modello Claude 3 Sonnet per generare una descrizione testuale.
- I dati vengono inviati al modello Amazon Titan Text Embeddings per generare incorporamenti. In questa serie utilizziamo lo slide deck Addestra e distribuisci Stable Diffusion utilizzando AWS Trainium e AWS Inferentia dal Summit AWS di Toronto, giugno 2023 per dimostrare la soluzione. Il mazzo di campioni ha 31 diapositive, quindi generiamo 31 serie di incorporamenti di vettori, ciascuno con 1536 dimensioni. Aggiungiamo ulteriori campi di metadati per eseguire query di ricerca avanzate utilizzando le potenti funzionalità di ricerca di OpenSearch.
- Gli incorporamenti vengono inseriti in una pipeline OSI utilizzando una chiamata API.
- La pipeline OSI inserisce i dati come documenti in un indice OpenSearch Serverless. L'indice è configurato come sink per questa pipeline e viene creato come parte della raccolta OpenSearch Serverless.
Il diagramma seguente illustra l'architettura di interazione dell'utente.
Il flusso di lavoro è costituito dai seguenti passaggi:
- Un utente invia una domanda relativa alla presentazione che è stata importata.
- L'input dell'utente viene convertito in incorporamenti utilizzando il modello Amazon Titan Text Embeddings a cui si accede utilizzando Amazon Bedrock. Una ricerca vettoriale del servizio OpenSearch viene eseguita utilizzando questi incorporamenti. Eseguiamo una ricerca k-nearest neighbor (k-NN) per recuperare gli incorporamenti più rilevanti che corrispondono alla query dell'utente.
- I metadati della risposta di OpenSearch Serverless contengono un percorso all'immagine e una descrizione corrispondente alla diapositiva più pertinente.
- Viene creato un prompt combinando la domanda dell'utente e la descrizione dell'immagine. Il prompt viene fornito al Sonetto di Claude 3 ospitato su Amazon Bedrock.
- Il risultato di questa inferenza viene restituito all'utente.
Discutiamo i passaggi per entrambe le fasi nelle sezioni seguenti e includiamo dettagli sull'output.
Prerequisiti
Per implementare la soluzione fornita in questo post, dovresti avere un file Account AWS e familiarità con FM, Amazon Bedrock, SageMaker e OpenSearch Service.
Questa soluzione utilizza i modelli Claude 3 Sonnet e Amazon Titan Text Embeddings ospitati su Amazon Bedrock. Assicurati che questi modelli siano abilitati per l'uso accedendo a Accesso al modello pagina sulla console Amazon Bedrock.
Se i modelli sono abilitati, il Stato di accesso affermerà Accesso garantito.
Se i modelli non sono disponibili abilitare l'accesso scegliendo Gestire l'accesso al modello, selezionando i modelli e scegliendo Richiedi l'accesso al modello. I modelli sono abilitati per l'uso immediatamente.
Utilizza AWS CloudFormation per creare lo stack di soluzioni
Puoi utilizzare AWS CloudFormation per creare lo stack di soluzioni. Se hai creato la soluzione per la Parte 1 nello stesso account AWS, assicurati di eliminarlo prima di creare questo stack.
Regione AWS | Link |
---|---|
us-east-1 |
|
us-west-2 |
Dopo che lo stack è stato creato correttamente, vai alla scheda Output dello stack nella console AWS CloudFormation e annota i valori per MultimodalCollectionEndpoint
ed OpenSearchPipelineEndpoint
. Li utilizzerai nei passaggi successivi.
Il modello CloudFormation crea le seguenti risorse:
- Ruoli IAM - Il seguente Gestione dell'identità e dell'accesso di AWS (IAM) vengono creati i ruoli. Aggiorna questi ruoli per applicare le autorizzazioni con privilegi minimi, come discusso in Best practice sulla sicurezza.
SMExecutionRole
con Servizio di archiviazione semplice Amazon (Amazon S3), SageMaker, OpenSearch Service e accesso completo ad Amazon Bedrock.OSPipelineExecutionRole
con accesso al bucket S3 e alle azioni OSI.
- Taccuino SageMaker – Tutto il codice per questo post viene eseguito utilizzando questo notebook.
- Raccolta OpenSearch Serverless – Questo è il database vettoriale per la memorizzazione e il recupero degli incorporamenti.
- Gasdotto OSI – Questa è la pipeline per l'inserimento dei dati in OpenSearch Serverless.
- Benna S3 – Tutti i dati per questo post sono archiviati in questo bucket.
Il modello CloudFormation imposta la configurazione della pipeline richiesta per configurare la pipeline OSI con HTTP come origine e l'indice OpenSearch Serverless come sink. Il taccuino SageMaker 2_data_ingestion.ipynb
mostra come inserire i dati nella pipeline utilizzando il file Richieste Libreria HTTP.
Viene creato anche il modello CloudFormation Rete, crittografia ed l'accesso ai dati policy richieste per la tua raccolta OpenSearch Serverless. Aggiorna queste policy per applicare le autorizzazioni con privilegi minimi.
Nel notebook SageMaker si fa riferimento al nome del modello CloudFormation e al nome dell'indice del servizio OpenSearch 3_rag_inference.ipynb
. Se modifichi i nomi predefiniti, assicurati di aggiornarli nel blocco appunti.
Prova la soluzione
Dopo aver creato lo stack CloudFormation, puoi testare la soluzione. Completa i seguenti passaggi:
- Sulla console di SageMaker, scegli Notebook nel pannello di navigazione.
- Seleziona
MultimodalNotebookInstance
e scegli Apri JupyterLab. - In File Browser, vai alla cartella dei taccuini per vedere i taccuini e i file di supporto.
I taccuini sono numerati nell'ordine in cui vengono eseguiti. Le istruzioni e i commenti in ciascun taccuino descrivono le azioni eseguite da quel taccuino. Eseguiamo questi notebook uno per uno.
- Scegli
1_data_prep.ipynb
per aprirlo in JupyterLab. - Sulla Correre menù, scegliere Esegui tutte le celle per eseguire il codice in questo blocco appunti.
Questo notebook scaricherà un file disponibile pubblicamente Ponte scivolo, converti ciascuna diapositiva nel formato file JPG e caricala nel bucket S3.
- Scegli
2_data_ingestion.ipynb
per aprirlo in JupyterLab. - Sulla Correre menù, scegliere Esegui tutte le celle per eseguire il codice in questo blocco appunti.
In questo blocco appunti creerai un indice nella raccolta OpenSearch Serverless. Questo indice memorizza i dati di incorporamento per lo slide deck. Vedere il seguente codice:
Utilizzi i modelli Claude 3 Sonnet e Amazon Titan Text Embeddings per convertire le immagini JPG create nel taccuino precedente in incorporamenti vettoriali. Questi incorporamenti e metadati aggiuntivi (come il percorso S3 e la descrizione del file immagine) vengono archiviati nell'indice insieme agli incorporamenti. Il seguente frammento di codice mostra come Claude 3 Sonnet genera le descrizioni delle immagini:
Le descrizioni delle immagini vengono passate al modello Amazon Titan Text Embeddings per generare incorporamenti vettoriali. Questi incorporamenti e metadati aggiuntivi (come il percorso S3 e la descrizione del file immagine) vengono archiviati nell'indice insieme agli incorporamenti. Il seguente frammento di codice mostra la chiamata al modello Amazon Titan Text Embeddings:
I dati vengono inseriti nell'indice OpenSearch Serverless effettuando una chiamata API alla pipeline OSI. Il seguente frammento di codice mostra la chiamata effettuata utilizzando la libreria HTTP Requests:
- Scegli
3_rag_inference.ipynb
per aprirlo in JupyterLab. - Sulla Correre menù, scegliere Esegui tutte le celle per eseguire il codice in questo blocco appunti.
Questo notebook implementa la soluzione RAG: converti la domanda dell'utente in incorporamenti, trovi una descrizione dell'immagine simile dal database vettoriale e fornisci la descrizione recuperata a Claude 3 Sonnet per generare una risposta alla domanda dell'utente. Si utilizza il seguente modello di prompt:
Il seguente frammento di codice fornisce il flusso di lavoro RAG:
Risultati
La tabella seguente contiene alcune domande e risposte degli utenti generate dalla nostra implementazione. IL Question la colonna cattura la domanda dell'utente e il file Risposta colonna è la risposta testuale generata da Claude 3 Sonetto. IL Immagine mostra la corrispondenza della diapositiva k-NN restituita dalla ricerca vettoriale OpenSearch Serverless.
Risultati RAG multimodali
Interroga il tuo indice
Puoi utilizzare OpenSearch Dashboards per interagire con l'API OpenSearch per eseguire test rapidi sull'indice e sui dati importati.
Pulire
Per evitare di incorrere in addebiti futuri, eliminare le risorse. Puoi farlo eliminando lo stack utilizzando la console AWS CloudFormation.
Conclusione
Le aziende generano continuamente nuovi contenuti e le presentazioni sono un modo comune per condividere e diffondere informazioni all'interno dell'organizzazione ed esternamente con i clienti o durante le conferenze. Nel corso del tempo, informazioni ricche possono rimanere sepolte e nascoste in modalità non testuali come grafici e tabelle in queste presentazioni.
Puoi utilizzare questa soluzione e la potenza dei FM multimodali come Amazon Titan Text Embeddings e Claude 3 Sonnet per scoprire nuove informazioni o scoprire nuove prospettive sui contenuti nelle presentazioni. Puoi provare diversi modelli Claude disponibili su Amazon Bedrock aggiornando il CLAUDE_MODEL_ID
nel globals.py
file.
Questa è la seconda parte di una serie in tre parti. Abbiamo utilizzato Amazon Titan Multimodal Embeddings e il modello LLaVA nella Parte 2. Nella Parte 1 confronteremo gli approcci della Parte 3 e della Parte 1.
Parti di questo codice vengono rilasciate con licenza Licenza Apache 2.0.
Circa gli autori
Amit Arora è un AI e ML Specialist Architect presso Amazon Web Services, che aiuta i clienti aziendali a utilizzare i servizi di machine learning basati su cloud per scalare rapidamente le loro innovazioni. È anche docente a contratto nel programma MS data science and analytics presso la Georgetown University di Washington DC
Manju Prasad è un Senior Solutions Architect presso Amazon Web Services. Si concentra sulla fornitura di consulenza tecnica in una varietà di settori tecnici, tra cui AI/ML. Prima di entrare in AWS, ha progettato e realizzato soluzioni per aziende del settore dei servizi finanziari e anche per una startup. La sua passione è condividere la conoscenza e promuovere l'interesse per i talenti emergenti.
Archana Inapudi è un Senior Solutions Architect presso AWS, a supporto di un cliente strategico. Vanta oltre un decennio di esperienza intersettoriale alla guida di iniziative tecniche strategiche. Archana è un aspirante membro della comunità tecnica sul campo AI/ML presso AWS. Prima di unirsi ad AWS, Archana ha condotto una migrazione dalle tradizionali origini dati in silos a Hadoop presso un'azienda sanitaria. La sua passione è l'utilizzo della tecnologia per accelerare la crescita, fornire valore ai clienti e ottenere risultati aziendali.
Antara Raissa è un AI e ML Solutions Architect presso Amazon Web Services, che supporta clienti strategici con sede a Dallas, in Texas. Ha anche precedenti esperienze di lavoro con partner di grandi aziende presso AWS, dove ha lavorato come Partner Success Solutions Architect per clienti incentrati sul digitale.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- PlatoData.Network Generativo verticale Ai. Potenzia te stesso. Accedi qui.
- PlatoAiStream. Intelligenza Web3. Conoscenza amplificata. Accedi qui.
- PlatoneESG. Carbonio, Tecnologia pulita, Energia, Ambiente, Solare, Gestione dei rifiuti. Accedi qui.
- Platone Salute. Intelligence sulle biotecnologie e sulle sperimentazioni cliniche. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/talk-to-your-slide-deck-using-multimodal-foundation-models-hosted-on-amazon-bedrock-and-amazon-sagemaker-part-2/
- :ha
- :È
- :non
- :Dove
- $ SU
- 1
- 10
- 100
- 12
- 15%
- 17
- 173
- 175
- 20
- 2019
- 2020
- 2023
- 23
- 24
- 27
- 30
- 31
- 7
- 8
- 9
- a
- abilità
- Chi siamo
- accelerare
- accesso
- accessibile
- Il mio account
- Raggiungere
- operanti in
- azioni
- aggiungere
- aggiuntivo
- aggiunto
- Adozione
- vantaggi
- AI
- Modelli AI
- AI / ML
- Algoritmi
- Tutti
- lungo
- anche
- Amazon
- Amazon EC2
- Servizio Amazon OpenSearch
- Amazon Web Services
- importi
- an
- .
- analitica
- ed
- e infrastruttura
- rispondere
- rispondere
- risposte
- Antropico
- in qualsiasi
- nulla
- api
- Applicazioni
- Sviluppo di applicazioni
- applicazioni
- APPLICA
- approccio
- approcci
- circa
- architettura
- SONO
- artificiale
- intelligenza artificiale
- Intelligenza artificiale e apprendimento automatico
- AS
- chiedere
- aspirante
- Assistant
- associato
- At
- aumentata
- auth
- disponibile
- evitare
- AWS
- AWS CloudFormazione
- basato
- BE
- stato
- prima
- MIGLIORE
- Meglio
- fra
- Miliardo
- stile di vita
- entrambi
- costruito
- affari
- ma
- by
- chiamata
- Materiale
- non può
- funzionalità
- capacità
- cattura
- casi
- il cambiamento
- oneri
- Scegli
- la scelta
- cliente
- il clustering
- codice
- collezione
- collezioni
- collettore
- Colonna
- combinando
- Commenti
- Uncommon
- comunità
- Aziende
- azienda
- paragonabile
- confrontare
- rispetto
- confronto
- confronto
- completamento di una
- Completato
- complesso
- componenti
- concetto
- conciso
- conferenze
- Configurazione
- configurato
- consiste
- consolle
- contenere
- contenute
- contiene
- contenuto
- contesto
- continuo
- convertire
- convertito
- conversione
- Corrispondente
- potuto
- creare
- creato
- crea
- Creazione
- Credenziali
- cliente
- Clienti
- ciclo
- Dallas
- cruscotti
- dati
- scienza dei dati
- Banca Dati
- decennio
- ponte
- Predefinito
- consegnare
- fornisce un monitoraggio
- Richiesta
- dimostrare
- schierare
- descrivere
- descrive
- descrizione
- Design
- progettato
- dettagli
- in via di sviluppo
- Mercato
- diagramma
- DITT
- differenza
- diverso
- Emittente
- Dimensioni
- dimensioni
- scopri
- discutere
- discusso
- Dsiplay
- display
- do
- documenti
- effettua
- domini
- scaricare
- guidare
- guida
- durante
- e
- ogni
- efficiente
- elementi
- incorporamento
- emergenti del mondo
- enable
- abilitato
- consentendo
- motore
- Impresa
- errore
- valutare
- Anche
- Tranne
- eccezione
- esperienza
- competenza
- estendere
- esternamente
- estratto
- Familiarità
- campo
- campi
- Compila il
- File
- finanziario
- servizi finanziari
- Trovare
- si concentra
- i seguenti
- Nel
- formato
- promozione
- Fondazione
- da
- Carburante
- pieno
- completamente
- ulteriormente
- futuro
- generare
- generato
- genera
- la generazione di
- ELETTRICA
- generativo
- AI generativa
- georgetown
- GitHub
- dato
- dà
- andando
- grafici
- Crescita
- guida
- ha avuto
- maniglia
- Avere
- he
- assistenza sanitaria
- aiutare
- nascosto
- superiore
- evidenzia
- Visualizzazioni
- host
- ospitato
- padroni di casa
- Come
- Tutorial
- Tuttavia
- HTML
- http
- HTTPS
- umano
- i
- Identità
- if
- illustra
- Immagine
- immagini
- subito
- realizzare
- implementazione
- attrezzi
- miglioramenti
- in
- includere
- inclusi
- Compreso
- Index
- Indici
- individuale
- informazioni
- Infrastruttura
- iniziative
- Innovazione
- innovazioni
- ingresso
- esempio
- istruzioni
- Intelligence
- interagire
- interazione
- interesse
- internamente
- ai miglioramenti
- investimento
- IT
- accoppiamento
- jpg
- json
- giugno
- Le
- Sapere
- conoscenze
- Lingua
- grandi
- Latenza
- principale
- Leads
- apprendimento
- Guidato
- Biblioteca
- Licenza
- piace
- locale
- inferiore
- macchina
- machine learning
- fatto
- Principale
- make
- Fare
- gestito
- molti
- partita
- corrispondenza
- max
- membro
- menzione
- Menu
- messaggi
- Metadati
- metodo
- metodi
- migrazione
- ML
- modello
- modelli
- Scopri di più
- maggior parte
- MS
- Nome
- nomi
- Naturale
- Elaborazione del linguaggio naturale
- Navigare
- navigazione
- Navigazione
- Bisogno
- New
- GENERAZIONE
- Nessuna
- Nota
- taccuino
- numerato
- numeri
- of
- offrire
- on
- On-Demand
- ONE
- aprire
- ottimizzazione
- or
- organizzazione
- OS
- Altro
- nostro
- su
- risultati
- produzione
- uscite
- ancora
- pagina
- vetro
- parametro
- parametri
- parte
- partner
- partner
- Ricambi
- Passato
- appassionato
- sentiero
- per
- Eseguire
- performance
- eseguita
- permessi
- personalizzazione
- prospettive
- fase
- Frasi
- Fisica
- conduttura
- Platone
- Platone Data Intelligence
- PlatoneDati
- Termini e Condizioni
- Post
- potenzialmente
- energia
- potente
- presentata
- precedente
- Precedente
- processi
- Elaborato
- lavorazione
- Programma
- progressione
- proprietà
- fornire
- purché
- fornisce
- fornitura
- pubblicamente
- quark
- query
- domanda
- domanda
- Domande
- Presto
- R
- straccio
- gamma
- veloce
- rapidamente
- Leggi
- ricevuto
- riferimento
- relazionato
- rilasciato
- pertinente
- si basa
- rimanere
- richieste
- necessario
- riparazioni
- Risorse
- risposta
- risposte
- colpevole
- Risultati
- richiamo
- ritorno
- Ricco
- Ruolo
- ruoli
- Correre
- running
- sagemaker
- stesso
- campione
- dire
- Scala
- Scienze
- Cerca
- sezioni
- settore
- vedere
- sembrare
- Selezione
- semantico
- anziano
- inviato
- Sequenza
- Serie
- serverless
- serve
- servizio
- Servizi
- Sessione
- Set
- impostazioni
- Condividi
- compartecipazione
- lei
- dovrebbero
- Spettacoli
- in silenzio
- simile
- Un'espansione
- singolo
- Taglia
- scivolo
- Diapositive
- frammento
- soluzione
- Soluzioni
- alcuni
- Fonte
- fonti
- specialista
- specifico
- stabile
- pila
- tappe
- startup
- Regione / Stato
- state-of-the-art
- Passi
- conservazione
- Tornare al suo account
- memorizzati
- negozi
- memorizzare
- Strategico
- successivo
- il successo
- Con successo
- tale
- SOMMARIO
- Vertice
- supporto
- supportato
- Supporto
- sicuro
- tavolo
- Talento
- Parlare
- task
- Consulenza
- Tecnologie
- Tecnologia
- modello
- test
- test
- Texas
- testo
- testuale
- di
- che
- I
- le informazioni
- loro
- Li
- poi
- perciò
- Strumenti Bowman per analizzare le seguenti finiture:
- di
- questo
- portata
- tempo
- volte
- titano
- a
- strumenti
- toronto
- tradizionale
- tradizionalmente
- attraversare
- vero
- prova
- TURNO
- seconda
- Digitare
- Tipi di
- scoprire
- per
- Università
- Aggiornanento
- aggiornamento
- uso
- casi d'uso
- utilizzato
- Utente
- usa
- utilizzando
- APPREZZIAMO
- Valori
- varietà
- Fisso
- versatile
- visivo
- Washington
- Modo..
- we
- sito web
- servizi web
- WELL
- Che
- Che cosa è l'
- quale
- while
- largo
- Vasta gamma
- più ampia
- volere
- con
- entro
- parole
- lavorato
- flusso di lavoro
- lavoro
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro