Introduzione alla chat con il proprio esempio di dati per Python
Questo articolo illustra come distribuire ed eseguire l'esempio di chat con i propri dati per Python. Questo esempio implementa un'app di chat usando Python, il servizio Azure OpenAI e il recupero della generazione aumentata (RAG) in Ricerca di intelligenza artificiale di Azure per ottenere risposte sui vantaggi dei dipendenti in una società fittizia. L'app viene sottoposto a seeding con file PDF, inclusi il manuale dei dipendenti, un documento sui vantaggi e un elenco di ruoli e aspettative aziendali.
Seguendo le istruzioni riportate in questo articolo, potrai:
- Distribuire un'app di chat in Azure.
- Ottenere risposte sui vantaggi dei dipendenti.
- Modificare le impostazioni per cambiare il comportamento delle risposte.
Dopo aver completato questa procedura, è possibile iniziare a modificare il nuovo progetto con il codice personalizzato.
Questo articolo fa parte di una raccolta di articoli che illustrano come creare un'app di chat usando il servizio Azure OpenAI e Ricerca di intelligenza artificiale di Azure.
Altri articoli della raccolta includono:
Nota
Questo articolo usa uno o più modelli di app di intelligenza artificiale come base per gli esempi e le linee guida nell’articolo. I modelli di app di intelligenza artificiale offrono implementazioni di riferimento ben gestite e facili da distribuire per garantire un punto di partenza di alta qualità per le app di intelligenza artificiale.
Panoramica dell'architettura
Un'architettura semplice dell'app di chat è illustrata nel diagramma seguente:
I componenti chiave dell'architettura includono:
- Un'applicazione Web per ospitare l'esperienza di chat interattiva.
- Una risorsa di Ricerca intelligenza artificiale di Azure per ottenere risposte dai propri dati.
- Un servizio OpenAI di Azure da fornire:
- Parole chiave per migliorare la ricerca sui tuoi dati.
- Risposte dal modello OpenAI.
- Incorporamenti dal modello ada
Costo
La maggior parte delle risorse in questa architettura usa un piano tariffario di base o a consumo. I prezzi a consumo si basano sull'utilizzo, il che significa che si paga solo per ciò che si usa. Per completare questo articolo, ci sarà un addebito, ma sarà minimo. Al termine dell'articolo, è possibile eliminare le risorse per interrompere l'addebito degli addebiti.
Altre informazioni sui costi nel repository di esempio.
Prerequisiti
Per completare questo articolo è disponibile un ambiente contenitore di sviluppo con tutte le dipendenze necessarie. Puoi eseguire il contenitore di sviluppo in GitHub Codespaces (in un browser) o in locale usando Visual Studio Code.
Per usare questo articolo, sono necessari i prerequisiti seguenti:
- Una sottoscrizione di Azure: creare un account gratuitamente
- Autorizzazioni dell'account Azure: l'account Azure deve avere autorizzazioni Microsoft.Authorization/roleAssignments/write, ad esempio Amministratore accesso utenti o Proprietario.
- Accesso concesso ad Azure OpenAI nella sottoscrizione di Azure desiderata. Attualmente, l'accesso a questo servizio viene concesso solo dall'applicazione. È possibile richiedere l'accesso a OpenAI di Azure completando il modulo all'indirizzo https://aka.ms/oai/access. Apri un problema in questo repository per contattare Microsoft in caso di problemi.
- Account GitHub
Ambiente di sviluppo aperto
Inizia ora con un ambiente di sviluppo che ha tutte le dipendenze installate per completare questo articolo.
GitHub Codespaces esegue un contenitore di sviluppo gestito da GitHub con Visual Studio Code per il Web come interfaccia utente. Per l'ambiente di sviluppo più semplice, usa GitHub Codespaces per avere gli strumenti di sviluppo e le dipendenze corretti preinstallati per completare questo articolo.
Importante
Tutti gli account GitHub possono usare Codespaces per un massimo di 60 ore gratuite ogni mese con 2 istanze di core. Per altre informazioni, vedere Spazio di archiviazione e ore core mensili inclusi in GitHub Codespaces.
Avviare il processo per creare un nuovo codespace GitHub nel ramo
main
del repository GitHubAzure-Samples/azure-search-openai-demo
.Fai clic con il pulsante destro del mouse sul pulsante seguente e scegli Apri collegamento in nuove finestre per avere a disposizione allo stesso tempo sia l'ambiente di sviluppo che la documentazione.
Nella pagina Crea codespace esaminare le impostazioni di configurazione del codespace e quindi selezionare Crea nuovo codespace
Attendere l'avvio del codespace. Questo processo di avvio può richiedere alcuni minuti.
Nel terminale nella parte inferiore della schermata, accedi ad Azure con Azure Developer CLI.
azd auth login
Copia il codice dal terminale e incollalo in un browser. Segui le istruzioni per eseguire l'autenticazione con l'account Azure.
Le attività rimanenti in questo articolo vengono eseguite nel contesto di questo contenitore di sviluppo.
Distribuire ed eseguire
Il repository di esempio contiene tutti i file di codice e configurazione necessari per distribuire un'app di chat in Azure. La procedura seguente illustra il processo di distribuzione dell'esempio in Azure.
Distribuire l'app di chat in Azure
Importante
Le risorse di Azure create in questa sezione comportano costi immediati, principalmente per la risorsa Azure AI Search. Queste risorse possono accumulare costi anche se si interrompe il comando prima che venga eseguito completamente.
Esegui il seguente comando Azure Developer CLI per effettuare il provisioning delle risorse di Azure e distribuire il codice sorgente:
azd up
Se viene richiesto di immettere un nome di ambiente, mantenerlo breve e minuscolo. Ad esempio:
myenv
. Viene usato come parte del nome del gruppo di risorse.Quando richiesto, seleziona una sottoscrizione in cui creare le risorse.
Quando ti viene richiesto di selezionare una posizione la prima volta, seleziona una posizione nelle vicinanze. Questa posizione viene usato per la maggior parte delle risorse, incluso l'hosting.
Se viene richiesto un percorso per il modello OpenAI o per la risorsa di Intelligence documenti, selezionare la posizione più vicina. Se la stessa posizione è disponibile come prima posizione, selezionala.
Attendere 5 o 10 minuti dopo la distribuzione dell'app prima di continuare.
Dopo che l'applicazione è stata distribuita correttamente, viene visualizzato un URL nel terminale.
Seleziona l'URL etichettato
(✓) Done: Deploying service webapp
per aprire l'applicazione di chat in un browser.
Usa l'app di chat per ottenere risposte dai file PDF
L'app di chat viene precaricata con informazioni sui vantaggi dei dipendenti che provengono da file PDF. Puoi usare l'app di chat per porre domande sui vantaggi. I passaggi seguenti illustrano il processo di utilizzo dell'app di chat. Le risposte possono variare man mano che i modelli sottostanti vengono aggiornati.
Nel browser selezionare o immettere Cosa accade in una verifica delle prestazioni? nella casella di testo della chat.
Nella risposta seleziona una citazione.
Nel riquadro di destra usare le schede per comprendere come è stata generata la risposta.
Scheda Descrizione Processo di pensiero Si tratta di uno script delle interazioni nella chat. Puoi visualizzare la richiesta di sistema ( content
) e la domanda dell'utente (content
).Contenuto di supporto Sono incluse le informazioni per rispondere alla domanda e il materiale originario. Il numero di citazioni del materiale di origine è indicato nelle impostazioni sviluppatore. Il valore predefinito è 3. Citazione Verrà visualizzata la pagina originale contenente la citazione. Al termine, selezionare di nuovo la scheda selezionata per chiudere il riquadro.
Usa le impostazioni dell'app di chat per modificare il comportamento delle risposte
L'intelligenza della chat è determinata dal modello OpenAI e dalle impostazioni usate per interagire con il modello.
Impostazione | Descrizione |
---|---|
Esegui l'override del modello di richiesta | Esegue l'override della richiesta usata per generare la risposta in base ai risultati della domanda e della ricerca. |
Temperatura | Imposta la temperatura della richiesta sull'LLM che genera la risposta. Temperature più elevate generano risposte più creative, ma possono essere meno macinate. |
Seed | Imposta un valore di inizializzazione per migliorare la riproducibilità delle risposte del modello. Il valore di inizializzazione può essere qualsiasi numero intero. |
Punteggio di ricerca minimo | Imposta un punteggio minimo per i risultati della ricerca restituiti dalla ricerca di Intelligenza artificiale di Azure. L'intervallo di punteggi dipende dal fatto che si usi solo vettori ibridi (predefiniti), vettori o solo testo. |
Punteggio minimo di reranker | Imposta un punteggio minimo per i risultati della ricerca restituiti dal reranker semantico. Il punteggio varia sempre tra 0 e 4. Maggiore è il punteggio, maggiore è la semanticamente rilevante per il risultato. |
Recupera questi numerosi risultati della ricerca | Imposta il numero di risultati della ricerca da recuperare dalla ricerca di Intelligenza artificiale di Azure. Un maggior numero di risultati può aumentare la probabilità di trovare la risposta corretta, ma può causare la perdita del modello nel mezzo. È possibile visualizzare queste origini restituite nelle schede Processo di pensiero e Supporto del contenuto della citazione. |
Escludi categoria | Specifica una categoria da escludere dai risultati della ricerca. Nessuna categoria utilizzata nel set di dati predefinito. |
Usa il classificatore semantico per il recupero | Abilita il ranker semantico di Ricerca intelligenza artificiale di Azure, un modello che classifica nuovamente i risultati della ricerca in base alla somiglianza semantica con la query dell'utente. |
Usare didascalie semantiche | Invia didascalie semantiche all'LLM anziché al risultato completo della ricerca. Una didascalia semantica viene estratta da un risultato della ricerca durante il processo di classificazione semantica. |
Suggerire domande di follow-up | Chiede all'LLM di suggerire domande di completamento in base alla query dell'utente. |
Modalità di recupero | Imposta la modalità di recupero per la query di Ricerca di intelligenza artificiale di Azure. Vectors + Text (Hybrid) usa una combinazione di ricerca vettoriale e ricerca full-text, Vectors usa solo la ricerca vettoriale e Text usa solo la ricerca full-text. La soluzione ibrida è in genere ottimale. |
Eseguire lo streaming delle risposte di completamento della chat | Trasmette continuamente la risposta all'interfaccia utente della chat durante la generazione. |
I passaggi seguenti illustrano il processo di modifica delle impostazioni.
Nel browser selezionare la scheda Impostazioni sviluppatore.
Seleziona la casella di controllo Suggerisci domande di follow-up e poni nuovamente la stessa domanda.
What happens in a performance review?
La chat ha restituito domande di follow-up suggerite, ad esempio le seguenti:
1. What is the frequency of performance reviews? 2. How can employees prepare for a performance review? 3. Can employees dispute the feedback received during the performance review?
Nella scheda Impostazioni deseleziona Usa classificatore semantico per il recupero.
Porre di nuovo la stessa domanda?
What happens in a performance review?
Qual è la differenza nelle risposte?
Con il ranker semantico: durante una revisione delle prestazioni in Contoso Electronics, i dipendenti avranno l'opportunità di discutere dei loro successi e delle sfide sul posto di lavoro (1). La revisione fornirà feedback positivo e costruttivo per aiutare i dipendenti a sviluppare e crescere nei loro ruoli (1). Il dipendente riceverà un riepilogo scritto della revisione delle prestazioni, che includerà una valutazione delle prestazioni, del feedback e degli obiettivi e degli obiettivi per l'anno prossimo (1). La revisione delle prestazioni è un dialogo bidirezionale tra manager e dipendenti (1).
Senza il ranker semantico: durante una revisione delle prestazioni in Contoso Electronics, i dipendenti hanno l'opportunità di discutere dei loro successi e delle sfide sul posto di lavoro. Viene fornito feedback positivo e costruttivo per aiutare i dipendenti a sviluppare e crescere nei loro ruoli. Viene fornito un riepilogo scritto della revisione delle prestazioni, tra cui una valutazione delle prestazioni, il feedback e gli obiettivi per l'anno prossimo. La revisione è un dialogo bidirezionale tra manager e dipendenti (1).
Pulire le risorse
Pulire le risorse di Azure
Le risorse di Azure create in questo articolo vengono fatturate alla sottoscrizione di Azure. Se prevedi che queste risorse non ti servano in futuro, eliminale per evitare di incorrere in costi aggiuntivi.
Esegui il seguente comando Azure Developer CLI per eliminare le risorse di Azure e rimuovere il codice sorgente:
azd down --purge --force
Le opzioni forniscono:
purge
: le risorse eliminate vengono eliminate immediatamente. In questo modo è possibile riutilizzare il TPM Azure OpenAI.force
: l'eliminazione viene eseguita automaticamente, senza richiedere il consenso dell'utente.
Pulire GitHub Codespaces
L'eliminazione dell'ambiente GitHub Codespaces offre la possibilità di aumentare le ore gratuite per core a cui si ha diritto per l'account.
Importante
Per altre informazioni sui diritti dell'account GitHub, vedere Ore di archiviazione e di core mensili incluse in GitHub Codespaces.
Accedere al dashboard di GitHub Codespaces (https://github.com/codespaces).
Individuare i codespace attualmente in esecuzione provenienti dal repository GitHub
Azure-Samples/azure-search-openai-demo
.Aprire il menu di scelta rapida per il codespace e selezionare Elimina.
Come ottenere assistenza
Questo repository di esempio offre informazioni sulla risoluzione dei problemi.
Se il problema non viene risolto, registralo nei Problemi del repository.
Passaggi successivi
- Ottieni il codice sorgente per il campione usato in questo articolo
- Creare un'app di chat con OpenAI di Azure: procedura consigliata per l’architettura della soluzione
- Controllo di accesso nelle app di IA generative con Azure AI Search
- Creare una soluzione OpenAI Enterprise pronta con Gestione API di Azure
- Prestazioni della ricerca vettoriale con funzionalità di recupero e classificazione ibride