Condividi tramite


Introduzione alla chat usando un esempio di dati personalizzato per Python

Questo articolo spiega come distribuire ed eseguire l'app di chat con un proprio set di dati di esempio per Python. Questo esempio implementa un'app di chat usando Python, il servizio Azure OpenAI e Retrieval Augmented Generation (RAG) in Ricerca di intelligenza artificiale di Azure per ottenere risposte sui vantaggi dei dipendenti in una società fittizia. L'app viene inizializzata con file PDF che includono il manuale dei dipendenti, un documento sui benefici e un elenco di ruoli e aspettative aziendali.

Guarda il seguente video dimostrativo di .

Seguendo le istruzioni riportate in questo articolo, è possibile:

  • Distribuire un'app di chat in Azure.
  • Ottenere risposte sui vantaggi dei dipendenti.
  • Modificare le impostazioni per modificare 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 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 che sono facili da distribuire. Consentono di garantire un punto di partenza di alta qualità per le app di intelligenza artificiale.

Panoramica dell'architettura

Il diagramma seguente illustra una semplice architettura dell'app di chat.

Diagramma che mostra l'architettura dal client all'app back-end.

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.

  • Azure OpenAI fornisce

    • Parole chiave per migliorare la ricerca sui tuoi dati.
    • Risposte dal modello OpenAI di Azure.
    • Incorporamenti dal modello di 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. È previsto un addebito per accedere a questo articolo, ma è minimo. Quando hai finito con l'articolo, puoi eliminare le risorse per interrompere i costi.

Altre informazioni sui costi nel repository di esempio.

Prerequisiti

Un ambiente di sviluppo è disponibile con tutte le dipendenze necessarie per completare questo articolo. È possibile 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. Crea uno gratuitamente.
  • Autorizzazioni dell'account Azure. L'account Azure deve avere autorizzazioni di Microsoft.Authorization/roleAssignments/write, ad esempio amministratore accesso utenti o proprietario .
  • Un account GitHub.

Aprire un ambiente di sviluppo

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 GitHub Codespaces per un massimo di 60 ore gratuite ogni mese con due istanze principali. Per altre informazioni, vedere Spazio di archiviazione e ore core mensili inclusi in GitHub Codespaces.

  1. Avviare il processo per creare un nuovo spazio di codice GitHub nel ramo main del repository GitHub Azure-Samples/azure-search-openai-demo GitHub.

  2. Fare clic con il pulsante destro del mouse sul pulsante seguente e selezionare Apri il link in nuove finestre per avere l'ambiente di sviluppo e la documentazione disponibili contemporaneamente.

    Apri in GitHub Codespaces.

  3. Nella pagina Crea spazio di codice esaminare le impostazioni di configurazione dello spazio di codice e quindi selezionare Crea spazio di codice.

    Screenshot che mostra la schermata di conferma prima di creare un nuovo spazio di codice.

  4. Attendere l'avvio del codespace. Questo processo di avvio può richiedere alcuni minuti.

  5. Nel terminale nella parte inferiore della schermata, accedi ad Azure con Azure Developer CLI.

    azd auth login
    
  6. 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.

  1. Esegui il seguente comando Azure Developer CLI per effettuare il provisioning delle risorse di Azure e distribuire il codice sorgente:

    azd up
    
  2. Se viene richiesto di immettere un nome di ambiente, mantenerlo breve e usare lettere minuscole. Un esempio è myenv. Viene usato come parte del nome del gruppo di risorse.

  3. Quando richiesto, selezionare una sottoscrizione in cui creare le risorse.

  4. Quando ti viene richiesto di selezionare una posizione la prima volta, seleziona una posizione nelle vicinanze. Questa posizione viene usata per la maggior parte delle risorse, incluso l'hosting.

  5. Se viene richiesta una posizione per il modello Azure OpenAI o per la risorsa Azure AI Document Intelligence, seleziona la località più vicina a te. Se la stessa posizione è disponibile come prima posizione, selezionala.

  6. Attendere 5 o 10 minuti dopo la distribuzione dell'app prima di continuare.

  7. Dopo la distribuzione dell'applicazione, viene visualizzato un URL nel terminale.

    Screenshot che mostra l'app distribuita come segnalato alla fine del processo azd up dell'Azure Developer CLI.

  8. Selezionare l'URL con etichetta (✓) Done: Deploying service webapp per aprire l'applicazione di chat in un browser.

    Screenshot che mostra l'app di chat in un browser che mostra diversi suggerimenti per l'input della chat e la casella di testo della chat per immettere una domanda.

Usare l'app 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.

  1. Nel browser selezionare o immettere Cosa accade in una verifica delle prestazioni? nella casella di testo della chat.

    Screenshot che mostra la prima risposta dell'app di chat.

  2. Nella risposta seleziona una citazione.

    Screenshot che mostra la prima risposta dell'app di chat con la citazione evidenziata in una casella rossa.

  3. Nel riquadro destro puoi utilizzare le schede per comprendere come è stata generata la risposta.

    Scheda Descrizione
    Processo di pensiero Questa scheda è uno script delle interazioni nella chat. Puoi visualizzare la richiesta di sistema (content) e la domanda dell'utente (content).
    Contenuto di supporto Questa scheda include le informazioni per rispondere alla domanda e al materiale di origine. Il numero di citazioni del materiale di origine è annotato nelle impostazioni di Sviluppatore . Il valore predefinito è 3.
    Citazione In questa scheda viene visualizzata la pagina originale contenente la citazione.
  4. Al termine, selezionare di nuovo la scheda per chiudere il riquadro.

Usare le impostazioni dell'app chat per modificare il comportamento delle risposte

L'intelligenza della chat è determinata dal modello OpenAI di Azure e dalle impostazioni usate per interagire con il modello.

Screenshot che mostra le impostazioni per sviluppatori di chat.

Impostazione Descrizione
modello di richiesta di override 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 sul modello LLM (Large Language Model) che genera la risposta. Temperature più alte generano risposte più creative, ma potrebbero essere meno fondate.
Seme 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 da 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 del 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.
Recuperare molti risultati della ricerca Imposta il numero di risultati della ricerca da recuperare da Ricerca di intelligenza artificiale di Azure. Altri risultati potrebbero aumentare la probabilità di trovare la risposta corretta. Ma altri risultati potrebbero anche portare al modello a "perdersi nel mezzo". È possibile visualizzare queste origini restituite nei processo pensiero e schede Supporto del contenuto della citazione.
Escludi categoria Specifica una categoria da escludere dai risultati della ricerca. Nessuna categoria utilizzata nel set di dati predefinito.
Usare il ranker semantico per il recupero di Abilita il classificatore semantico di Ricerca di intelligenza artificiale di Azure, che è un modello che riorganizza i risultati di 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.
Suggerisci domande di completamento 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. vettori + testo (ibrido) usa una combinazione di ricerca vettoriale e ricerca a testo pieno. Vettori Usa solo la ricerca vettoriale. testo usa solo la ricerca testuale completa. La soluzione ibrida è in genere ottimale.
flusso continuo di risposte di completamento chat Trasmette continuamente la risposta all'interfaccia utente della chat man mano che viene generata.

I passaggi seguenti illustrano il processo di modifica delle impostazioni.

  1. Nel browser selezionare la scheda Impostazioni sviluppatore.

  2. Selezionare la casella di controllo Suggerisci domande di completamento e porre nuovamente la stessa domanda.

    What happens in a performance review?
    

    La chat ha restituito domande di follow-up suggerite, ad esempio gli esempi 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?
    
  3. Nella scheda Impostazioni, deselezionare la casella di controllo Usa classificazione semantica per il recupero.

  4. Porre di nuovo la stessa domanda.

    What happens in a performance review?
    
  5. Qual è la differenza nelle risposte?

    • Con 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 (1). La revisione fornisce feedback positivo e costruttivo per aiutare i dipendenti a sviluppare e crescere nei loro ruoli (1). Il dipendente riceve un riepilogo scritto della revisione delle prestazioni, che include una valutazione delle prestazioni, feedback e obiettivi per l'anno prossimo (1). La revisione delle prestazioni è un dialogo bidirezionale tra manager e dipendenti (1).
    • Senza il rango semantico: Durante una valutazione delle prestazioni presso Contoso Electronics, i dipendenti hanno l'opportunità di discutere dei successi e delle sfide nel luogo 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

I passaggi seguenti illustrano il processo di pulizia delle risorse usate.

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 cancellate vengono immediatamente rimosse così da poter riutilizzare i token OpenAI di Azure per ogni minuto.
  • force: l'eliminazione viene eseguita automaticamente, senza richiedere il consenso dell'utente.

Pulire GitHub Codespaces e Visual Studio Code

L'eliminazione dell'ambiente GitHub Codespaces garantisce che sia possibile massimizzare la quantità di ore gratuite per core a disposizione dell'account.

Importante

Per altre informazioni sui diritti dell'account GitHub, vedere Ore di archiviazione e di core mensili incluse in GitHub Codespaces.

  1. Accedi al dashboard GitHub Codespaces.

  2. Individuare gli spazi di codice attualmente in esecuzione originati dal repository GitHub Azure-Samples/azure-search-openai- demo.

    Screenshot che mostra tutti i codespace in esecuzione, insieme al loro stato e ai modelli.

  3. Apri il menu di scelta rapida per il codespace e quindi seleziona Elimina.

    Screenshot che mostra il menu di scelta rapida per un singolo spazio di codice con l'opzione Elimina evidenziata.

Come ottenere assistenza

Questo repository di esempio offre informazioni sulla risoluzione dei problemi.

Se il problema non viene risolto, aggiungi il tuo problema alla pagina del repository Problematiche.