Esercitazione: Compilare e distribuire una domanda e rispondere a un copilot con flusso di prompt in Azure AI Studio

Nota

Azure AI Studio è attualmente disponibile in anteprima pubblica. Questa versione di anteprima viene fornita senza un contratto di servizio e non è consigliabile per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.

In questa esercitazione di Azure AI Studio si usa l'intelligenza artificiale generativa e il flusso di richiesta per compilare, configurare e distribuire un copilot per la società di vendita al dettaglio denominata Contoso. La tua azienda di vendita al dettaglio è specializzata in attrezzatura da campeggio all'aperto e abbigliamento.

Il copilota deve rispondere a domande sui prodotti e sui servizi. Deve anche rispondere a domande sui clienti. Ad esempio, il copilota può rispondere a domande come "Quanto costano le scarpe da trekking TrailWalker?" e "Quante scarpe trailwalker hanno acquistato Daniel Wilson?".

La procedura dell'esercitazione è la seguente:

  1. Creare un progetto di Azure AI Studio.
  2. Distribuire un modello OpenAI di Azure e chattare con i dati.
  3. Creare un flusso di richiesta dal playground.
  4. Personalizzare il flusso di richiesta con più origini dati.
  5. Valutare il flusso usando un set di dati di valutazione di domande e risposte.
  6. Distribuire il flusso per l'utilizzo.

Prerequisiti

  • Una sottoscrizione di Azure: crearne una gratuitamente.

  • 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.

  • È necessaria una risorsa dell'hub di Intelligenza artificiale di Azure e il ruolo utente deve essere Sviluppatore, Collaboratore o Proprietario di Azure per intelligenza artificiale nella risorsa dell'hub di Intelligenza artificiale di Azure. Per altre informazioni, vedere Risorse dell'hub di intelligenza artificiale di Azure e ruoli di intelligenza artificiale di Azure.

  • La sottoscrizione deve essere inferiore al limite di quota per distribuire un nuovo modello in questa esercitazione. In caso contrario, è già necessario avere un modello di chat distribuito.

  • È necessaria una copia locale dei dati del prodotto e del cliente. Il repository Azure/aistudio-copilot-sample in GitHub contiene informazioni di esempio sui clienti e sui prodotti al dettaglio pertinenti per questo scenario di esercitazione. Clonare il repository o copiare i file da 1-customer-info e 3-product-info.

Creare un progetto di Azure per intelligenza artificiale in Studio AI della piattaforma Azure

Il progetto di Intelligenza artificiale di Azure viene usato per organizzare il lavoro e salvare lo stato durante la compilazione del copilota. Durante questa esercitazione, il progetto contiene i dati, il runtime del flusso di richiesta, le valutazioni e altre risorse. Per altre informazioni sul modello di risorse e progetti di intelligenza artificiale di Azure, vedere Risorse dell'hub di Intelligenza artificiale di Azure.

Per creare un progetto di Intelligenza artificiale di Azure in Azure AI Studio, seguire questa procedura:

  1. Selezionare la scheda Compila nella parte superiore della pagina.

  2. Selezionare + Nuovo progetto di intelligenza artificiale.

    Screenshot della scheda Compilazione di Azure AI Studio con l'opzione per creare un nuovo progetto visibile.

  3. Immettere un nome per il progetto.

  4. Selezionare una risorsa hub di Intelligenza artificiale di Azure dall'elenco a discesa per ospitare il progetto. Se non si ha ancora accesso a una risorsa dell'hub di intelligenza artificiale di Azure, selezionare Crea una nuova risorsa.

    Screenshot della pagina dei dettagli del progetto all'interno della finestra di dialogo Crea progetto.

    Nota

    Per creare una risorsa dell'hub di Intelligenza artificiale di Azure, è necessario disporre delle autorizzazioni proprietario o collaboratore per il gruppo di risorse selezionato. È consigliabile condividere una risorsa hub di intelligenza artificiale di Azure con il team. In questo modo è possibile condividere configurazioni come le connessioni dati con tutti i progetti e gestire centralmente le impostazioni di sicurezza e la spesa.

  5. Se si sta creando una nuova risorsa dell'hub di intelligenza artificiale di Azure, immettere un nome.

  6. Selezionare la sottoscrizione di Azure dall'elenco a discesa. Scegliere una sottoscrizione di Azure specifica per il progetto per motivi di fatturazione, accesso o amministrativo. Ad esempio, ciò concede agli utenti e alle entità servizio l'accesso a livello di sottoscrizione al progetto.

  7. Lasciare il gruppo di risorse come predefinito per creare un nuovo gruppo di risorse. In alternativa, è possibile selezionare un gruppo di risorse esistente dall'elenco a discesa.

    Suggerimento

    Soprattutto per iniziare, è consigliabile creare un nuovo gruppo di risorse per il progetto. In questo modo è possibile gestire facilmente il progetto e tutte le relative risorse insieme. Quando si crea un progetto, nel gruppo di risorse vengono create diverse risorse, tra cui una risorsa dell'hub di Intelligenza artificiale di Azure, un registro contenitori e un account di archiviazione.

  8. Immettere la località per la risorsa dell'hub di Intelligenza artificiale di Azure e quindi selezionare Avanti. La località è l'area in cui è ospitata la risorsa dell'hub di Intelligenza artificiale di Azure. Anche la posizione della risorsa hub di Intelligenza artificiale di Azure è la posizione del progetto. La disponibilità dei servizi di intelligenza artificiale di Azure varia in base all'area. Ad esempio, alcuni modelli potrebbero non essere disponibili in determinate aree.

  9. Selezionare una risorsa OpenAI di Azure esistente nell'elenco a discesa o crearne una nuova.

    Screenshot della pagina Crea risorsa all'interno della finestra di dialogo Crea progetto.

  10. Nella pagina Rivedi e termina viene visualizzato il nome della risorsa del servizio Azure OpenAI e altre impostazioni da esaminare.

    Screenshot della pagina revisione e fine all'interno della finestra di dialogo Crea progetto.

  11. Esaminare i dettagli del progetto e quindi selezionare Crea un progetto di intelligenza artificiale. Al termine del processo viene visualizzato lo stato di avanzamento della creazione delle risorse e il progetto viene creato.

    Screenshot dello stato di avanzamento della creazione della risorsa nella finestra di dialogo Crea progetto.

Dopo aver creato un progetto, è possibile accedere agli asset delle impostazioni del progetto Strumenti, Componenti e intelligenza artificiale nel pannello di spostamento a sinistra. Per un progetto che usa un hub di Intelligenza artificiale di Azure con supporto per Azure OpenAI, viene visualizzata l'opzione di spostamento Playground in Strumenti.

Distribuire un modello di chat

Seguire questa procedura per distribuire un modello di chat OpenAI di Azure per il copilota.

  1. Accedere ad Azure AI Studio con le credenziali che hanno accesso alla risorsa OpenAI di Azure. Durante o dopo il flusso di lavoro di accesso, selezionare la directory appropriata, la sottoscrizione di Azure e la risorsa OpenAI di Azure. Si dovrebbe essere nella home page di Azure AI Studio.

  2. Selezionare Compila dal menu in alto e quindi selezionare Distribuzioni>Crea>endpoint in tempo reale.

    Screenshot della pagina distribuzioni con un pulsante per creare un nuovo progetto.

  3. Nella pagina Seleziona un modello selezionare il modello da distribuire dall'elenco dei modelli. Ad esempio, selezionare gpt-35-turbo-16k. Selezionare quindi Conferma.

    Screenshot della pagina di selezione del modello.

  4. Nella pagina Distribuisci modello immettere un nome per la distribuzione e quindi selezionare Distribuisci. Dopo aver creato la distribuzione, viene visualizzata la pagina dei dettagli della distribuzione. I dettagli includono la data di creazione della distribuzione e la data e la versione del modello distribuito.

  5. Nella pagina dei dettagli della distribuzione del passaggio precedente selezionare Apri nel playground.

    Screenshot dei dettagli della distribuzione della chat GPT.

Per altre informazioni sulla distribuzione dei modelli, vedere come distribuire i modelli.

Chat nel playground senza i tuoi dati

Nel playground di Azure AI Studio è possibile osservare il modo in cui il modello risponde con e senza i dati. In questa sezione si testa il modello senza i dati. Nella sezione successiva si aggiungono i dati al modello per rispondere meglio alle domande sui prodotti.

  1. Nel playground assicurarsi che chat sia selezionata nell'elenco a discesa Modalità . Selezionare il modello di chat GPT distribuito dall'elenco a discesa Distribuzione .

    Screenshot del playground della chat con la modalità chat e il modello selezionati.

  2. Nella casella di testo Messaggio di sistema nel riquadro Configurazione assistente specificare questa richiesta per guidare l'assistente: "Si è un assistente di intelligenza artificiale che aiuta le persone a trovare informazioni". È possibile personalizzare la richiesta per lo scenario. Per altre informazioni, vedere Esempi di prompt.

  3. Selezionare Applica modifiche per salvare le modifiche e quando viene richiesto di verificare se si desidera aggiornare il messaggio di sistema, selezionare Continua.

  4. Nel riquadro sessione di chat immettere la domanda seguente: "Quanto costano le scarpe da trekking TrailWalker" e quindi selezionare l'icona a forma di freccia destra da inviare.

    Screenshot della prima domanda di chat senza dati di base.

  5. L'assistente risponde che non conosce la risposta. Il modello non ha accesso alle informazioni sul prodotto sulle scarpe da trekking TrailWalker.

    Screenshot della risposta dell'assistente senza dati di base.

Nella sezione successiva si aggiungeranno i dati al modello per rispondere alle domande sui prodotti.

Aggiungere i dati e riprovare a usare il modello di chat

È necessaria una copia locale delle informazioni sul prodotto di esempio. Per altre informazioni e collegamenti a dati di esempio, vedere i prerequisiti.

Caricare i file di dati locali nell'archiviazione BLOB di Azure e creare un indice di Ricerca di intelligenza artificiale di Azure. L'origine dati viene usata per basare il modello con dati specifici. Il grounding significa che il modello usa i dati per comprendere il contesto della domanda. Non si sta modificando il modello distribuito stesso. I dati vengono archiviati separatamente e in modo sicuro nella sottoscrizione di Azure. Per altre informazioni, vedere Azure OpenAI sui dati.

Seguire questa procedura per aggiungere i dati al playground per aiutare l'assistente a rispondere alle domande sui prodotti.

  1. Se non si è già nel playground di Azure AI Studio , selezionare Compila dal menu in alto e quindi selezionare Playground dal menu a sinistra compresso.

  2. Nel riquadro Configurazione assistente selezionare Aggiungi i dati (anteprima)+ Aggiungi un'origine> dati.

    Screenshot del playground della chat con l'opzione per aggiungere un'origine dati visibile.

  3. Nella pagina Origine dati visualizzata selezionare Carica file dall'elenco a discesa Seleziona origine dati.

    Screenshot delle opzioni di selezione dell'origine dati del prodotto.

    Suggerimento

    Per le opzioni dell'origine dati e i tipi e i formati di file supportati, vedere Azure OpenAI sui dati.

  4. Immettere product-info come nome dell'indice delle informazioni sul prodotto.

    Screenshot delle risorse e delle informazioni necessarie per caricare i file.

  5. Selezionare o creare una risorsa di Ricerca intelligenza artificiale di Azure denominata contoso-outdoor-search e selezionare il riconoscimento che la connessione comporta l'utilizzo nell'account.

    Nota

    L'indice product-info e la risorsa contoso-outdoor-search di Ricerca di intelligenza artificiale di Azure vengono usati più avanti in questa esercitazione. Se i nomi immessi differiscono da quelli specificati qui, assicurarsi di usare i nomi immessi nel resto dell'esercitazione.

  6. Selezionare la sottoscrizione di Azure che contiene la risorsa OpenAI di Azure che si vuole usare. Quindi, selezionare Avanti.

  7. Nella pagina Carica file selezionare Sfoglia un file e selezionare i file da caricare. Selezionare i file di informazioni sul prodotto scaricati o creati in precedenza. Vedere i prerequisiti. Se si vuole caricare più file, eseguire questa operazione ora. Non è possibile aggiungere altri file più avanti nella stessa sessione del playground.

  8. Selezionare Carica per caricare il file nell'account di archiviazione BLOB di Azure. Quindi selezionare Avanti nella parte inferiore della pagina.

    Screenshot della finestra di dialogo per selezionare e caricare i file.

  9. Nella pagina Gestione dati in Tipo di ricerca selezionare Parola chiave. Questa impostazione consente di determinare il modo in cui il modello risponde alle richieste. Quindi, seleziona Avanti.

    Nota

    Se è stata aggiunta la ricerca vettoriale nella pagina Seleziona o aggiungi origine dati, sono disponibili altre opzioni qui per un costo aggiuntivo. Per altre informazioni, vedere Azure OpenAI sui dati.

  10. Esaminare i dettagli immessi e selezionare Salva e chiudi. È ora possibile chattare con il modello e usare le informazioni dai dati per costruire la risposta.

    Screenshot della pagina revisione e fine per l'aggiunta di dati.

  11. A questo punto, nel riquadro Configurazione assistente è possibile vedere che l'inserimento dati è in corso. Prima di procedere, attendere che venga visualizzata l'origine dati e il nome dell'indice al posto dello stato.

    Screenshot del playground della chat con lo stato dell'inserimento dati nella visualizzazione.

  12. È ora possibile chattare con il modello che pone la stessa domanda di prima ("Quanto costano le scarpe da trekking TrailWalker") e questa volta usa le informazioni dei dati per costruire la risposta. È possibile espandere il pulsante riferimenti per visualizzare i dati usati.

    Screenshot della risposta dell'assistente con i dati di base.

Creare calcolo e runtime necessari per il flusso di richiesta

Si usa il flusso di richiesta per ottimizzare i messaggi inviati al modello di chat del copilot. Il flusso di richiesta richiede un'istanza di calcolo e un runtime. Se si dispone già di un'istanza di calcolo e di un runtime, è possibile ignorare questa sezione e rimanere nel playground.

Per creare un'istanza di calcolo e un runtime, seguire questa procedura:

  1. Se non si ha un'istanza di calcolo, è possibile crearne una in Azure AI Studio.
  2. Creare quindi un runtime seguendo la procedura descritta in come creare un runtime.

Per completare il resto dell'esercitazione, assicurarsi che il runtime sia nello stato In esecuzione . Potrebbe essere necessario selezionare Aggiorna per visualizzare lo stato aggiornato.

Importante

Vengono addebitati costi per le istanze di calcolo durante l'esecuzione. Per evitare di incorrere in costi di Azure non necessari, sospendere l'istanza di calcolo quando non si lavora attivamente nel flusso di richiesta. Per altre informazioni, vedere come avviare e arrestare il calcolo.

Creare un flusso di prompt dal playground

Ora che il modello di chat distribuito funziona nel playground con i dati, è possibile distribuire il copilota come app Web dal playground.

Ma potresti chiedere "Come posso personalizzare ulteriormente questo copilota?" È possibile aggiungere più origini dati, confrontare richieste diverse o prestazioni di più modelli. Un flusso di richiesta funge da flusso di lavoro eseguibile che semplifica lo sviluppo dell'applicazione di intelligenza artificiale basata su LLM. Offre un framework completo per la gestione del flusso di dati e dell'elaborazione all'interno dell'applicazione.

In questa sezione si apprenderà come eseguire la transizione al flusso di richiesta dal playground. Esportare l'ambiente di chat del playground, incluse le connessioni ai dati aggiunti. Più avanti in questa esercitazione si valuta il flusso e quindi si distribuisce il flusso per l'utilizzo.

Nota

Le modifiche apportate nel flusso di richiesta non vengono applicate all'indietro per aggiornare l'ambiente del playground.

È possibile creare un flusso di prompt dal playground seguendo questa procedura:

  1. Se non si è già nel playground di Azure AI Studio , selezionare Compila dal menu in alto e quindi selezionare Playground dal menu a sinistra compresso.

  2. Selezionare Apri nel flusso del prompt dal menu sopra il riquadro Sessione di chat.

  3. Immettere un nome di cartella per il flusso di richiesta. Quindi selezionare Apri. Azure AI Studio esporta l'ambiente di chat del playground, incluse le connessioni ai dati per richiedere il flusso.

    Screenshot dell'apertura nella finestra di dialogo del flusso di richiesta.

All'interno di un flusso, i nodi prendono la fase centrale, rappresentando strumenti specifici con funzionalità univoche. Questi nodi gestiscono l'elaborazione dei dati, l'esecuzione delle attività e le operazioni algoritmiche, con input e output. Connettendo i nodi, si stabilisce una catena trasparente di operazioni che guida il flusso di dati attraverso l'applicazione. Per altre informazioni, vedere Strumenti di flusso dei prompt.

Per facilitare la configurazione dei nodi e l'ottimizzazione, viene fornita una rappresentazione visiva della struttura del flusso di lavoro tramite un grafico DAG (Directed Acyclic Graph). Questo grafico illustra la connettività e le dipendenze tra nodi, fornendo una panoramica chiara dell'intero flusso di lavoro. I nodi nel grafico mostrati di seguito sono rappresentativi dell'esperienza di chat del playground esportata nel flusso di richiesta.

Screenshot del grafico predefinito esportato dal playground per richiedere il flusso.

I nodi possono essere aggiunti, aggiornati, riorganizzato o rimossi. I nodi nel flusso in questo punto includono:

  • DetermineIntent: questo nodo determina la finalità della query dell'utente. Usa il prompt di sistema per determinare la finalità. È possibile modificare la richiesta di sistema per fornire esempi specifici dello scenario.
  • ExtractIntent: questo nodo formatta l'output del nodo DetermineIntent e lo invia al nodo RetrieveDocuments .
  • RetrieveDocuments: questo nodo cerca i documenti principali correlati alla query. Questo nodo usa il tipo di ricerca e tutti i parametri preconfigurato nel playground.
  • FormatRetrievedDocuments: questo nodo formatta l'output del nodo RetrieveDocuments e lo invia al nodo DetermineReply .
  • DetermineReply: questo nodo contiene un prompt di sistema completo, che chiede all'LLM di rispondere solo usando i documenti recuperati. Esistono due input:
    • Il nodo RetrieveDocuments fornisce i documenti recuperati più in alto.
    • Il nodo FormatConversation fornisce la cronologia delle conversazioni formattata, inclusa la query più recente.

Il nodo FormatReply formatta l'output del nodo DetermineReply .

Nel flusso di richiesta dovrebbe essere visualizzato anche:

  • Salva: è possibile salvare il flusso di richiesta in qualsiasi momento selezionando Salva dal menu in alto. Assicurarsi di salvare periodicamente il flusso di richiesta quando si apportano modifiche in questa esercitazione.

  • Runtime: runtime creato in precedenza in questa esercitazione. È possibile avviare e arrestare runtime e istanze di calcolo tramite le impostazioni del progetto di intelligenza artificiale nel menu a sinistra. Per lavorare nel flusso di richiesta, assicurarsi che il runtime sia nello stato In esecuzione .

    Screenshot dell'editor del flusso di richiesta e dei menu circostanti.

  • Strumenti: è possibile tornare al flusso di richiesta in qualsiasi momento selezionando Flusso prompt da Strumenti nel menu a sinistra. Selezionare quindi la cartella del flusso di richiesta creata in precedenza (non il flusso di esempio).

    Screenshot dell'elenco dei flussi di richiesta.

Personalizzare il flusso di richieste con più origini dati

In precedenza nel playground di Azure AI Studio sono stati aggiunti i dati per creare un indice di ricerca contenente i dati dei prodotti per il copilot di Contoso. Finora, gli utenti possono solo chiedere informazioni sui prodotti con domande come "Quanto costano le scarpe da trekking TrailWalker?". Ma non possono ottenere risposte a domande come "Quante scarpe trailwalker hanno acquistato Daniel Wilson?" Per abilitare questo scenario, si aggiunge un altro indice con le informazioni del cliente al flusso.

Creare l'indice delle informazioni del cliente

È necessaria una copia locale delle informazioni dei clienti di esempio. Per altre informazioni e collegamenti a dati di esempio, vedere i prerequisiti.

Seguire queste istruzioni su come creare un nuovo indice:

  1. Selezionare Indice dal menu a sinistra. Selezionare quindi + Nuovo indice.

    Screenshot della pagina degli indici con il pulsante per creare un nuovo indice.

    Viene visualizzata la procedura guidata Crea un indice .

  2. Nella pagina Dati di origine selezionare Carica cartella dall'elenco a discesa Carica . Selezionare i file di informazioni sul cliente scaricati o creati in precedenza. Vedere i prerequisiti.

    Screenshot delle opzioni di selezione dell'origine dati del cliente.

  3. Nella parte inferiore della pagina, selezionare Avanti.

  4. Selezionare la stessa risorsa di Ricerca intelligenza artificiale di Azure (contoso-outdoor-search) usata per l'indice delle informazioni sul prodotto (product-info). Quindi, selezionare Avanti.

    Screenshot della risorsa di Ricerca intelligenza artificiale di Azure selezionata.

  5. Selezionare Ibrido e semantico (scelta consigliata) per il tipo di ricerca. Questo tipo deve essere selezionato per impostazione predefinita.

  6. Selezionare Default_AzureOpenAI dall'elenco a discesa della risorsa OpenAI di Azure. Selezionare la casella di controllo per confermare che verrà distribuito un modello di incorporamento OpenAI di Azure, se non è già presente. Quindi, selezionare Avanti.

    Screenshot delle opzioni del tipo di ricerca dell'indice.

    Nota

    Il modello di incorporamento è elencato con altre distribuzioni di modelli nella pagina Distribuzioni .

  7. Immettere le informazioni sul cliente per il nome dell'indice. Quindi, selezionare Avanti.

    Screenshot delle opzioni relative al nome dell'indice e alla macchina virtuale.

  8. Esaminare i dettagli immessi e selezionare Crea.

    Screenshot della pagina revisione e fine della creazione dell'indice.

    Nota

    L'indice delle informazioni sul cliente e la risorsa di Ricerca di intelligenza artificiale di Azure contoso-outdoor-search vengono usati più avanti in questa esercitazione. Se i nomi immessi differiscono da quelli specificati qui, assicurarsi di usare i nomi immessi nel resto dell'esercitazione.

  9. Viene visualizzata la pagina dei dettagli dell'indice in cui è possibile visualizzare lo stato della creazione dell'indice

    Screenshot dei dettagli dell'indice delle informazioni del cliente.

Per altre informazioni su come creare un indice, vedere Creare un indice.

Aggiungere informazioni sui clienti al flusso

Dopo aver creato l'indice, tornare al flusso di richiesta e seguire questa procedura per aggiungere le informazioni del cliente al flusso:

  1. Selezionare il nodo RetrieveDocuments dal grafico e rinominarlo RetrieveProductInfo. Ora il nodo recuperare le informazioni sul prodotto può essere distinto dal nodo recuperare le informazioni sul cliente che si aggiunge al flusso.

    Screenshot del nodo del flusso di richiesta per il recupero delle informazioni sul prodotto.

  2. Selezionare + Python dal menu in alto per creare un nuovo nodo Python usato per recuperare le informazioni dei clienti.

    Screenshot del nodo del flusso di richiesta per il recupero delle informazioni del cliente.

  3. Assegnare al nodo il nome RetrieveCustomerInfo e selezionare Aggiungi.

  4. Copiare e incollare il codice Python dal nodo RetrieveProductInfo nel nodo RetrieveCustomerInfo per sostituire tutto il codice predefinito.

  5. Selezionare il pulsante Convalida e analizza input per convalidare gli input per il nodo RetrieveCustomerInfo . Se gli input sono validi, il flusso del prompt analizza gli input e crea le variabili necessarie da usare nel codice.

    Screenshot del pulsante convalida e analisi dell'input.

  6. Modificare gli input RetrieveCustomerInfo che richiedono l'analisi del flusso in modo che possa connettersi all'indice delle informazioni del cliente.

    Screenshot degli input da modificare nel nodo recuperare le informazioni del cliente.

    Nota

    Il grafico viene aggiornato immediatamente dopo aver impostato il valore di input delle query su ExtractIntent.output.search_intents. Nel grafico è possibile vedere che RetrieveCustomerInfo ottiene gli input da ExtractIntent.

    Gli input fanno distinzione tra maiuscole e minuscole, quindi assicurarsi che corrispondano esattamente a questi valori:

    Nome Type Valore
    embeddingModel Connessione ion OpenAI di Azure Default_AzureOpenAI
    embeddingModelName string Nessuno
    indexName string informazioni sul cliente
    Query string ${ExtractIntent.output.search_intents}
    queryType string simple
    search Connessione ion Ricerca cognitiva contoso-outdoor-search
    semanticConfiguration string Nessuno
    topK int 5
  7. Selezionare Salva dal menu in alto per salvare le modifiche.

Formattare i documenti recuperati per l'output

Dopo aver ottenuto le informazioni sul prodotto e sul cliente nel flusso di richiesta, formattare i documenti recuperati in modo che il modello linguistico di grandi dimensioni possa usarli.

  1. Selezionare il nodo FormatRetrievedDocuments dal grafico.

  2. Copiare e incollare il codice Python seguente per sostituire tutto il contenuto nel blocco di codice FormatRetrievedDocuments .

    from promptflow import tool
    
    @tool
    def format_retrieved_documents(docs1: object, docs2: object, maxTokens: int) -> str:
      formattedDocs = []
      strResult = ""
      docs = [val for pair in zip(docs1, docs2) for val in pair]
      for index, doc in enumerate(docs):
        formattedDocs.append({
          f"[doc{index}]": {
            "title": doc['title'],
            "content": doc['content']
          }
        })
        formattedResult = { "retrieved_documents": formattedDocs }
        nextStrResult = str(formattedResult)
        if (estimate_tokens(nextStrResult) > maxTokens):
          break
        strResult = nextStrResult
    
      return {
              "combined_docs": docs,
              "strResult": strResult
          }
    
    def estimate_tokens(text: str) -> int:
      return (len(text) + 2) / 3
    
  3. Selezionare il pulsante Convalida e analizza input per convalidare gli input per il nodo FormatRetrievedDocuments . Se gli input sono validi, il flusso del prompt analizza gli input e crea le variabili necessarie da usare nel codice.

  4. Modificare gli input FormatRetrievedDocuments che richiedono l'analisi del flusso in modo che possano estrarre informazioni sul prodotto e sul cliente dai nodi RetrieveProductInfo e RetrieveCustomerInfo .

    Screenshot degli input da modificare nel nodo documenti recuperati nel formato.

    Gli input fanno distinzione tra maiuscole e minuscole, quindi assicurarsi che corrispondano esattamente a questi valori:

    Nome Type Valore
    docs1 oggetto ${RetrieveProductInfo.output}
    docs2 oggetto ${RetrieveCustomerInfo.output}
    maxTokens int 5000
  5. Selezionare il nodo DetermineReply dal grafico.

  6. Impostare l'input della documentazione su ${FormatRetrievedDocuments.output.strResult}.

    Screenshot della modifica del valore di input della documentazione nel nodo determina la risposta.

  7. Selezionare il nodo output dal grafico.

  8. Impostare l'input fetched_docs su ${FormatRetrievedDocuments.output.combined_docs}.

    Screenshot della modifica del valore di input fetched_docs nel nodo output.

  9. Selezionare Salva dal menu in alto per salvare le modifiche.

Chat in prompt flow with product and customer info (Chat in prompt flow with product and customer info)

A questo momento sono disponibili sia il prodotto che le informazioni dei clienti nel flusso di richiesta. È possibile chattare con il modello nel flusso di richiesta e ottenere risposte a domande come "Quante scarpe trailwalker hanno acquistato Daniel Wilson?" Prima di procedere a una valutazione più formale, è possibile chattare facoltativamente con il modello per vedere come risponde alle domande.

  1. Selezionare Chat dal menu in alto nel flusso di richiesta per provare la chat.

  2. Immettere "Quante scarpe trailwalker hanno acquistato Daniel Wilson?" e quindi selezionare l'icona a forma di freccia destra da inviare.

  3. La risposta è quella prevista. Il modello usa le informazioni del cliente per rispondere alla domanda.

    Screenshot della risposta dell'assistente con i dati di base del prodotto e del cliente.

Valutare il flusso usando un set di dati di valutazione di domande e risposte

In Azure AI Studio si vuole valutare il flusso prima di distribuire il flusso per l'utilizzo.

In questa sezione viene usata la valutazione predefinita per valutare il flusso con un set di dati di valutazione di domande e risposte. La valutazione predefinita usa metriche basate su intelligenza artificiale per valutare il flusso: base, pertinenza e punteggio di recupero. Per altre informazioni, vedere Metriche di valutazione predefinite.

Creare una valutazione

È necessario un set di dati di valutazione di domande e risposte che contiene domande e risposte rilevanti per lo scenario. Creare un nuovo file denominato qa-evaluation.jsonl in locale. Copiare e incollare le domande e le risposte seguenti ("truth") nel file.

{"question": "What color is the CozyNights Sleeping Bag?", "truth": "Red", "chat_history": [], }
{"question": "When did Daniel Wilson order the BaseCamp Folding Table?", "truth": "May 7th, 2023", "chat_history": [] }
{"question": "How much does TrailWalker Hiking Shoes cost? ", "truth": "$110", "chat_history": [] }
{"question": "What kind of tent did Sarah Lee buy?", "truth": "SkyView 2 person tent", "chat_history": [] }
{"question": "What is Melissa Davis's phone number?", "truth": "555-333-4444", "chat_history": [] }
{"question": "What is the proper care for trailwalker hiking shoes?", "truth": "After each use, remove any dirt or debris by brushing or wiping the shoes with a damp cloth.", "chat_history": [] }
{"question": "Does TrailMaster Tent come with a warranty?", "truth": "2 years", "chat_history": [] }
{"question": "How much did David Kim spend on the TrailLite Daypack?", "truth": "$240", "chat_history": [] }
{"question": "What items did Amanda Perez purchase?", "truth": "TrailMaster X4 Tent, TrekReady Hiking Boots (quantity 3), CozyNights Sleeping Bag, TrailBlaze Hiking Pants, RainGuard Hiking Jacket, and CompactCook Camping Stove", "chat_history": [] }
{"question": "What is the Brand for TrekReady Hiking Boots", "truth": "TrekReady", "chat_history": [] }
{"question": "How many items did Karen Williams buy?", "truth": "three items of the Summit Breeze Jacket", "chat_history": [] }
{"question": "France is in Europe", "truth": "Sorry, I can only truth questions related to outdoor/camping gear and equipment", "chat_history": [] }

Dopo aver creato il set di dati di valutazione, è possibile valutare il flusso seguendo questa procedura:

  1. Selezionare Valuta>valutazione predefinita dal menu in alto nel flusso del prompt.

    Screenshot dell'opzione per creare una valutazione predefinita dal flusso di richiesta.

    Verrà visualizzata la procedura guidata Crea una nuova valutazione .

  2. Immettere un nome per la valutazione e selezionare un runtime.

  3. Selezionare Coppie di domande e risposte con generazione aumentata di recupero dalle opzioni dello scenario.

    Screenshot della selezione di uno scenario di valutazione.

  4. Selezionare il flusso da valutare. In questo esempio selezionare Flusso esterno contoso o qualsiasi elemento denominato il flusso. Quindi, selezionare Avanti.

  5. Selezionare le metriche da usare per valutare il flusso. In questo esempio selezionare Groundedness, Relevance e Retrieval score (Punteggio di recupero).

    Screenshot della selezione delle metriche di valutazione.

  6. Selezionare un modello da usare per la valutazione. In questo esempio selezionare gpt-35-turbo-16k. Quindi, seleziona Avanti.

    Nota

    La valutazione con le metriche assistita dall'intelligenza artificiale deve chiamare un altro modello GPT per eseguire il calcolo. Per ottenere prestazioni ottimali, usare un modello che supporta almeno 16.000 token, ad esempio gpt-4-32k o gpt-35-turbo-16k. Se in precedenza non è stato distribuito un modello di questo tipo, è possibile distribuire un altro modello seguendo la procedura descritta in Distribuire un modello di chat. Tornare quindi a questo passaggio e selezionare il modello distribuito.

  7. Selezionare Aggiungi nuovo set di dati. Quindi, selezionare Avanti.

    Screenshot dell'opzione per l'uso di un set di dati nuovo o esistente.

  8. Selezionare Carica file, esplorare i file e selezionare il file qa-evaluation.jsonl creato in precedenza.

    Screenshot del pulsante di caricamento dei file del set di dati.

  9. Dopo aver caricato il file, è necessario eseguire il mapping delle proprietà dal file (origine dati) alle proprietà di valutazione. Immettere i valori seguenti per ogni proprietà dell'origine dati:

    Screenshot del mapping del set di dati di valutazione.

    Nome Descrizione Tipo Origine dati
    chat_history Cronologia delle chat list ${data.chat_history}
    query La query string ${data.question}
    Domanda Query per la ricerca di informazioni specifiche string ${data.question}
    Risposta Risposta alla domanda generata dal modello come risposta string ${run.outputs.reply}
    Documenti Stringa con contesto da documenti recuperati string ${run.outputs.fetched_docs}
  10. Selezionare Avanti.

  11. Esaminare i dettagli della valutazione e quindi selezionare Invia.

    Screenshot della pagina revisione e fine all'interno della finestra di dialogo crea valutazione.

    Si viene visualizzati nella pagina Valutazioni delle metriche .

Visualizzare lo stato e i risultati della valutazione

È ora possibile visualizzare lo stato e i risultati della valutazione seguendo questa procedura:

  1. Dopo aver creato una valutazione, se non è già disponibile passare a Build Evaluation (Valutazione>compilazione). Nella pagina Valutazioni delle metriche è possibile visualizzare lo stato di valutazione e le metriche selezionate. Potrebbe essere necessario selezionare Aggiorna dopo un paio di minuti per visualizzare lo stato Completato.

    Screenshot della pagina delle valutazioni delle metriche.

    Suggerimento

    Dopo aver completato la valutazione, non è necessario eseguire il runtime o il calcolo per completare il resto di questa esercitazione. È possibile arrestare l'istanza di calcolo per evitare di incorrere in costi di Azure non necessari. Per altre informazioni, vedere come avviare e arrestare il calcolo.

  2. Selezionare il nome della valutazione completata per prima (contoso-evaluate-from-flow_variant_0) per visualizzare i dettagli di valutazione con le colonne mappate in precedenza.

    Screenshot della pagina dettagliata dei risultati delle metriche.

  3. Selezionare il nome della valutazione che ha completato il secondo (evaluation_contoso-evaluate-from-flow_variant_0) per visualizzare le metriche di valutazione: Groundedness, Relevance e Retrieval Score.

    Screenshot dei punteggi medi delle metriche.

Per altre informazioni, vedere Visualizzare i risultati della valutazione.

Distribuire il flusso

Dopo aver creato un flusso e completato una valutazione basata su metriche, è possibile creare l'endpoint online per l'inferenza in tempo reale. Ciò significa che è possibile usare il flusso distribuito per rispondere alle domande in tempo reale.

Seguire questa procedura per distribuire un flusso di richiesta come endpoint online da Azure AI Studio.

  1. Preparare un flusso di richiesta per la distribuzione. Se non è disponibile, vedere come creare un flusso di richiesta.

  2. Facoltativo: selezionare Chat per verificare se il flusso funziona correttamente. È consigliabile testare il flusso prima della distribuzione.

  3. Selezionare Distribuisci nell'editor del flusso.

    Screenshot del pulsante Deploy (Distribuisci) da un editor del flusso di richiesta.

  4. Specificare le informazioni richieste nella pagina Impostazioni di base della distribuzione guidata.

    Screenshot della pagina delle impostazioni di base nella distribuzione guidata.

  5. Selezionare Avanti per passare alle pagine delle impostazioni avanzate.

  6. Nella pagina Impostazioni avanzate - Endpoint lasciare le impostazioni predefinite e selezionare Avanti.

  7. Nella pagina Impostazioni avanzate - Distribuzione lasciare le impostazioni predefinite e selezionare Avanti.

  8. Nella pagina Impostazioni avanzate - Output e connessioni assicurarsi che tutti gli output siano selezionati in Incluso nella risposta dell'endpoint.

    Screenshot della pagina impostazioni avanzate nella distribuzione guidata.

  9. Selezionare Rivedi e crea per esaminare le impostazioni e creare la distribuzione.

  10. Selezionare Crea per distribuire il flusso di richiesta.

    Screenshot della pagina delle impostazioni di distribuzione del flusso di richiesta di revisione.

Per altre informazioni, vedere come distribuire un flusso.

Usare il flusso distribuito

L'applicazione copilot può usare il flusso di richiesta distribuito per rispondere alle domande in tempo reale. È possibile usare l'endpoint REST o l'SDK per usare il flusso distribuito.

  1. Per visualizzare lo stato della distribuzione in Azure AI Studio, selezionare Distribuzioni nel riquadro di spostamento a sinistra. Dopo aver creato correttamente la distribuzione, è possibile selezionare la distribuzione per visualizzare i dettagli.

    Screenshot dello stato di distribuzione del flusso di richiesta in corso.

    Nota

    Se viene visualizzato un messaggio che indica che "Attualmente questo endpoint non ha distribuzioni" o lo stato è ancora In corso l'aggiornamento, potrebbe essere necessario selezionare Aggiorna dopo un paio di minuti per visualizzare la distribuzione.

  2. Facoltativamente, la pagina dei dettagli è la posizione in cui è possibile modificare il tipo di autenticazione o abilitare il monitoraggio.

    Screenshot della pagina dei dettagli della distribuzione del flusso di richiesta.

  3. Selezionare la scheda Consuma . È possibile visualizzare esempi di codice e l'endpoint REST per l'applicazione copilot per l'uso del flusso distribuito.

    Screenshot dell'endpoint di distribuzione del flusso di richiesta e degli esempi di codice.

Pulire le risorse

Per evitare di incorrere in costi di Azure non necessari, è necessario eliminare le risorse create in questa esercitazione se non sono più necessarie. Per gestire le risorse, è possibile usare il portale di Azure.

È anche possibile arrestare o eliminare l'istanza di calcolo in Azure AI Studio.

Demo della soluzione di chat aziendale di Azure AI Studio

Informazioni su come creare un copilota per la vendita al dettaglio usando i dati con Azure AI Studio in questo video di procedura dettagliata end-to-end.

Passaggi successivi