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.
Copilot Studio include fonti di conoscenza integrate, ad esempio SharePoint e Dataverse. Molte organizzazioni usano anche endpoint di ricerca personalizzati, ad esempio API personalizzate, sistemi di ricerca aziendali esistenti o Ricerca di intelligenza artificiale di Azure, mantenendo al tempo stesso il controllo completo sulla query eseguita.
Copilot Studio supporta questo scenario con il OnKnowledgeRequested trigger . Qualsiasi argomento che usa questo trigger funge da fonte di conoscenze personalizzata e contribuisce alla generazione di risposte.
Questo articolo illustra come creare fonti di conoscenza personalizzate e integrarle in Copilot Studio utilizzando il OnKnowledgeRequested trigger. Si apprenderà come Copilot Studio riscrive le query, come connettersi all'API di ricerca, come formattare i risultati per le risposte generative e le procedure consigliate quando si lavora con conoscenze personalizzate.
Trigger OnKnowledgeRequested
Usa il trigger OnKnowledgeRequested in queste due situazioni:
- Quando l'agente di orchestrazione determina che il recupero delle informazioni è necessario per rispondere a una query dell'utente.
- Quando un nodo di risposte generative viene richiamato in modo esplicito nella conversazione.
Importante
È possibile configurare questo trigger solo nella visualizzazione codice usando YAML. Non c'è supporto per il progettista visivo.
Argomenti che usano OnKnowledgeRequested hanno accesso alle variabili di sistema che non sono disponibili negli argomenti regolari:
-
System.SearchQuery: versione riscritta e compatibile con il contesto della query dell'utente ottimizzata per la ricerca semantica. -
System.KeywordSearchQuery: query riscritta ottimizzata per i motori di ricerca basati su parole chiave. -
System.SearchResults: dove l'argomento archivia frammenti di informazioni formattati.
Copilot Studio riscrive in modo intelligente le query usando la cronologia delle conversazioni, assicurandosi che mantenga il contesto a più turni.
Creazione di un'origine personalizzata di conoscenza
Per creare un'origine di conoscenza personalizzata, crea un argomento con il trigger OnKnowledgeRequested che attiva il richiamo dell'API di ricerca e trasforma i risultati nel formato previsto da Copilot Studio.
Passaggio 1: Creare il trigger
Creare un nuovo argomento in Copilot Studio, passare alla visualizzazione codice e definire il OnKnowledgeRequested trigger.
kind: AdaptiveDialog
beginDialog:
kind: OnKnowledgeRequested
id: main
intent: {}
actions:
# Actions go here
inputType: {}
outputType: {}
Questa struttura indica a Copilot Studio che questo argomento è responsabile dell'adempimento delle richieste di informazioni.
Passaggio 2: Aggiungere una richiesta HTTP
Aggiungere un'azione HTTP che chiama l'endpoint di ricerca.
Esempio:
- kind: HttpRequestAction
id: searchRequest
url: = "https://search-api.contoso.com/search?q=" & System.KeywordSearchQuery
response: Topic.searchResults
responseSchema:
kind: Record
properties:
query: String
results:
type:
kind: Table
properties:
snippet: String
title: String
url: String
Concatenare System.KeywordSearchQuery all'URL di base perché Copilot Studio riscrive automaticamente la query dell'utente con il contesto di conversazione prima di effettuare la richiesta di ricerca. Questo passaggio è importante per mantenere il contesto nelle conversazioni a più turni.
Suggerimento
Anziché una richiesta HTTP non elaborata, è possibile usare qualsiasi metodo che ottiene i risultati da un endpoint di ricerca, inclusi connettori personalizzati, connettori predefiniti come Ricerca di intelligenza artificiale di Azure o flussi agente.
Esempio di riscrittura delle query
- Query utente 1: "Qual è il periodo di conservazione dei dati ufficiale per i record dei clienti?"
- Query di completamento: "Cambia per informazioni finanziarie?"
- Query di completamento: "E ci sono eccezioni?"
La query riscritta diventa: "Eccezioni ai criteri di conservazione dei dati cliente e eccezioni di conservazione dei dati finanziarie eccezioni normative per la gestione delle eccezioni ai criteri di conformità"
Si noti che la query riscritta:
- Risolve "there" nei criteri di conservazione dei dati
- Recupera il contesto dalle interazioni precedenti: dati dei clienti e dati finanziari
- Aggiunge il linguaggio dei criteri aziendali: eccezioni, esenzioni, normative, linee guida
Passaggio 3: Trasformare i risultati
Una fonte di conoscenza personalizzata deve restituire i risultati nel formato previsto da Copilot Studio. Questo formato usa:
- Contenuto: frammento o estratto.
- ContentLocation (facoltativo): URL.
- Titolo (facoltativo): titolo del risultato.
Per definire la struttura della risposta HTTP, configurare lo schema di risposta nell'interfaccia utente di Copilot Studio.
- Selezionare Da dati di esempio per il tipo di dati di risposta.
- Selezionare Recupera schema da JSON di esempio.
- Incollare il payload JSON di esempio per generare automaticamente lo schema.
Questo processo genera lo schema di risposta nel file YAML.
responseSchema:
kind: Record
properties:
query: String
results:
type:
kind: Table
properties:
snippet: String
title: String
url: String
Successivamente, trasformare la risposta dell'API in modo che corrisponda a questo formato. Assegnare i dati trasformati a System.SearchResults.
Trasformazione di esempio
kind: AdaptiveDialog
beginDialog:
kind: OnKnowledgeRequested
id: main
intent: {}
actions:
- kind: HttpRequestAction
id: searchRequest
url: ="https://search-api.contoso.com/search?q=" & System.KeywordSearchQuery
response: Topic.searchResults
responseSchema:
kind: Record
properties:
query: String
results:
type:
kind: Table
properties:
snippet: String
title: String
url: String
- kind: SetVariable
id: setSearchResults
variable: System.SearchResults
value: |-
=ForAll(Topic.searchResults.results,
{
Content: snippet,
ContentLocation: url,
Title: title
})
inputType: {}
outputType: {}
L'azione SetVariable esegue entrambe le operazioni:
- La
ForAllfunzione trasforma ogni risultato della ricerca, mappandosnippetaContent,urlaContentLocation, etitleaTitle. - La tabella trasformata viene assegnata a
System.SearchResults, ovvero la variabile usata da Copilot Studio per generare risposte.
Considerazioni
Tenere presenti queste considerazioni chiave quando si creano origini di conoscenze personalizzate.
Limiti dei risultati
Copilot Studio usa fino a 15 frammenti di codice da System.SearchResults per generare una risposta. Se l'API restituisce più risultati, prendere in considerazione:
- Implementazione del punteggio di pertinenza per restituire prima i risultati migliori.
- Limitare la risposta dell'API a 15 risultati.
- Ordinamento dei risultati per pertinenza prima della trasformazione.
Più argomenti di knowledge base personalizzati
È possibile creare più argomenti usando OnKnowledgeRequestede ogni argomento può eseguire query su sistemi back-end diversi. Copilot Studio richiama tutti contemporaneamente quando è necessaria una conoscenza. Questo approccio consente di eseguire query su endpoint di ricerca diversi o implementare strategie di fallback.
Avviso
Il limite dei risultati si applica a tutti gli argomenti della base di conoscenza insieme. Se l'argomento A restituisce 10 risultati e l'argomento B restituisce 8, vengono utilizzati solo i primi 15 risultati combinati.
Raccomandazioni
- Ordinare o assegnare un punteggio ai risultati prima di restituirli.
- Mantenere coerenti gli schemi di risposta.
- Usare nomi e descrizioni di argomenti chiari. Questa procedura è utile quando i set di risultati di grandi dimensioni richiedono filtri per pertinenza.