Usare questo articolo per informazioni su Azure OpenAI on Your Data, che semplifica la connessione, l'inserimento e l'inserimento dei dati aziendali da parte degli sviluppatori per creare rapidamente copiloti personalizzati (anteprima). Migliora la comprensione dell'utente, accelera il completamento delle attività, migliora l'efficienza operativa e aiuta il processo decisionale.
Che cosa è Azure OpenAI On Your Data?
Azure OpenAI On Your Data consente di eseguire modelli di IA avanzati, ad esempio GPT-35-Turbo e GPT-4 sui dati Enterprise senza dover eseguire il training od ottimizzare i modelli. È possibile chattare e analizzare i dati con maggiore precisione. È possibile specificare le origini per supportare le risposte in base alle informazioni più recenti disponibili nelle origini dati designate. È possibile accedere ad Azure OpenAI sui dati usando un'API REST, tramite l'SDK o l'interfaccia basata sul Web nel portale di Azure AI Foundry. È anche possibile creare un'app Web che si connette ai dati per abilitare una soluzione di chat avanzata o distribuirla direttamente come copilota in Copilot Studio (anteprima).
Sviluppo con Azure OpenAI On Your Data
In genere, il processo di sviluppo usato con Azure OpenAI On Your Data è il seguente:
Inserimento: caricare file usando il portale di Azure AI Foundry o l'API di inserimento. Ciò consente di suddividere, suddividere e incorporare i dati in un'istanza di Ricerca di intelligenza artificiale di Azure che può essere usata dai modelli OpenAI di Azure. Se si ha un'origine dati supportata esistente, è anche possibile connetterla direttamente.
Sviluppo: dopo aver provato Azure OpenAI On Your Data, iniziare a sviluppare l'applicazione usando l'API REST e gli SDK, disponibili in diversi linguaggi. Verranno create richieste e finalità di ricerca da passare al Servizio OpenAI di Azure.
Inferenza: dopo la distribuzione dell'applicazione nell'ambiente preferito, verranno inviate richieste ad Azure OpenAI, che eseguirà diversi passaggi prima di restituire una risposta:
Generazione di finalità: il servizio determinerà la finalità della richiesta dell'utente per determinare una risposta corretta.
Recupero: il servizio recupera blocchi rilevanti di dati disponibili dall'origine dati connessa eseguendo una query su di essa. Ad esempio, usando una ricerca semantica o vettoriale.
I parametri, ad esempio la rigidità e il numero di documenti da recuperare, vengono utilizzati per influenzare il recupero.
Applicazione di filtri e riclassificazione : i risultati della ricerca dal passaggio di recupero vengono migliorati classificando e filtrando i dati per perfezionare la pertinenza.
Generazione della risposta: i dati risultanti vengono inviati insieme ad altre informazioni, ad esempio il messaggio di sistema al modello linguistico di grandi dimensioni (LLM), e la risposta viene inviata all'applicazione.
Per iniziare, connettere l'origine dati usando il portale di Azure AI Foundry e iniziare a porre domande e chattare sui dati.
Controlli degli accessi in base al ruolo di Azure per l'aggiunta di origini dati
Per usare completamente Azure OpenAI On Your Data, è necessario impostare uno o più ruoli controllo degli accessi in base al ruolo di Azure. Per altre informazioni, vedere Azure OpenAI nella configurazione dei dati.
Formati di dati e tipi di file
Azure OpenAI On Your Data supporta i tipi di file seguenti:
.txt
.md
.html
.docx
.pptx
.pdf
Sono presenti un limite di caricamento e alcune avvertenze sulla struttura dei documenti e su come potrebbero influire sulla qualità delle risposte del modello:
Se si converte dati da un formato non supportato in un formato supportato, ottimizzare la qualità della risposta del modello assicurando la conversione:
Non comporta una perdita significativa di dati.
Non aggiunge rumore imprevisto ai dati.
Se i file hanno una formattazione speciale, ad esempio tabelle e colonne o punti elenco, preparare i dati con lo script di preparazione dei dati disponibile in GitHub.
Per documenti e set di dati con testo lungo, è bene usare lo script di preparazione dei dati disponibile. Lo script suddivide i dati in modo che le risposte del modello siano più accurate. Questo script supporta anche file e immagini PDF analizzati.
Origini dati supportate
È necessario connettersi a un'origine dati per caricare i dati. Quando si vogliono usare i dati per chattare con un modello OpenAI di Azure, i dati vengono suddivisi in blocchi in un indice di ricerca in modo che i dati pertinenti possano essere trovati in base alle query utente.
Nota
I dati devono essere testo non strutturato per ottenere risultati ottimali. Se si dispone di dati semistrutturati o strutturati non testuali, è consigliabile convertirli in testo. Se i file hanno una formattazione speciale, ad esempio tabelle e colonne o punti elenco, preparare i dati con lo script di preparazione dei dati disponibile in GitHub.
Per alcune origini dati, ad esempio il caricamento di file dal computer locale (anteprima) o i dati contenuti in un account di archiviazione BLOB (anteprima), viene usato Azure AI Search. Quando si scelgono le origini dati seguenti, i dati vengono inseriti in un indice di Azure AI Search.
Per abilitare la ricerca vettoriale, è necessario un modello di incorporamento esistente distribuito nella risorsa OpenAI di Azure. Selezionare la distribuzione di incorporamento durante la connessione dei dati, quindi selezionare uno dei tipi di ricerca vettoriali in Gestione dati. Se si usa Azure AI Search come origine dati, assicurarsi di avere una colonna vettoriale nell'indice.
Se si usa un indice personalizzato, è possibile personalizzare il mapping dei campi quando si aggiunge l'origine dati per definire i campi di cui verrà eseguito il mapping durante la risposta alle domande. Per personalizzare il mapping dei campi, selezionare Usa mapping dei campi personalizzati nella pagina Origine dati quando si aggiunge l'origine dati.
Per migliorare la qualità della risposta al recupero e al modello delle informazioni, è consigliabile abilitare la ricerca semantica per le seguenti lingue di origine dati: inglese, francese, spagnolo, portoghese, italiano, tedesco, cinese(Zh), giapponese, coreano, russo e arabo.
Opzione di ricerca
Tipo di recupero
Prezzi aggiuntivi?
Vantaggi
keyword
Ricerca per parole chiave
Nessun prezzo aggiuntivo.
Esegue l'analisi e l'abbinamento di query in modo veloce e flessibile su campi ricercabili, usando termini o frasi in qualsiasi linguaggio supportato, con o senza operatori.
Migliora la precisione e la pertinenza dei risultati della ricerca usando un reranker (con i modelli di intelligenza artificiale) per comprendere il significato semantico dei termini di query e dei documenti restituiti dal ranker di ricerca iniziale
vector
Ricerca vettoriale
Prezzi aggiuntivi per l'account Azure OpenAI dalla chiamata al modello di incorporamento.
Consente di trovare documenti simili a un determinato input di query in base agli incorporamenti vettoriali del contenuto.
ibrido (vettore + parola chiave)
Un ibrido di ricerca vettoriale e ricerca di parole chiave
Prezzi aggiuntivi per l'account Azure OpenAI dalla chiamata al modello di incorporamento.
Esegue una ricerca di somiglianza sui campi vettoriali usando incorporamenti vettoriali, supportando anche l'analisi flessibile delle query e la ricerca full-text su campi alfanumerici usando query di termini.
ibrido (vettore + parola chiave) + semantico
Un ibrido di ricerca vettoriale, ricerca semantica e ricerca di parole chiave.
Prezzi aggiuntivi per l'account Azure OpenAI dalla chiamata al modello di incorporamento e prezzi aggiuntivi per l'uso della ricerca semantica.
Usa incorporamenti vettoriali, comprensione del linguaggio e analisi flessibile delle query per creare esperienze di ricerca avanzate e app di intelligenza artificiale generative in grado di gestire scenari complessi e diversificati di recupero delle informazioni.
Ricerca intelligente
Azure OpenAI On Your Data ha abilitato la ricerca intelligente per i dati. La ricerca semantica è abilitata per impostazione predefinita se si dispone sia della ricerca semantica che della ricerca di parole chiave. Se si hanno modelli di incorporamento, per impostazione predefinita la ricerca intelligente è ibrida e semantica.
Controllo di accesso a livello di documento
Nota
Il controllo di accesso a livello di documento è supportato quando si seleziona Azure AI Search come origine dati.
Azure OpenAI per i dati consente di limitare i documenti che possono essere usati nelle risposte per utenti diversi con filtri di sicurezza di Azure AI Search. Quando si abilita l'accesso a livello di documento, i risultati della ricerca restituiti da Azure AI Search e usati per generare una risposta sono eliminati in base all'appartenenza al gruppo Microsoft Entra dell'utente. È possibile abilitare l'accesso a livello di documento solo su indici di Azure AI Search esistenti. Per altre informazioni, vedere Azure OpenAI nella rete dati e configurazione dell'accesso.
Mapping dei campi indice
Se si usa un indice personalizzato, verrà richiesto nel portale di Azure AI Foundry di definire i campi di cui si vuole eseguire il mapping per rispondere alle domande quando si aggiunge l'origine dati. È possibile specificare più campi per i Dati contenutoe includere tutti i campi con testo relativo al caso d'uso.
In questo esempio, i campi mappati a Dati contenuto e Titolo forniscono informazioni al modello per rispondere alle domande. Il titolo viene usato anche per assegnare un titolo al testo della citazione. Il campo mappato al Nome file genera i nomi di citazione nella risposta.
Il mapping corretto di questi campi consente di garantire che il modello abbia una migliore qualità di risposta e citazione. È anche possibile configurarlo nell'API usando il parametro fieldsMapping.
Filtro di ricerca (API)
Se si vogliono implementare criteri aggiuntivi basati su valori per l'esecuzione di query, è possibile configurare un filtro di ricerca usando il parametro filternell'API REST.
Come vengono inseriti i dati in Azure AI Search
A partire da settembre 2024, le API di inserimento sono passate alla vettorizzazione integrata. Questo aggiornamento non modifica i contratti API esistenti. La vettorializzazione integrata, una nuova offerta di Ricerca di intelligenza artificiale di Azure, usa competenze predefinite per la suddivisione in blocchi e l'incorporamento dei dati di input. Azure OpenAI nel servizio di inserimento dati non usa più competenze personalizzate. Dopo la migrazione alla vettorializzazione integrata, il processo di inserimento ha subito alcune modifiche e di conseguenza vengono creati solo gli asset seguenti:
{job-id}-index
{job-id}-indexer, se viene specificata una pianificazione oraria o giornaliera, in caso contrario, l'indicizzatore viene pulito alla fine del processo di inserimento.
{job-id}-datasource
Il contenitore blocchi non è più disponibile, poiché questa funzionalità è ora gestita intrinsecamente da Ricerca di intelligenza artificiale di Azure.
Connessione dati
È necessario selezionare la modalità di autenticazione della connessione da Azure OpenAI, Azure AI Search e archiviazione BLOB di Azure. È possibile scegliere un'identità gestita assegnata dal sistema o una chiave API. Selezionando la chiave API come tipo di autenticazione, il sistema popola automaticamente la chiave API per connettersi con le risorse di Azure AI Search, Azure OpenAI e Archiviazione BLOB di Azure. Selezionando Identità gestita assegnata dal sistema, l'autenticazione sarà basata sull'assegnazione di ruolo. L'identità gestita assegnata dal sistema è selezionata per impostazione predefinita per la sicurezza.
Dopo aver selezionato il pulsante Avanti, il programma di installazione verrà convalidato automaticamente per l'uso del metodo di autenticazione selezionato. Se si verifica un errore, vedere l'articolo sulle assegnazioni di ruolo per aggiornare la configurazione.
Dopo aver corretto l'installazione, selezionare nuovamente Avanti per convalidare e continuare. Gli utenti dell'API possono anche configurare l'autenticazione con chiavi API e identità gestite assegnate.
Questa implementazione funziona meglio sui dati non strutturati e spaziali.
Preparazione dei dati
Usare lo script fornito in GitHub per preparare i dati.
Mapping dei campi indice
Quando si aggiunge l'origine dati di Azure Cosmos DB for MongoDB basato su vCore, è possibile specificare i campi dati per eseguire correttamente il mapping dei dati per il recupero.
Dati del contenuto (obbligatorio): uno o più campi forniti da usare per mettere a terra il modello sui dati. Per più campi, separare i valori con virgole, senza spazi.
Nome file/titolo/URL: usato per visualizzare altre informazioni quando viene fatto riferimento a un documento nella chat.
Campi vettoriali (obbligatorio): selezionare il campo nel database che contiene i vettori.
È possibile usare Archiviazione BLOB di Azure come origine dati se si desidera connettersi all'archivio BLOB di Azure esistente e usare i file archiviati nei contenitori.
Pianificare gli aggiornamenti automatici degli indici
Nota
L'aggiornamento automatico degli indici è supportato solo per Archiviazione BLOB di Azure.
Per mantenere aggiornato l'indice di Ricerca intelligenza artificiale di Azure con i dati più recenti, è possibile pianificare un aggiornamento automatico dell'indice anziché aggiornarlo manualmente ogni volta che i dati vengono aggiornati. L'aggiornamento automatico dell'indice è disponibile solo quando si sceglie Archiviazione BLOB di Azure come origine dati. Per abilitare un aggiornamento automatico dell'indice:
In Seleziona o aggiungi origine dati selezionare Pianificazione indicizzatore e scegliere la frequenza di aggiornamento da applicare.
Dopo che l'inserimento dati è impostato su una cadenza diversa da una volta, gli indicizzatori di Ricerca intelligenza artificiale di Azure verranno creati con una pianificazione equivalente a 0.5 * the cadence specified. Ciò significa che alla frequenza specificata, gli indicizzatori eseguiranno il pull, la rielaborazione e indicizzaranno i documenti aggiunti o modificati dal contenitore di archiviazione. Questo processo garantisce che i dati aggiornati vengano pre-elaborati e indicizzati automaticamente nell'indice finale alla frequenza desiderata. Per aggiornare i dati, è sufficiente caricare i documenti aggiuntivi dal portale di Azure. Nel portale selezionare Account di archiviazione>Contenitori. Selezionare il nome del contenitore originale e quindi Carica. L'indice rileverà automaticamente i file dopo il periodo di aggiornamento pianificato. Gli asset intermedi creati nella risorsa di Ricerca intelligenza artificiale di Azure non verranno puliti dopo l'inserimento per consentire esecuzioni future. Questi asset sono:
{Index Name}-index
{Index Name}-indexer
{Index Name}-datasource
{Index Name}-skillset
Per modificare la pianificazione, è possibile usare il portale di Azure.
Aprire la pagina della risorsa di ricerca nel portale di Azure
Selezionare Indicizzatori nel riquadro sinistro
Eseguire i passaggi seguenti sui due indicizzatori con il nome dell'indice come prefisso.
Selezionare l'indicizzatore per aprirlo. Selezionare quindi la scheda Impostazioni.
Aggiornare la pianificazione alla frequenza desiderata da "Pianificazione" o specificare una frequenza personalizzata da "Intervallo (minuti)"
Seleziona Salva.
Come vengono inseriti i dati in Azure AI Search
A partire da settembre 2024, le API di inserimento sono passate alla vettorizzazione integrata. Questo aggiornamento non modifica i contratti API esistenti. La vettorializzazione integrata, una nuova offerta di Ricerca di intelligenza artificiale di Azure, usa competenze predefinite per la suddivisione in blocchi e l'incorporamento dei dati di input. Azure OpenAI nel servizio di inserimento dati non usa più competenze personalizzate. Dopo la migrazione alla vettorializzazione integrata, il processo di inserimento ha subito alcune modifiche e di conseguenza vengono creati solo gli asset seguenti:
{job-id}-index
{job-id}-indexer, se viene specificata una pianificazione oraria o giornaliera, in caso contrario, l'indicizzatore viene pulito alla fine del processo di inserimento.
{job-id}-datasource
Il contenitore blocchi non è più disponibile, poiché questa funzionalità è ora gestita intrinsecamente da Ricerca di intelligenza artificiale di Azure.
Connessione dati
È necessario selezionare la modalità di autenticazione della connessione da Azure OpenAI, Azure AI Search e archiviazione BLOB di Azure. È possibile scegliere un'identità gestita assegnata dal sistema o una chiave API. Selezionando la chiave API come tipo di autenticazione, il sistema popola automaticamente la chiave API per connettersi con le risorse di Azure AI Search, Azure OpenAI e Archiviazione BLOB di Azure. Selezionando Identità gestita assegnata dal sistema, l'autenticazione sarà basata sull'assegnazione di ruolo. L'identità gestita assegnata dal sistema è selezionata per impostazione predefinita per la sicurezza.
Dopo aver selezionato il pulsante Avanti, il programma di installazione verrà convalidato automaticamente per l'uso del metodo di autenticazione selezionato. Se si verifica un errore, vedere l'articolo sulle assegnazioni di ruolo per aggiornare la configurazione.
Dopo aver corretto l'installazione, selezionare nuovamente Avanti per convalidare e continuare. Gli utenti dell'API possono anche configurare l'autenticazione con chiavi API e identità gestite assegnate.
Usando il portale di Azure AI Foundry, è possibile caricare file dal computer per provare Azure OpenAI nei dati. È anche possibile creare un nuovo account di archiviazione BLOB di Azure e una risorsa di Ricerca intelligenza artificiale di Azure. Il servizio archivia quindi i file in un contenitore di archiviazione di Azure ed esegue l'inserimento dal contenitore. È possibile usare l'articolo sull'avvio rapido per informazioni su come usare questa opzione di origine dati.
Come vengono inseriti i dati in Azure AI Search
A partire da settembre 2024, le API di inserimento sono passate alla vettorizzazione integrata. Questo aggiornamento non modifica i contratti API esistenti. La vettorializzazione integrata, una nuova offerta di Ricerca di intelligenza artificiale di Azure, usa competenze predefinite per la suddivisione in blocchi e l'incorporamento dei dati di input. Azure OpenAI nel servizio di inserimento dati non usa più competenze personalizzate. Dopo la migrazione alla vettorializzazione integrata, il processo di inserimento ha subito alcune modifiche e di conseguenza vengono creati solo gli asset seguenti:
{job-id}-index
{job-id}-indexer, se viene specificata una pianificazione oraria o giornaliera, in caso contrario, l'indicizzatore viene pulito alla fine del processo di inserimento.
{job-id}-datasource
Il contenitore blocchi non è più disponibile, poiché questa funzionalità è ora gestita intrinsecamente da Ricerca di intelligenza artificiale di Azure.
Connessione dati
È necessario selezionare la modalità di autenticazione della connessione da Azure OpenAI, Azure AI Search e archiviazione BLOB di Azure. È possibile scegliere un'identità gestita assegnata dal sistema o una chiave API. Selezionando la chiave API come tipo di autenticazione, il sistema popola automaticamente la chiave API per connettersi con le risorse di Azure AI Search, Azure OpenAI e Archiviazione BLOB di Azure. Selezionando Identità gestita assegnata dal sistema, l'autenticazione sarà basata sull'assegnazione di ruolo. L'identità gestita assegnata dal sistema è selezionata per impostazione predefinita per la sicurezza.
Dopo aver selezionato il pulsante Avanti, il programma di installazione verrà convalidato automaticamente per l'uso del metodo di autenticazione selezionato. Se si verifica un errore, vedere l'articolo sulle assegnazioni di ruolo per aggiornare la configurazione.
Dopo aver corretto l'installazione, selezionare nuovamente Avanti per convalidare e continuare. Gli utenti dell'API possono anche configurare l'autenticazione con chiavi API e identità gestite assegnate.
È possibile incollare gli URL e il servizio archivierà il contenuto della pagina Web, usandolo durante la generazione di risposte dal modello. Il contenuto negli URL/indirizzi Web usati deve avere le caratteristiche seguenti per essere inseriti correttamente:
È supportato un solo livello di collegamenti annidati. Verranno recuperati solo fino a 20 collegamenti nella pagina Web.
Dopo aver aggiunto l'URL o l'indirizzo Web per l'inserimento dati, le pagine Web dall'URL vengono recuperate e salvate in Archiviazione BLOB di Azure con un nome contenitore: webpage-<index name>. Ogni URL verrà salvato in un contenitore diverso all'interno dell'account. I file vengono quindi indicizzati in un indice di Azure AI Search, che viene usato per il recupero durante la chat con il modello.
Come vengono inseriti i dati in Azure AI Search
A partire da settembre 2024, le API di inserimento sono passate alla vettorizzazione integrata. Questo aggiornamento non modifica i contratti API esistenti. La vettorializzazione integrata, una nuova offerta di Ricerca di intelligenza artificiale di Azure, usa competenze predefinite per la suddivisione in blocchi e l'incorporamento dei dati di input. Azure OpenAI nel servizio di inserimento dati non usa più competenze personalizzate. Dopo la migrazione alla vettorializzazione integrata, il processo di inserimento ha subito alcune modifiche e di conseguenza vengono creati solo gli asset seguenti:
{job-id}-index
{job-id}-indexer, se viene specificata una pianificazione oraria o giornaliera, in caso contrario, l'indicizzatore viene pulito alla fine del processo di inserimento.
{job-id}-datasource
Il contenitore blocchi non è più disponibile, poiché questa funzionalità è ora gestita intrinsecamente da Ricerca di intelligenza artificiale di Azure.
Connessione dati
È necessario selezionare la modalità di autenticazione della connessione da Azure OpenAI, Azure AI Search e archiviazione BLOB di Azure. È possibile scegliere un'identità gestita assegnata dal sistema o una chiave API. Selezionando la chiave API come tipo di autenticazione, il sistema popola automaticamente la chiave API per connettersi con le risorse di Azure AI Search, Azure OpenAI e Archiviazione BLOB di Azure. Selezionando Identità gestita assegnata dal sistema, l'autenticazione sarà basata sull'assegnazione di ruolo. L'identità gestita assegnata dal sistema è selezionata per impostazione predefinita per la sicurezza.
Dopo aver selezionato il pulsante Avanti, il programma di installazione verrà convalidato automaticamente per l'uso del metodo di autenticazione selezionato. Se si verifica un errore, vedere l'articolo sulle assegnazioni di ruolo per aggiornare la configurazione.
Dopo aver corretto l'installazione, selezionare nuovamente Avanti per convalidare e continuare. Gli utenti dell'API possono anche configurare l'autenticazione con chiavi API e identità gestite assegnate.
Usare un modello di incorporamento text-embedding-ada-002 OpenAI di Azure esistente o
Usare un modello di incorporamento personalizzato ospitato in Elasticsearch.
Preparare i dati usando il notebook Python disponibile in GitHub.
Richiedere l'accesso
L'uso dell'origine dati Elasticsearch è una funzionalità di anteprima soggetta alle condizioni del servizio di accesso limitato nei termini specifici del servizio per i servizi di intelligenza artificiale di Azure. È necessario compilare e inviare un modulo di richiesta per richiedere l'accesso all'origine dati Elasticsearch. Il modulo richiede informazioni sull'azienda e sullo scenario per cui si prevede di usare l'origine dati Elasticsearch. Dopo aver inviato il modulo, il team di Servizi di Azure AI lo esaminerà e invierà una decisione entro 10 giorni lavorativi.
Connettere Elasticsearch ad Azure OpenAI On Your Data
Configurare Elasticsearch e ottenere le informazioni di connessione.
È necessario immettere l'endpoint Elasticsearch e la chiave API codificata per connettersi al database Elasticsearch. Fare quindi clic su Verifica connessione.
Selezionare l'indice a cui connettersi.
(facoltativo) usare un mapping di campi personalizzato.
È possibile personalizzare il mapping dei campi quando si aggiunge l'origine dati per definire i campi di cui verrà eseguito il mapping durante la risposta alle domande o usare i valori predefiniti.
Scegliere il tipo di ricerca. Azure OpenAI On Your Data fornisce i tipi di ricerca seguenti che è possibile usare quando si aggiunge l'origine dati.
Continuare con le schermate visualizzate e selezionare Salva e chiudi.
Tipi di ricerca
Azure OpenAI On Your Data fornisce i tipi di ricerca seguenti che è possibile usare quando si aggiunge l'origine dati.
Per abilitare la ricerca vettoriale, è necessario un modello di incorporamento esistente distribuito nella risorsa OpenAI di Azure o ospitato in Elasticsearch. Selezionare la distribuzione di incorporamento durante la connessione dei dati, quindi selezionare uno dei tipi di ricerca vettoriali in Gestione dati.
Opzione di ricerca
Tipo di recupero
Prezzi aggiuntivi?
Vantaggi
keyword
Ricerca per parole chiave
Nessun prezzo aggiuntivo.
Esegue l'analisi e l'abbinamento di query in modo veloce e flessibile su campi ricercabili, usando termini o frasi in qualsiasi linguaggio supportato, con o senza operatori.
vector
Ricerca vettoriale
Prezzi aggiuntivi per l'account Azure OpenAI dalla chiamata al modello di incorporamento.
Consente di trovare documenti simili a un determinato input di query in base agli incorporamenti vettoriali del contenuto.
Mapping dei campi indice
È possibile personalizzare il mapping dei campi quando si aggiunge l'origine dati per definire i campi di cui verrà eseguito il mapping durante la risposta alle domande. Per personalizzare il mapping dei campi, selezionare Usa mapping dei campi personalizzati nella pagina Origine dati quando si aggiunge l'origine dati. È possibile specificare più campi per i Dati contenutoe includere tutti i campi con testo relativo al caso d'uso.
Il mapping corretto di questi campi consente di garantire che il modello abbia una migliore qualità di risposta e citazione. È anche possibile configurare questo nell'API usando il parametro fields_mapping.
Usare Elasticsearch come origine dati tramite API
Oltre all'uso di database Elasticsearch nel portale di Azure AI Foundry, è anche possibile usare il database Elasticsearch usando l'API.
È possibile connettere l'indice vettoriale di MongoDB Atlas ad Azure OpenAI sui dati per l'inferenza. È possibile usarlo tramite il portale, l'API e l'SDK di Azure AI Foundry.
Per ottenere una buona qualità di recupero, assicurarsi che l'indice vettoriale venga creato con il modello di incorporamento azure OpenAI ada002.
È consigliabile usare uno dei modelli seguenti per MongoDB Atlas
gpt-4 (0613)
gpt-4 (turbo-2024-04-09)
gpt-4o (2024-05-13)
gpt-35-turbo (1106)
Impostazione
È supportato solo l'accesso alla rete pubblica. Assicurarsi che il database consenta l'accesso pubblico
Preparazione dei dati
Se si vuole creare un nuovo indice di ricerca vettoriale con i documenti, è possibile usare lo script disponibile in GitHub per preparare i dati da usare con Azure OpenAI nei dati.
Connessione all'account MongoDB
Per aggiungere l'origine dati, è prima necessario creare una connessione a MongoDB Atlas. Questa connessione include informazioni come l'autenticazione (nome utente e password). Immettere l'endpoint del stringa di connessione Atlas di MongoDB usando il formato seguente: mongodb+srv://{user_name}:{password}@{endpoint}/?appName={application_name}. Per altre informazioni sui metodi di stringa di connessione, vedere la documentazione di MongoDB.
Indice di origine
Dopo aver creato una connessione o aver scelto una connessione esistente, è possibile immettere le informazioni per connettersi a un indice vettoriale specifico all'interno di questo account connesso. È necessario immettere il nome del database, della raccolta e dell'indice vettoriale. Assicurarsi di aver immesso correttamente le informazioni per compilare correttamente la connessione.
Per usare MongoDB Atlas, è necessario un modello di incorporamento di Azure OpenAI ada002. Questo modello verrà creato automaticamente se non ne è già disponibile uno, che comporta l'utilizzo nell'account .
Mapping dei campi indice
Quando si aggiunge l'origine dati Di MongoDB Atlas, è possibile specificare i campi dati per eseguire correttamente il mapping dei dati per il recupero.
Dati sul contenuto (obbligatorio): contenuto di testo principale di ogni documento. Per più campi, separare i valori con virgole, senza spazi.
Campo vettore (obbligatorio): nome del campo nell'indice di ricerca di MongoDB Atlas che contiene i vettori.
Nome file/titolo/URL: usato per visualizzare altre informazioni quando viene fatto riferimento a un documento nella chat.
Eseguire la distribuzione in un copilota (anteprima), in un’app Teams (anteprima) o in un'app Web
Dopo aver connesso Azure OpenAI ai dati, è possibile distribuirlo usando il pulsante Distribuisci in nel portale di Azure AI Foundry.
In questo modo sono disponibili più opzioni per la distribuzione della soluzione.
È possibile eseguire la distribuzione in copilota in Copilot Studio (anteprima) direttamente dal portale di Azure AI Foundry, consentendo di portare esperienze di conversazione in vari canali, ad esempio Microsoft Teams, siti Web, Dynamics 365 e altri canali di Azure servizio Bot. Il tenant usato nel servizio Azure OpenAI e Copilot Studio (anteprima) deve essere lo stesso. Per altre informazioni, vedere Usare una connessione ad Azure OpenAI On Your Data.
Nota
La distribuzione in copilota in Copilot Studio (anteprima) è disponibile solo nelle aree degli Stati Uniti.
Un'app Teams consente di offrire agli utenti di Teams un'esperienza di conversazione per migliorare l'efficienza operativa e democratizzare l'accesso alle informazioni. Questa app Teams è configurata per gli utenti all'interno del tenant dell'account Azure e per gli scenari di chat personale (chat non di gruppo).
Installata la versione più recente di Toolkit di Teams. Si tratta di un'estensione di Visual Studio Code che crea uno scaffolding del progetto per l'app.
Abilitare le app di Teams personalizzate e attivare il caricamento di app personalizzate nell'account (istruzioni qui)
Installata l’interfaccia della riga di comando di Azure. È uno strumento da riga di comando multipiattaforma per connettersi ad Azure ed eseguire comandi amministrativi nelle risorse di Azure. Per altre informazioni sulla configurazione delle variabili di ambiente, vedere la documentazione di SDK di Azure.
All'account Azure è stato assegnato il ruolo di utente dei servizi cognitivi di Azure OpenAI o collaboratore per i servizi cognitivi di Azure OpenAI della risorsa del Servizio OpenAI di Azure in uso, consentendo all'account di effettuare chiamate API con il Servizio OpenAI di Azure. Per altre informazioni, vedere Azure OpenAI nella configurazione dei dati e Aggiungere un'assegnazione di ruolo a una risorsa OpenAI di Azure per istruzioni sull'impostazione di questo ruolo nel portale di Azure.
È possibile eseguire la distribuzione in un'app Teams autonoma direttamente dal portale di Azure AI Foundry. Segui i passaggi riportati di seguito:
Dopo aver aggiunto i dati al modello di chat, selezionare Distribuisci e quindi una nuova app Teams (anteprima).
Immettere il nome dell'app Teams e scaricare il file ZIP risultante.
Estrarre il file ZIP e aprire la cartella in Visual Studio Code.
Se si sceglie la chiave API nel passaggio di connessione dati, copiare e incollare manualmente la chiave di Azure AI Search nel file src\prompts\chat\config.json. La chiave di ricerca di Intelligenza artificiale di Azure è disponibile nel portale di Azure AI Foundry Playground selezionando il pulsante Visualizza codice con la chiave disponibile in Chiave risorsa di Ricerca di Azure. Se si sceglie Identità gestita assegnata dal sistema, è possibile ignorare questo passaggio. Altre informazioni sulle diverse opzioni di connessione dati sono disponibili nella sezione Connessione dati.
Aprire il terminale di Visual Studio Code e accedere all'interfaccia della riga di comando di Azure, selezionando l'account a cui è stato assegnato il ruolo di utente del servizio cognitivo di OpenAI. Usare il comando az login nel terminale per accedere.
Per eseguire il debug dell'app, premere il tasto F5 o selezionare Avvia ed esegui il debug nel riquadro sinistro. Selezionare quindi l'ambiente di debug dall'elenco a discesa. Viene aperta una pagina Web in cui è possibile chattare con il copilota personalizzato.
Nota
L'esperienza di citazione è disponibile solo in Debug (Edge) o Debug (Chrome).
Dopo aver testato il copilota, è possibile effettuare il provisioning, la distribuzione e la pubblicazione dell'app Teams selezionando l'estensione Toolkit di Teams nel riquadro sinistro in Visual Studio Code. Eseguire le fasi di provisioning, distribuzione e pubblicazione separate nella sezione Ciclo di vita. Potrebbe essere richiesto di accedere all'account Microsoft 365 in cui si dispone delle autorizzazioni per caricare app personalizzate e l'account Azure.
Assegnare il ruolo Utente Servizio cognitivo di OpenAI alla risorsa distribuita Identità gestita assegnata dall'utente del copilota personalizzato.
Vai al portale di Azure e seleziona la risorsa appena creata Identità gestita assegnata dall'utente per il copilota personalizzato.
Passare ad Assegnazioni di ruolo di Azure.
Selezionare Aggiungi un'assegnazione di ruolo. Specificare i parametri seguenti:
Ambito: gruppo di risorse
Sottoscrizione: la sottoscrizione della risorsa di Azure OpenAI
Gruppo di risorse della risorsa di Azure OpenAI
Ruolo: Utente del servizio cognitivo di OpenAI
Distribuire l'app in Azure seguendo le istruzioni riportate in Distribuire nel cloud.
Pubblicare l'app in Teams seguendo le istruzioni riportate in Pubblicare app Teams.
Importante
L'app Teams dove essere usata nello stesso tenant dell'account Azure usato durante la configurazione, in quanto per impostazione predefinita è configurata in modo sicuro per l'utilizzo in un tenant singolo. L'utilizzo di questa app con un account Teams non associato al tenant di Azure usato durante la configurazione restituirà un errore.
Distribuire un'app Web autonoma consente agli utenti di interagire con i modelli di chat attraverso un'interfaccia utente grafica. Per altre informazioni, vedere Usare l'app Web OpenAI di Azure.
Configurare l'accesso e la rete per Azure OpenAI nei dati
È possibile usare Azure OpenAI Nei dati e proteggere dati e risorse con il controllo degli accessi in base al ruolo, le reti virtuali e gli endpoint privati di Microsoft Entra ID. È anche possibile limitare i documenti che possono essere usati nelle risposte per utenti diversi con filtri di sicurezza di Ricerca intelligenza artificiale di Azure. Vedere Azure OpenAI in Accesso ai dati e configurazione di rete.
Procedure consigliate
Usare le sezioni seguenti per informazioni su come migliorare la qualità delle risposte fornite dal modello.
Parametro di inserimento
Quando i dati vengono inseriti in Azure AI Search, è possibile modificare le impostazioni aggiuntive seguenti in Studio o nell'API di inserimento.
Dimensioni blocco (anteprima)
Azure OpenAI On Your Data elabora i documenti suddividendoli in blocchi prima di inserirli. La dimensione del blocco è la dimensione massima in termini di numero di token di qualsiasi blocco nell'indice di ricerca. Le dimensioni dei blocchi e il numero di documenti recuperati insieme controllano la quantità di informazioni (token) incluse nella richiesta inviata al modello. In generale, la dimensione del blocco moltiplicata per il numero di documenti recuperati è il numero totale di token inviati al modello.
Impostazione delle dimensioni del blocco per il caso d'uso
La dimensione predefinita del blocco è 1.024 token. Tuttavia, data l'univocità dei dati, è possibile che si trovino dimensioni di blocco diverse (ad esempio 256, 512 o 1.536 token) più efficaci.
La regolazione delle dimensioni del blocco può migliorare le prestazioni del chatbot. Anche se la ricerca delle dimensioni ottimali dei blocchi richiede una prova e un errore, iniziare considerando la natura del set di dati. Una dimensione di blocco più piccola è in genere migliore per i set di dati con fatti diretti e meno contesto, mentre una dimensione di blocchi più grande potrebbe essere utile per informazioni più contestuali, anche se potrebbe influire sulle prestazioni di recupero.
Una piccola dimensione di blocco come 256 produce blocchi più granulari. Questa dimensione significa anche che il modello utilizzerà meno token per generare il relativo output (a meno che il numero di documenti recuperati non sia molto elevato), potenzialmente costa meno. I blocchi più piccoli indicano anche che il modello non deve elaborare e interpretare sezioni lunghe di testo, riducendo il rumore e la distrazione. Questa granularità e messa a fuoco rappresentano tuttavia un potenziale problema. Le informazioni importanti potrebbero non essere tra i blocchi recuperati in alto, soprattutto se il numero di documenti recuperati è impostato su un valore basso come 3.
Suggerimento
Tenere presente che la modifica delle dimensioni del blocco richiede che i documenti vengano reinseriti, quindi è utile prima modificare i parametri di runtime come la rigidità e il numero di documenti recuperati. Valutare la possibilità di modificare le dimensioni del blocco se non si ottengono ancora i risultati desiderati:
Se si riscontra un numero elevato di risposte, ad esempio "Non so" per le domande con risposte che devono trovarsi nei documenti, è consigliabile ridurre le dimensioni del blocco a 256 o 512 per migliorare la granularità.
Se il chatbot fornisce alcuni dettagli corretti ma mancano altri, che diventa evidente nelle citazioni, aumentando le dimensioni del blocco a 1.536 potrebbe aiutare a acquisire informazioni più contestuali.
Parametri del runtime
È possibile modificare le impostazioni aggiuntive seguenti nella sezione Parametri di dati nel portale di Azure AI Foundry e nell'API. Non è necessario eseguire il ripristino dei dati quando si aggiornano questi parametri.
Nome parametro
Descrizione
Limitare le risposte ai dati
Questo flag configura l'approccio del chatbot alla gestione delle query non correlate all'origine dati o quando i documenti di ricerca non sono sufficienti per una risposta completa. Quando questa impostazione è disabilitata, il modello integra le risposte con le proprie conoscenze oltre ai documenti. Quando questa impostazione è abilitata, il modello tenta di basarsi solo sui documenti per le risposte. Si tratta del parametro inScope nell'API e impostato su true per impostazione predefinita.
Documenti recuperati
Questo parametro è un numero intero che può essere impostato su 3, 5, 10 o 20 e controlla il numero di blocchi di documento forniti al modello linguistico di grandi dimensioni per simulare la risposta finale. Per impostazione predefinita, il valore è impostato su 5. Il processo di ricerca può essere rumoroso e talvolta, a causa della suddivisione in blocchi, le informazioni rilevanti potrebbero essere distribuite tra più blocchi nell'indice di ricerca. La selezione di un numero top-K, ad esempio 5, garantisce che il modello possa estrarre informazioni rilevanti, nonostante le limitazioni intrinseche della ricerca e della suddivisione in blocchi. Tuttavia, l'aumento del numero troppo elevato può potenzialmente distrarre il modello. Inoltre, il numero massimo di documenti che possono essere usati in modo efficace dipende dalla versione del modello, in quanto ognuno ha una diversa dimensione del contesto e capacità per la gestione dei documenti. Se si ritiene che le risposte non siano presenti contesto importante, provare ad aumentare questo parametro. Questo è il parametro topNDocuments nell'API e è 5 per impostazione predefinita.
Rigore
Determina l'aggressività del sistema nell'applicazione di filtri ai documenti di ricerca in base ai punteggi di somiglianza. Il sistema esegue query in Ricerca di Azure o in altri archivi documenti, quindi decide quali documenti fornire a modelli linguistici di grandi dimensioni, ad esempio ChatGPT. L'applicazione di filtri ai documenti irrilevanti può migliorare significativamente le prestazioni del chatbot end-to-end. Alcuni documenti vengono esclusi dai risultati top-K se hanno punteggi di somiglianza bassi prima di inoltrarli al modello. Questo controllo è controllato da un valore intero compreso tra 1 e 5. L'impostazione di questo valore su 1 indica che il sistema filtra in modo minimo i documenti in base alla somiglianza della ricerca con la query utente. Viceversa, un'impostazione di 5 indica che il sistema filtra in modo aggressivo i documenti, applicando una soglia di somiglianza molto elevata. Se si scopre che il chatbot omette informazioni rilevanti, ridurre la rigidità del filtro (impostare il valore più vicino a 1) per includere più documenti. Viceversa, se documenti irrilevanti distraggono le risposte, aumentare la soglia (impostare il valore più vicino a 5). Si tratta del parametro strictness nell'API e impostato su 3 per impostazione predefinita.
Riferimenti non autorizzati
È possibile che il modello restituisca "TYPE":"UNCITED_REFERENCE" anziché "TYPE":CONTENT nell'API per i documenti recuperati dall'origine dati, ma non inclusi nella citazione. Ciò può essere utile per il debug ed è possibile controllare questo comportamento modificando i parametri di esecuzione rigidità e runtime dei documenti recuperati descritti in precedenza.
Messaggio di sistema
È possibile definire un messaggio di sistema per indirizzare la risposta del modello quando si usa Azure OpenAI On Your Data. Questo messaggio consente di personalizzare le risposte oltre al modello di generazione aumentata (RAG) di recupero usato da Azure OpenAI On Your Data. Il messaggio di sistema viene usato oltre a un prompt di base interno per fornire l'esperienza. Per supportare questo problema, il messaggio di sistema viene troncato dopo un numero specifico di token per garantire che il modello possa rispondere alle domande usando i dati. Se si definisce un comportamento aggiuntivo oltre all'esperienza predefinita, assicurarsi che la richiesta di sistema sia dettagliata e spiega la personalizzazione esatta prevista.
Dopo aver selezionato aggiungi il set di dati, è possibile usare la sezione Messaggio di sistema nel portale di Azure AI Foundry o il role_informationparametro nell'API.
Modelli di utilizzo potenziali
Definire un ruolo
È possibile definire un ruolo che si desidera usare per l'assistente. Ad esempio, se si sta creando un bot di supporto, è possibile aggiungere "Si è un addetto all'assistenza clienti esperto di incidenti che aiuta gli utenti a risolvere nuovi problemi".
Definire il tipo di dati da recuperare
È anche possibile aggiungere la natura dei dati che si sta fornendo all'assistente.
Definire l'argomento o l'ambito del set di dati, ad esempio "report finanziario", "documento accademico" o "report degli incidenti". Ad esempio, per il supporto tecnico, è possibile aggiungere "È possibile rispondere alle query usando informazioni provenienti da incidenti simili nei documenti recuperati".
Se i dati hanno determinate caratteristiche, è possibile aggiungere questi dettagli al messaggio di sistema. Ad esempio, se i documenti sono in giapponese, è possibile aggiungere "Recuperare i documenti giapponesi e leggerli attentamente in giapponese e rispondere in giapponese".
Se i documenti includono dati strutturati come tabelle di un report finanziario, è anche possibile aggiungere questo fatto alla richiesta di sistema. Ad esempio, se i dati contengono tabelle, è possibile aggiungere "Vengono forniti dati sotto forma di tabelle relative ai risultati finanziari ed è necessario leggere la riga della tabella in base alla riga per eseguire calcoli per rispondere alle domande dell'utente".
Definire il sink di output
È anche possibile modificare l'output del modello definendo un messaggio di sistema. Ad esempio, se si desidera assicurarsi che le risposte dell'assistente siano in francese, è possibile aggiungere un prompt come "Si è un assistente IA che aiuta gli utenti che capiscono il francese a trovare informazioni. Le domande dell'utente possono essere in inglese o francese. Leggere attentamente i documenti recuperati e rispondere in francese. Tradurre le informazioni dai documenti in francese per garantire che tutte le risposte siano in francese".
Riconfermare il comportamento critico
Azure OpenAI On Your Data funziona inviando istruzioni a un modello linguistico di grandi dimensioni sotto forma di richieste di risposta alle query utente usando i dati. Se esiste un determinato comportamento critico per l'applicazione, è possibile ripetere il comportamento nel messaggio di sistema per aumentarne l'accuratezza. Ad esempio, per guidare il modello a rispondere solo dai documenti, è possibile aggiungere "Rispondere solo usando documenti recuperati e senza usare le proprie conoscenze. Generare citazioni per i documenti recuperati per ogni attestazione nella risposta. Se non è possibile rispondere alla domanda dell'utente usando documenti recuperati, spiegare il motivo per cui i documenti sono rilevanti per le query utente. In ogni caso, non rispondere usando le proprie conoscenze".
Trucchi sulla progettazione delle richieste
Ci sono molti trucchi nella progettazione prompt che è possibile provare a migliorare l'output. Un esempio è la richiesta concatenazione in cui è possibile aggiungere "Si considerino le informazioni dettagliate nei documenti recuperati per rispondere alle query dell'utente. Estrarre le informazioni pertinenti per le query utente dai documenti passo dopo passo e formare una risposta di tipo bottom-up dalle informazioni estratte dai documenti pertinenti".
Nota
Il messaggio di sistema viene usato per modificare il modo in cui l'assistente GPT risponde a una domanda dell'utente in base alla documentazione recuperata. Non influisce sul processo di recupero. Se vuoi fornire istruzioni per il processo di recupero, è preferibile includerli nelle domande.
Il messaggio di sistema è solo materiale sussidiario. Il modello potrebbe non essere conforme a tutte le istruzioni specificate perché è stato avviato con determinati comportamenti, ad esempio l'obiettività, ed evitando affermazioni controverse. Potrebbe verificarsi un comportamento imprevisto se il messaggio di sistema è in contrasto con questi comportamenti.
Limitare le risposte ai dati
Questa opzione incoraggia il modello a rispondere solo usando i propri dati ed è selezionata per impostazione predefinita. Se si deseleziona questa opzione, il modello potrebbe applicare più facilmente le proprie conoscenze interne per rispondere. Determinare la selezione corretta in base al caso d'uso e allo scenario.
Interazione con il modello
Usare le procedure seguenti per ottenere risultati ottimali durante la chat con il modello.
Cronologia conversazioni
Prima di avviare una nuova conversazione (o porre una domanda non correlata a quelle precedenti), cancellare la cronologia delle chat.
È possibile ottenere risposte diverse per la stessa domanda tra il primo turno di conversazione e i turni successivi perché la cronologia delle conversazioni modifica lo stato corrente del modello. Se si ricevono risposte non corrette, segnalarlo come bug di qualità.
Risposta del modello
Se non si è soddisfatti della risposta del modello per una domanda specifica, provare a rendere la domanda più specifica o più generica per verificare la risposta del modello e rimodulare la domanda di conseguenza.
Evitare di porre domande lunghe e suddividerle in più domande, se possibile. I modelli GPT hanno limiti al numero di token che possono accettare. I limiti dei token vengono conteggiati per: la domanda dell'utente, il messaggio di sistema, i documenti di ricerca recuperati (blocchi), i prompt interni, la cronologia delle conversazioni (se presente) e la risposta. Se la domanda supera il limite di token, verrà troncata.
Supporto multilingue
Attualmente, la ricerca di parole chiave e la ricerca semantica in Azure OpenAI On Your Data supportano query nella stessa lingua dei dati nell'indice. Ad esempio, se i dati sono in giapponese, anche le query immesse devono essere in giapponese. Per il recupero di documenti multilingue, è consigliabile compilare l'indice con la ricerca vettoriale abilitata.
Per migliorare la qualità della risposta al recupero e al modello delle informazioni, è consigliabile abilitare la ricerca semantica per le seguenti lingue: inglese, francese, spagnolo, portoghese, italiano, tedesco, cinese(Zh), giapponese, coreano, russo e arabo
È consigliabile usare un messaggio di sistema per informare il modello che i dati si trovano in un'altra lingua. Ad esempio:
*"*Si è un assistente IA progettato per aiutare gli utenti a estrarre informazioni dai documenti giapponesi recuperati. Esaminare attentamente i documenti giapponesi prima di formulare una risposta. La query dell'utente sarà in giapponese ed è necessario rispondere anche in giapponese".
Se si dispone di documenti in più lingue, è consigliabile creare un nuovo indice per ogni lingua e creare connessioni separate a OpenAI di Azure.
Streaming di dati
È possibile inviare una richiesta di streaming usando il parametro stream, consentendo l'invio e la ricezione incrementale dei dati, senza attendere l'intera risposta API. Ciò può migliorare le prestazioni e l'esperienza utente, in particolare per dati di grandi dimensioni o dinamici.
{
"stream": true,
"dataSources": [
{
"type": "AzureCognitiveSearch",
"parameters": {
"endpoint": "'$AZURE_AI_SEARCH_ENDPOINT'",
"key": "'$AZURE_AI_SEARCH_API_KEY'",
"indexName": "'$AZURE_AI_SEARCH_INDEX'"
}
}
],
"messages": [
{
"role": "user",
"content": "What are the differences between Azure Machine Learning and Azure AI services?"
}
]
}
Cronologia conversazioni per risultati migliori
Quando si chatta con un modello, fornendo una cronologia della chat, il modello restituirà risultati di qualità più elevati. Non è necessario includere la proprietà context dei messaggi di assistente nelle richieste API per ottenere una migliore qualità della risposta. Per informazioni dettagliate, vedere la documentazione di riferimento API.
Chiamata di funzione
Alcuni modelli OpenAI di Azure consentono di definire strumenti e parametri tool_choice per abilitare la chiamata di funzioni. È possibile configurare la chiamata di funzione tramite l'API REST/chat/completions. Se entrambe le origini dati tools e sono incluse nella richiesta, vengono applicati i criteri seguenti.
Se tool_choice è none, gli strumenti vengono ignorati e vengono usate solo le origini dati per generare la risposta.
In caso contrario, se tool_choice non viene specificato o specificato come auto o un oggetto, le origini dati vengono ignorate e la risposta conterrà il nome delle funzioni selezionate e gli argomenti, se presenti. Anche se il modello decide che non è selezionata alcuna funzione, le origini dati vengono comunque ignorate.
Se i criteri precedenti non soddisfano le esigenze, prendere in considerazione altre opzioni, ad esempio flusso di richieste o API assistenti.
Stima dell'utilizzo dei token per Azure OpenAI On Your Data
Azure OpenAI on Your Data Retrieval Augmented Generation (RAG) è un servizio che sfrutta sia un servizio di ricerca (ad esempio Azure AI Search) che la generazione (modelli OpenAI di Azure) per consentire agli utenti di ottenere risposte per le proprie domande in base ai dati forniti.
Come parte di questa pipeline RAG, esistono tre passaggi a livello generale:
Riformula la query dell'utente in un elenco di finalità di ricerca. A tale scopo, effettuare una chiamata al modello con un prompt che include istruzioni, la domanda dell'utente e la cronologia delle conversazioni. Chiamiamo questo prompt di finalità.
Per ogni finalità, più blocchi di documenti vengono recuperati dal servizio di ricerca. Dopo aver filtrato blocchi irrilevanti in base alla soglia specificata dall'utente di rigidità e reranking/aggregazione dei blocchi in base alla logica interna, viene scelto il numero specificato dall'utente di blocchi di documento.
Questi blocchi di documenti, insieme alla domanda dell'utente, alla cronologia delle conversazioni, alle informazioni sul ruolo e alle istruzioni vengono inviate al modello per generare la risposta finale del modello. Chiamare questo prompt di generazione.
In totale, esistono due chiamate effettuate al modello:
Per l'elaborazione della finalità: la stima del token per il prompt di finalità include quelle per la domanda dell'utente, la cronologia delle conversazioni e le istruzioni inviate al modello per la generazione delle finalità.
Per generare la risposta: la stima del token per il prompt di generazione include quelle per la domanda dell'utente, la cronologia delle conversazioni, l'elenco recuperato di blocchi di documenti, le informazioni sul ruolo e le istruzioni inviate per la generazione.
I token di output generati dal modello (finalità e risposta) devono essere presi in considerazione per la stima totale dei token. Sommando tutte le quattro colonne seguenti, vengono restituiti i token totali medi usati per generare una risposta.
Modello
Numero di token di richiesta di generazione
Conteggio dei token di richiesta delle finalità
Numero di token di risposta
Conteggio dei token di finalità
gpt-35-turbo-16k
4297
1366
111
25
gpt-4-0613
3997
1385
118
18
gpt-4, 1106-Preview
4538
811
119
27
gpt-35-turbo-1106
4854
1372
110
26
I numeri precedenti si basano sul test su un set di dati con:
191 conversazioni
250 domande
10 token medi per domanda
4 turni di conversazione per conversazione in media
Queste stime variano in base ai valori impostati per i parametri precedenti. Ad esempio, se il numero di documenti recuperati è impostato su 10 e la rigidità è impostata su 1, il numero di token andrà in alto. Se le risposte restituite non sono limitate ai dati inseriti, al modello vengono fornite meno istruzioni e il numero di token scenderà.
Le stime dipendono anche dalla natura dei documenti e delle domande poste. Ad esempio, se le domande sono aperte, è probabile che le risposte siano più lunghe. Analogamente, un messaggio di sistema più lungo contribuirà a un prompt più lungo che utilizza più token e, se la cronologia delle conversazioni è lunga, la richiesta sarà più lunga.
Modello
Numero massimo di token per il messaggio di sistema
GPT-35-0301
400
GPT-35-0613-16K
1000
GPT-4-0613-8K
400
GPT-4-0613-32K
2000
GPT-35-turbo-0125
2000
GPT-4-turbo-0409
4000
GPT-4o
4000
GPT-4o-mini
4000
La tabella precedente mostra il numero massimo di token che possono essere usati per il messaggio di sistema. Per visualizzare i token massimi per la risposta del modello, vedere l'articolo sui modelli. Inoltre, gli elementi seguenti usano anche i token:
Il meta prompt: se si limitano le risposte dal modello al contenuto dei dati di base (inScope=True nell'API), il numero massimo di token più alto. In caso contrario (ad esempio se inScope=False) il valore massimo è inferiore. Questo numero è variabile a seconda della lunghezza del token della domanda dell'utente e della cronologia delle conversazioni. Questa stima include il prompt di base e le richieste di riscrittura delle query per il recupero.
Domanda e cronologia utente: variabile ma limitata a 2.000 token.
Documenti recuperati (blocchi): il numero di token usati dai blocchi di documenti recuperati dipende da più fattori. Il limite superiore per questo è il numero di blocchi di documenti recuperati moltiplicati per le dimensioni del blocco. Verrà tuttavia troncato in base ai token disponibili per il modello specifico usato dopo aver conteggiato il resto dei campi.
Il 20% dei token disponibili è riservato per la risposta del modello. Il rimanente 80% dei token disponibili include il meta prompt, la cronologia delle domande e delle conversazioni dell'utente e il messaggio di sistema. Il budget del token rimanente viene usato dai blocchi di documento recuperati.
Per calcolare il numero di token utilizzati dall'input ,ad esempio la domanda, le informazioni sul messaggio/ruolo di sistema, usare l'esempio di codice seguente.
Per risolvere i problemi relativi alle operazioni non riuscite, cercare sempre gli errori o gli avvisi specificati nella risposta api o nel portale di Azure AI Foundry. Ecco alcuni degli errori e degli avvisi comuni:
Processi di inserimento non riusciti
Problemi sulle limitazioni di quota
Non è stato possibile creare un indice con il nome X nel servizio Y. La quota di indice è stata superata per questo servizio. È necessario prima eliminare gli indici inutilizzati, aggiungere un ritardo tra le richieste di creazione dell'indice o aggiornare il servizio per limiti più elevati.
La quota dell'indicizzatore standard di X è stata superata per questo servizio. Attualmente sono disponibili indicizzatori X standard. È necessario prima eliminare gli indicizzatori inutilizzati, modificare l'indicizzatore 'executionMode' o aggiornare il servizio per limiti più elevati.
Risoluzione:
Eseguire l'aggiornamento a un piano tariffario superiore o eliminare asset inutilizzati.
Problemi di timeout di pre-elaborazione
Impossibile eseguire la competenza perché la richiesta dell'API Web non è riuscita
Impossibile eseguire la competenza perché la risposta della competenza dell'API Web non è valida
Risoluzione:
Suddividere i documenti di input in documenti più piccoli e riprovare.
Problemi con le autorizzazioni
Questa richiesta non è autorizzata a eseguire questa operazione
Risoluzione:
Ciò significa che l'account di archiviazione non è accessibile con le credenziali specificate. In questo caso, esaminare le credenziali dell'account di archiviazione passate all'API e assicurarsi che l'account di archiviazione non sia nascosto dietro un endpoint privato (se un endpoint privato non è configurato per questa risorsa).
Errori 503 durante l'invio di query con Azure AI Search
Ogni messaggio utente può tradurre in più query di ricerca, tutte inviate alla risorsa di ricerca in parallelo. Questo può produrre un comportamento di limitazione quando il numero di repliche di ricerca e partizioni è basso. Il numero massimo di query al secondo che una singola partizione e una singola replica possono supportare potrebbe non essere sufficiente. In questo caso, prendere in considerazione l'aumento delle repliche e delle partizioni o l'aggiunta della logica di sospensione/ripetizione dei tentativi nell'applicazione. Per altre informazioni, vedere la documentazione di Azure AI Search.
Supporto di modelli e disponibilità a livello di area
Nota
I modelli seguenti non sono supportati da Azure OpenAI nei dati:
modelli o1
Modelli o3
Paese
gpt-35-turbo-16k (0613)
gpt-35-turbo (1106)
gpt-4-32k (0613)
gpt-4 (1106-preview)
gpt-4 (0125-preview)
gpt-4 (0613)
gpt-4o**
gpt-4 (turbo-2024-04-09)
Australia orientale
✅
✅
✅
✅
✅
Canada orientale
✅
✅
✅
✅
✅
Stati Uniti orientali
✅
✅
✅
Stati Uniti orientali 2
✅
✅
✅
✅
Francia centrale
✅
✅
✅
✅
✅
Giappone orientale
✅
Stati Uniti centro-settentrionali
✅
✅
✅
Norvegia orientale
✅
✅
Stati Uniti centro-meridionali
✅
✅
India meridionale
✅
✅
Svezia centrale
✅
✅
✅
✅
✅
✅
Svizzera settentrionale
✅
✅
✅
Regno Unito meridionale
✅
✅
✅
✅
Stati Uniti occidentali
✅
✅
✅
**Si tratta di un'implementazione di sola testo
Se la risorsa OpenAI di Azure si trova in un'altra area, non sarà possibile usare Azure OpenAI On Your Data.