Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come distribuire ed eseguire Chat con un esempio di dati personalizzato per .NET. Questo esempio implementa un'app di chat usando C#, Servizio Azure OpenAI e Retrieval Augmented Generation (RAG) in Azure AI Search per ottenere risposte sui vantaggi dei dipendenti in una società fittizia. L'app di chat per i vantaggi dei dipendenti è completata con file PDF, inclusi un manuale dipendenti, un documento sui vantaggi e un elenco di ruoli e aspettative aziendali.
In questo articolo si apprenderà come:
- 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, 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 servizio OpenAI e Azure AI Search.
Altri articoli della raccolta includono:
Panoramica dell'architettura
In questa applicazione di esempio, una società fittizia denominata Contoso Electronics offre ai dipendenti l'esperienza dell'app chat per porre domande sui vantaggi, i criteri interni e le descrizioni e i ruoli dei processi.
L'architettura dell'app di chat è illustrata nel diagramma seguente:
- Interfaccia utente - L'interfaccia di chat dell'applicazione è un'applicazione Blazor WebAssembly. Questa interfaccia è ciò che accetta le query utente, instrada le richieste al back-end dell'applicazione e visualizza le risposte generate.
-
Backend: il back-end dell'applicazione è un'API minima ASP.NET Core. Il back-end ospita l'applicazione Web statica Blazor ed è ciò che orchestra le interazioni tra i diversi servizi. I servizi usati in questa applicazione includono:
- Azure AI Search : indicizza i documenti dei dati archiviati in un account Archiviazione di Azure. In questo modo i documenti possono essere ricercati usando funzionalità di ricerca vettoriale.
- Servizio Azure OpenAI: fornisce i modelli LLM (Large Language Models) per generare risposte. Microsoft Agent Framework viene usato insieme al Servizio Azure OpenAI per orchestrare i flussi di lavoro di intelligenza artificiale più complessi.
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, è previsto un addebito, ma è minimo. Quando hai finito con l'articolo, elimina le risorse per interrompere gli addebiti.
Per altre informazioni, vedere Azure Samples: Cost in the sample repo.
Prerequisiti
Per completare questo articolo è disponibile un ambiente contenitore di sviluppo con tutte le dipendenze necessarie. È possibile eseguire il contenitore di sviluppo in GitHub Codespaces (in un browser) o in locale usando Visual Studio Code.
Per seguire questo articolo, sono necessari i prerequisiti seguenti:
- Una sottoscrizione Azure - Crearne una gratuitamente
- Azure autorizzazioni dell'account: il tuo account Azure deve avere autorizzazioni Microsoft.Authorization/roleAssignments/write, come ad esempio Amministratore accesso utente o Proprietario.
- 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 web come interfaccia utente. Per l'ambiente di sviluppo più semplice, usare GitHub Codespaces in modo che siano preinstallati gli strumenti di sviluppo e le dipendenze corretti per completare questo articolo.
Importante
Tutti gli account GitHub possono usare Codespaces per un massimo di 60 ore gratuite ogni mese con 2 istanze principali. Per ulteriori informazioni, consulta lo spazio di archiviazione mensile incluso e le ore core di GitHub Codespaces.
Avviare il processo per creare un nuovo spazio di codice GitHub nel ramo
maindel repositoryAzure-Samples/azure-search-openai-demo-csharpGitHub.Per avere sia l'ambiente di sviluppo che la documentazione disponibili contemporaneamente, fare clic con il pulsante destro del mouse sul pulsante seguente Apri in GitHub Codespaces e selezionare Apri collegamento in nuove finestre.
Nella pagina Crea codespace esamina le impostazioni di configurazione codespace, quindi seleziona Crea nuovo codespace:
Attendere l'avvio dello spazio di codice. Questo processo di avvio può richiedere alcuni minuti.
Nel terminale in basso nella schermata, accedi ad Azure con Azure Developer CLI.
azd auth loginCopia il codice dal terminale e incollalo in un browser. Seguire 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'applicazione di chat su Azure
Importante
Le risorse di Azure create in questa sezione comportano costi immediati, principalmente dalla risorsa di Azure AI Search. Queste risorse possono accumulare costi anche se si interrompe il comando prima che venga eseguito completamente.
Eseguire il comando seguente dell'interfaccia della riga di comando per sviluppatori Azure per effettuare il provisioning delle risorse di Azure e distribuire il codice sorgente:
azd upQuando ti viene richiesto di immettere un nome ambiente, sceglilo breve e in 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 usata per la maggior parte delle risorse, inclusi l'hosting.
Se viene ti richiesta una posizione per il modello OpenAI, seleziona una posizione vicina. Se la stessa posizione è disponibile come prima posizione, selezionala.
Attendere che l'app venga distribuita. Il completamento della distribuzione potrebbe richiedere fino a 20 minuti.
Dopo che l'applicazione viene distribuita correttamente, viene visualizzato un URL nel terminale.
Seleziona l'URL etichettato
Deploying service webper 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 dai 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.
Nel browser accedi alla pagina Chat usando il riquadro di spostamento a sinistra.
Seleziona o immetti "What is included in my Northwind Health Plus plan that not in standard?" (Cosa è incluso nel piano Northwind Health Plus non standard) nella casella di testo della chat. La risposta è simile all’immagine riportata di seguito.
Nella risposta seleziona una citazione. Viene visualizzata una finestra popup che visualizza l'origine delle informazioni.
Spostati tra le schede nella parte superiore della casella di risposta 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 Questo mostra la pagina di origine contenente la citazione. Al termine, torna alla scheda delle risposte.
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 |
|---|---|
| Sovrascrivere il modello di richiesta | Questo è il prompt usato per generare la risposta. |
| Recupera questi numerosi risultati della ricerca | Questo è il numero dei risultati della ricerca usati per generare la risposta. Puoi visualizzare queste origini restituite nelle schede Processo di pensiero e Contenuto di supporto della citazione. |
| Escludi categoria | Si tratta della categoria di documenti esclusi dai risultati della ricerca. |
| Usa il classificatore semantico per il recupero | Si tratta di una funzionalità di Azure AI Search che usa Machine Learning per migliorare la pertinenza dei risultati della ricerca. |
| Modalità di recupero | Vettori e testo significa che i risultati della ricerca sono basati sul testo dei documenti e sulle incorporazioni dei documenti. Vettori significa che i risultati della ricerca sono basati sulle incorporazioni dei documenti. Testo significa che i risultati della ricerca sono basati sul testo dei documenti. |
| Usa riepiloghi contestuali di query al posto di documenti completi | Quando vengono controllati sia Use semantic ranker che Use query-contextual summaries, l'LLM usa didascalie estratte dai passaggi chiave, anziché da tutti i passaggi, nei documenti con classificazione più alta. |
| Suggerire domande di follow-up | Fare in modo che l'app di chat suggerisca domande di follow-up in base alla risposta. |
I passaggi seguenti illustrano il processo di modifica delle impostazioni.
Nel browser seleziona l'icona a forma di ingranaggio in alto a destra nella pagina.
Se non è selezionata, seleziona la casella di controllo Suggerisci domande di follow-up e poni nuovamente la stessa domanda.
What is included in my Northwind Health Plus plan that is not in standard?La chat potrebbe fornire suggerimenti per le domande successive.
Nella scheda Impostazioni deseleziona Usa classificatore semantico per il recupero.
Porre di nuovo la stessa domanda.
What is my deductible?Qual è la differenza nelle risposte?
La risposta che ha usato il classificatore semantico ha fornito una singola risposta. La risposta senza classificatore semantico ha restituito una risposta meno diretta.
Pulire le risorse
Per completare, pulire le risorse Azure e GitHub CodeSpaces usate.
Pulire le risorse Azure
Le risorse di Azure create in questo articolo vengono fatturate al tuo abbonamento Azure. Se prevedi che queste risorse non ti servano in futuro, eliminale per evitare di incorrere in costi aggiuntivi.
Eseguire il comando seguente Azure Developer CLI per eliminare le risorse Azure e rimuovere il codice sorgente:
azd down --purge
Riordinare GitHub Codespaces
L'eliminazione dell'ambiente GitHub Codespaces garantisce che sia possibile massimizzare la quantità di ore gratuite per core che si ottiene per l'account.
Importante
Per ulteriori informazioni sui diritti del tuo account GitHub, consulta Archiviazione mensile inclusa e ore core di GitHub Codespaces.
Accedere al dashboard GitHub Codespaces (https://github.com/codespaces).
Individua i Codespaces attualmente in esecuzione originati dal repository
Azure-Samples/azure-search-openai-demo-csharpGitHub.
Aprire il menu di scelta rapida per il codespace e selezionare Elimina.
Come ottenere assistenza
Questo repository di esempio offre informazioni di risoluzione dei problemi.
Se il problema non viene risolto, registrare il problema nel Issues del repository.
Passaggi successivi
- Getare il codice sorgente per l'esempio usato in questo articolo
- Costruire un'app di chat con Azure OpenAI architettura delle soluzioni delle migliori pratiche
- Controllo degli accessi nelle app di AI generativa con Azure AI Search
- Costruisci una soluzione OpenAI pronta per l'uso aziendale con Gestione API di Azure
- Superare la ricerca vettoriale con capacità di recupero e classificazione ibride