Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Copilot Studio inkluderar inbyggda kunskapskällor som SharePoint och Dataverse. Många organisationer använder också sina egna sökändpunkter, såsom anpassade API:er, befintliga företagssöksystem eller Azure AI-sökning, samtidigt som de behåller full kontroll över den sökfråga som körs.
Copilot Studio stöder detta scenario med utlösaren OnKnowledgeRequested. Varje ämne som använder denna utlösare fungerar som en anpassad kunskapskälla och bidrar med resultat till generativa svar.
Denna artikel förklarar hur du bygger och integrerar anpassade kunskapskällor i Copilot Studio med hjälp av OnKnowledgeRequested-utlösaren. Du får lära dig hur Copilot Studio skriver om sökfrågor, hur du ansluter till ditt eget sök-API, hur du formaterar resultat för generativa svar och vilka bästa praxis som gäller när du arbetar med egen kunskap.
OnKnowledgeRequested-utlösaren
Använd OnKnowledgeRequested utlösaren i dessa två situationer:
- När orkestrering bedömer att kunskapshämtning krävs för att besvara en användarfråga.
- När en generativt svarsnod uttryckligen anropas i konversationen.
Viktigt
Du kan endast konfigurera den här utlösaren i kodvy genom att använda YAML. Det finns inget stöd för visuell designer.
Ämnen som använder OnKnowledgeRequested har tillgång till systemvariabler som inte finns tillgängliga i vanliga ämnen:
-
System.SearchQuery: En kontextmedveten, omskriven version av användarens fråga som är optimerad för semantisk sökning. -
System.KeywordSearchQuery: En omskriven sökfråga som är optimerad för nyckelordsbaserade sökmotorer. -
System.SearchResults: Där ämnet lagrar formaterade kunskapsfragment.
Copilot Studio skriver intelligent om frågor med hjälp av konversationshistorik, vilket säkerställer att sammanhanget bevaras vid flera vändor.
Bygga en anpassad kunskapskälla
För att bygga en anpassad kunskapskälla skapar du ett ämne med OnKnowledgeRequestedutlösaren som anropar ditt sök-API och omvandlar resultaten till det format som Copilot Studio förväntar sig.
Steg 1: Skapa en utlösare
Skapa ett nytt ämne i Copilot Studio, gå över till kodvyn och definiera OnKnowledgeRequested-utlösaren.
kind: AdaptiveDialog
beginDialog:
kind: OnKnowledgeRequested
id: main
intent: {}
actions:
# Actions go here
inputType: {}
outputType: {}
Denna struktur talar om för Copilot Studio att detta ämne ansvarar för att hantera kunskapsförfrågningar.
Steg 2: Lägg till en HTTP-förfrågan
Lägg till en HTTP-åtgärd som anropar din söktjänst.
Exempel:
- 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
Konkatenera System.KeywordSearchQuery med din bas-URL eftersom Copilot Studio automatiskt skriver om användarfrågan med konversationskontext innan sökförfrågan skickas. Detta steg är viktigt för att upprätthålla kontext genom flera samtalsväxlingar.
Dricks
Istället för en rå HTTP-förfrågan kan du använda vilken metod som helst som hämtar resultat från ett sökgränssnitt, inklusive egna anslutningsprogram, inbyggda anslutningsprogram som Azure AI-sökning eller agentflöden.
Exempel på omskrivning av sökfrågor
- Användarfråga 1: "Vad är vår officiella lagringsperiod för kunduppgifter?"
- Följdfråga: "Ändras det för finansiell information?"
- Följdfråga: "Och finns det undantag?"
Omskriven fråga blir: "undantag från datakvarhållningspolicy kund och undantag för finansiell datakvarhållning regulatoriska undantag policyundantag hantering av efterlevnadsriktlinjer"
Observera att den omskrivna sökfrågan:
- Löser "där" i datakvarhållningsprincipen
- Tar med sig kontext från båda tidigare turer: kunddata + finansiella data
- Lägger till termer från företagspolicy: undantag, dispenser, regulatoriska, riktlinjer
Steg 3: Transformera resultat
En anpassad kunskapskälla måste producera utdata i det format som Copilot Studio förväntar sig. Formatet använder:
- Innehåll: Utdrag eller exempel.
- ContentLocation (valfritt): URL.
- Titel (valfritt): Titeln på resultatet.
För att definiera strukturen för HTTP-svaret, konfigurera svarsschemat i Copilot Studio-användargränssnittet.
- Välj Från exempeldata för responsdatatypen.
- Välj Hämta schema från exempel-JSON.
- Klistra in din exempel-JSON-payload för att automatiskt generera schemat.
Denna process genererar svarsschemat i din YAML-fil.
responseSchema:
kind: Record
properties:
query: String
results:
type:
kind: Table
properties:
snippet: String
title: String
url: String
Därefter transformerar du ditt API:s svar så att det matchar detta format. Tilldela den transformerade datan till System.SearchResults.
Exempel på transformation
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: {}
Åtgärden SetVariable utför båda åtgärderna:
- Funktionen
ForAllbearbetar varje sökresultat, därsnippetmappas tillContent,urltillContentLocationochtitletillTitle. - Den transformerade tabellen tilldelas
System.SearchResults, vilket är variabeln som Copilot Studio använder för att generera svar.
Att tänka på
Ha dessa viktiga överväganden i åtanke när du skapar skräddarsydda kunskapskällor.
Resultatgränser
Copilot Studio använder upp till 15 utdrag från System.SearchResults för att generera ett svar. Om ditt API returnerar fler resultat, överväg:
- Implementera relevansbedömning för att visa de bästa resultaten först.
- Begränsa ditt API-svar till 15 resultat.
- Sortera resultaten efter relevans före transformering.
Flera anpassade kunskapsämnen
Du kan skapa flera ämnen genom att använda OnKnowledgeRequested, och varje ämne kan hämta information från olika serverdelssystem. Copilot Studio anropar alla samtidigt när kunskap behövs. Detta angreppssätt gör det möjligt att fråga olika sökslutpunkter eller implementera reservstrategier.
Varning!
Resultatgränsen gäller gemensamt för alla kunskapsämnen. Om Ämne A ger 10 resultat och Ämne B 8, används endast de 15 sammanlagda resultaten.
Rekommendationer
- Sortera eller poängsätt resultaten innan du returnerar dem.
- Håll responsscheman konsekventa.
- Använd tydliga ämnesnamn och beskrivningar. Denna metod är särskilt användbar när stora mängder resultat behöver filtreras utifrån relevans.