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.
La creazione di app di intelligenza artificiale può essere complessa. Con LangChain.js, Funzioni di Azure e tecnologie serverless, è possibile semplificare questo processo. Questi strumenti gestiscono automaticamente l'infrastruttura e la scalabilità, consentendo di concentrarsi sulle funzionalità del chatbot. Il chatbot usa documenti aziendali per generare risposte di intelligenza artificiale.
Il codice include dati di esempio per una società fittizia. I clienti possono porre domande di supporto sui prodotti dell'azienda. I dati includono documenti sulle condizioni per il servizio dell'azienda, l'informativa sulla privacy e la guida al supporto tecnico.
Nota
Questo articolo usa uno o più modelli di app di IA come base per gli esempi e le indicazioni contenute 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
L'app di chat
L'utente interagisce con l'applicazione:
- Interfaccia di chat nell'app Web client per la conversazione.
- L'app web client invia la richiesta dell'utente all'API serverless tramite chiamate HTTP.
- L'API serverless crea una catena per coordinare le interazioni tra l'intelligenza artificiale di Azure e Ricerca di intelligenza artificiale di Azure per generare una risposta.
- Recupero di documenti PDF tramite Archiviazione BLOB di Azure.
- La risposta generata viene quindi inviata nuovamente all'app Web e visualizzata all'utente.
Un'architettura semplice dell'app di chat è illustrata nel diagramma seguente:
LangChain.js semplifica la complessità tra i servizi
Il flusso api è utile per comprendere come LangChain.js è utile in questo scenario astraendo le interazioni. L'endpoint API serverless:
- Riceve la domanda dall'utente.
- Crea oggetti client:
- Azure OpenAI per incorporamenti e chat
- Ricerca di intelligenza artificiale di Azure per l'archivio vettoriale
- Crea una catena di documenti con il modello LLM, il messaggio di chat (richieste di sistema e utente) e l'origine del documento.
- Crea una catena di recupero dati dalla catena di documenti e dall'archivio vettoriale.
- Trasmette in streaming le risposte dalla catena di recupero dati.
Il lavoro dello sviluppatore consiste nel configurare correttamente i servizi di dipendenza, ad esempio Azure OpenAI e Ricerca di intelligenza artificiale di Azure e costruire correttamente le catene. La logica della catena sottostante consente di costruire catene da molti servizi e configurazioni diversi purché funzionino con i requisiti di LangChain.js.
Dove si trova Azure in questa architettura?
Questa applicazione è costituita da più componenti:
Un'app web realizzata con un singolo componente web per chat creato con Lit e ospitata in App Web statiche di Azure. Il codice si trova nella cartella
packages/webapp.Un'API serverless creata con Funzioni di Azure e che usa LangChain.js per acquisire i documenti e generare risposte alle query della chat degli utenti. Il codice si trova nella cartella
packages/api.Un servizio Azure OpenAI per creare embedding e generare una risposta.
Un database per archiviare il testo estratto dai documenti e i vettori generati da LangChain.js, utilizzando Azure AI Search.
Un archivio file per archiviare i documenti di origine, con Archiviazione BLOB di Azure.
Prerequisiti
È disponibile un ambiente container di sviluppo con tutte le dipendenze necessarie per completare questo articolo. 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:
- Un abbonamento di Azure: Creane uno gratuitamente
- Autorizzazioni dell'account Azure - l'account di Azure deve disporre delle autorizzazioni Microsoft.Authorization/roleAssignments/write, ad esempio Amministratore dell'accesso utente o Proprietario.
- Un account GitHub.
Ambiente di sviluppo aperto
Usare le istruzioni seguenti per distribuire un ambiente di sviluppo preconfigurato contenente tutte le dipendenze necessarie per completare questo articolo.
GitHub Codespaces esegue un contenitore di sviluppo gestito da GitHub, utilizzando Visual Studio Code for the 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 due istanze principali. Per altre informazioni, vedi Archiviazione mensile inclusa e ore di core in GitHub Codespaces.
Aprire nello spazio di codice.
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 loginCompletare il processo di autenticazione.
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 l'app chat serverless 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 in questa sezione iniziano a costare denaro immediatamente, anche se si arresta il comando prima del completamento.
Effettuare il provisioning delle risorse di Azure e distribuire il codice sorgente usando il comando seguente dell'interfaccia della riga di comando per sviluppatori di Azure:
azd upRispondere alle richieste usando la tabella seguente:
Richiesta Risposta Nome dell'ambiente Mantienilo breve e in minuscolo. Aggiungere il nome o l'alias. Ad esempio, john-chat. Viene usato come parte del nome del gruppo di risorse.Abbonamento Selezionare la sottoscrizione per la creazione di risorse. Posizione (per l'hosting) Selezionare una località vicina dall'elenco. Posizione del modello OpenAI Seleziona una località vicino a te dall'elenco. Se la stessa posizione è disponibile come prima posizione, selezionala. Attendi la distribuzione dell'app. Il completamento della distribuzione potrebbe richiedere da 5 a 10 minuti.
Dopo la distribuzione dell'applicazione, nel terminale vengono visualizzati due URL.
Seleziona l'URL etichettato
Deploying service webappper aprire l'applicazione di chat in un browser.
Usa l'app di chat per ottenere risposte dai file PDF
L'app di chat è precaricata con informazioni sul noleggio da un catalogo di file PDF. È possibile usare l'app di chat per porre domande sul processo di noleggio. I passaggi seguenti illustrano il processo di utilizzo dell'app di chat.
Nel browser, seleziona o inserisci Qual è la politica di rimborso.
Selezionare una domanda di completamento.
Selezionare la citazione nella risposta per visualizzare il documento di origine. Archiviazione di Azure consegna il documento al browser. Al termine della revisione del documento, chiudere la scheda per tornare all'app di chat.
Pulire le risorse
Pulire le risorse di Azure
Azure fattura le risorse create in questo articolo alla sottoscrizione di Azure. Se queste risorse non sono necessarie in futuro, eliminarle per evitare altri addebiti.
Eliminare le risorse di Azure e rimuovere il codice sorgente con il comando seguente dell'interfaccia della riga di comando per sviluppatori di Azure:
azd down --purge
Pulire GitHub Codespaces
Eliminare l'ambiente GitHub Codespaces per massimizzare le ore gratuite per ogni core.
Importante
Per ulteriori informazioni sulle risorse incluse nel tuo account GitHub, consulta Archiviazione mensile inclusa e ore di calcolo in GitHub Codespaces.
Individua i Codespace attualmente in esecuzione del repository GitHub
Azure-Samples/serverless-chat-langchainjs.
Apri il menu di scelta rapida,
..., per il codespace e quindi seleziona Elimina.
Come ottenere assistenza
Questo repository di esempio fornisce informazioni per la risoluzione dei problemi.
Se il tuo problema non è affrontato, segnalalo nella sezione Issues del repository.