Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Copilot Studio inkluderer innebygde kunnskapskilder som SharePoint og Dataverse. Mange organisasjoner bruker også sine egne søkeendepunkter, som tilpassede API-er, eksisterende bedriftssøkesystemer eller Azure AI Search, samtidig som de beholder full kontroll over spørringen som kjøres.
Copilot Studio støtter dette scenarioet med OnKnowledgeRequested-utløseren. Ethvert emne som bruker denne triggeren fungerer som en tilpasset kunnskapskilde og bidrar med resultater til generativt svar.
Denne artikkelen viser hvordan du kan bygge og integrere tilpassede kunnskapskilder i Copilot Studio ved hjelp av OnKnowledgeRequested-utløseren. Du lærer hvordan Copilot Studio omskriver spørringer, kobler til ditt eget søke-API, formaterer resultater for generativt svar, og beste praksiser når du arbeider med tilpassede kunnskapskilder.
OnKnowledgeRequested-utløseren
Bruk OnKnowledgeRequested utløseren i disse to situasjonene:
- Når iverksetteren fastslår at kunnskapsinnhenting er nødvendig for å svare på en brukerhenvendelse.
- Når en generativ svarnode eksplisitt påkalles i samtalen.
Viktig!
Du kan bare konfigurere denne utløseren i kodevisning ved å bruke YAML. Det finnes ingen støtte for visuell designer.
Emner som bruker OnKnowledgeRequested har tilgang til systemvariabler som ikke er tilgjengelige i vanlige emner:
-
System.SearchQuery: En kontekstbevisst, omskrevet versjon av brukerens spørring som er optimalisert for semantisk søk. -
System.KeywordSearchQuery: En omskrevet spørring som er optimalisert for nøkkelordbaserte søkemotorer. -
System.SearchResults: Hvor emnet lagrer formaterte kunnskapsutdrag.
Copilot Studio skriver intelligent om spørringer ved å bruke samtalehistorikk, og sikrer at den bevarer konteksten over flere samtaleomganger.
Bygging av egendefinert kunnskapskilde
For å bygge en egendefinert kunnskapskilde, oppretter du et emne med OnKnowledgeRequested-utløseren som kaller søke-API-et ditt og omdanner resultatene til det formatet Copilot Studio forventer.
Trinn 1: Opprett utløseren
Opprett et nytt emne i Copilot Studio, bytt til kodevisning, og definer OnKnowledgeRequested-utløseren.
kind: AdaptiveDialog
beginDialog:
kind: OnKnowledgeRequested
id: main
intent: {}
actions:
# Actions go here
inputType: {}
outputType: {}
Denne strukturen forteller Copilot Studio at emnet er ansvarlig for å oppfylle kunnskapsforespørsler.
Trinn 2: Legg til en HTTP-forespørsel
Legg til en HTTP-aksjon som sender en forespørsel til søkeendepunktet ditt.
Eksempel:
- 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
Konkatenér System.KeywordSearchQuery til din base-nettadresse fordi Copilot Studio automatisk omskriver brukerforespørselen med samtalekontekst før søkeforespørselen sendes. Dette trinnet er viktig for å bevare konteksten i samtaler med flere utvekslinger.
Tips
I stedet for en rå HTTP-forespørsel kan du bruke hvilken som helst metode som henter resultater fra et søkeendepunkt, inkludert egendefinerte koblinger, innebygde koblinger som Azure AI Search, eller agentflyter.
Eksempel på omskriving av søkespørring
- Brukerspørsmål 1: "Hva er vår offisielle oppbevaringsperiode for kundedata?"
- Oppfølgingsspørsmål: «Endres det for finansiell informasjon?»
- Oppfølgingsspørsmål: «Og finnes det unntak?»
Omskrevet forespørsel blir: "unntak fra retningslinjer for dataoppbevaring, unntak for kunde- og finansdatalagring, regulatoriske unntak, policy, unntak, håndtering av samsvarsretningslinjer"
Legg merke til at den omskrevne forespørselen:
- Løser «der» til dataoppbevaringspolicy
- Henter kontekst fra begge tidligere forespørsler: kundedata + finansielle data
- Legger til terminologi fra bedriftspolicy: unntak, fritak, regulatoriske, retningslinjer
Trinn 3: Transformer resultater
En egendefinert kunnskapskilde må generere resultater i det formatet Copilot Studio forventer. Dette formatet bruker:
- Innhold: Tekstutdrag eller sammendrag.
- ContentLocation (valgfritt): URL.
- Tittel (valgfritt): Tittel på resultatet.
For å definere strukturen til HTTP-svaret, konfigurer responsskjemaet i Copilot Studio-brukergrensesnittet.
- Velg Fra eksempeldata for svar-datatypen.
- Velg Hent skjema fra eksempel-JSON.
- Lim inn et eksempel-JSON for automatisk å generere skjemaet.
Denne prosessen genererer responsskjemaet i YAML-filen din.
responseSchema:
kind: Record
properties:
query: String
results:
type:
kind: Table
properties:
snippet: String
title: String
url: String
Deretter tilpasser du APIens respons til dette formatet. Tilordn de transformerte dataene til System.SearchResults.
Eksempel på transformasjon
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: {}
Handlingen SetVariable utfører begge operasjonene:
- Funksjonen
ForAlltransformerer hvert søkeresultat, og avbildersnippettilContent,urltilContentLocationogtitletilTitle. - Den transformerte tabellen tilordnes til
System.SearchResults, som er variabelen Copilot Studio bruker for å generere svar.
Vurderinger
Husk disse nøkkelhensynene når du bygger egendefinerte kunnskapskilder.
Resultatbegrensninger
Copilot Studio bruker opptil 15 utdrag fra System.SearchResults for å generere et svar. Hvis API-en din returnerer flere resultater, vurder:
- Implementering av relevansrangering for å returnere de beste resultatene først.
- Begrens API-svaret til 15 resultater.
- Sorter resultater etter relevans før transformasjon.
Flere egendefinerte kunnskapsemner
Du kan opprette flere emner ved å bruke OnKnowledgeRequested, og hvert emne kan forespørre forskjellige backend-systemer. Copilot Studio påkaller alle samtidig når det trengs kunnskap. Denne tilnærmingen gjør det mulig å sende forespørsler til forskjellige søkeendepunkter eller benytte fallback-strategier.
Advarsel!
Resultatbegrensningen gjelder til sammen for alle kunnskapsemner. Hvis Emne A returnerer 10 resultater og Emne B returnerer 8, brukes kun de 15 øverste samlede resultatene.
Anbefalinger
- Sorter eller ranger resultater før du returnerer dem.
- Sørg for at responseskjemaene er ensartede.
- Bruk tydelige emnenavn og beskrivelser. Denne praksisen er nyttig når store resultatsett krever relevansfiltrering.