Anslut en robot för sökning (förhandsversion)
Den här artikeln beskriver hur du skapar en anpassad federerad sökprovider (ström från din robot) och ansluter den till sökkanalen. När klientadministratören aktiverar din leverantör i klientorganisationen kan företagsanvändarens sökningar från Office.com, SharePoint.com och Bing.com innehålla resultat från din anpassade sökprovider.
Med Microsoft Federated Search Platform kan du skapa anpassade federerade sökleverantörer så att din information kan delta i Microsoft Searchs svars- och vertikalfunktioner utan att behöva slå samman den informationen med ditt Microsoft 365-index. Mer information finns i Meddelande om utvecklarförhandsvisning av Microsoft Federated Search Platform och Dynamics 365 federationssökning (förhandsversion).
Kommentar
Sökkanalen är i privat förhandsversion. Om du vill begära åtkomst använder du formuläret Privat förhandsversion av Microsoft Search Developer. I fråga 7 väljer du Federerad sökning.
Följande steg krävs för att ansluta roboten till sökkanalen. De här stegen beskrivs mer detaljerat senare i den här artikeln.
- Implementera din robot för att fungera som sökprovider.
- Om din robot kräver att användarna är inloggade:
- I Azure-portalen exponerar du robot-API:et för sökplattformen.
- I robotkoden använder du den genererade omfångs-URI:n för att generera en användartoken.
- Distribuera din robot till Azure.
- Lägg till sökkanalen i roboten.
- Be IT-administratören att granska robotregistreringen och publicera roboten i klientorganisationen.
Dricks
Vi rekommenderar att du aktiverar sökprovidern i en testklient innan du aktiverar den i produktion.
Förutsättningar
- Kunskap om grunderna i Bot Framework Service och hur du skapar en robot med Bot Framework SDK.
- Roboten för att ansluta till kanalen.
- Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.
Du kan implementera din robot på något av de språk som stöds av Bot Framework SDK. I den här artikeln används den federerade C# -sökroboten som exempel.
Exponera robot-API:et för sökning
Dricks
Det här steget behövs bara om roboten kräver åtkomst till skyddade användarresurser.
I vissa affärsarbetsflöden kan en robot kräva användarautentiseringsuppgifter för att utföra en åtgärd för användarens räkning. Om du vill skapa en enkel inloggning (SSO) för din robot i sökkanalen måste du tillåta att sökplattformen skyddar en åtkomsttoken från Microsoft Entra-ID för användarens räkning.
Så här genererar du en omfångs-URI och ett program-ID för din robot:
- Gå till Azure-portalen.
- Om du inte redan har en robotresurs skapar du en Azure Bot-resurs.
- Gå till Microsoft Entra ID-tjänsten .
- Gå till fönstret Appregistreringar.
- Välj det program som är associerat med roboten.
- Gå till fönstret Exponera ett API .
- Välj Lägg till en omfattning.
- I fönstret Lägg till ett omfång rekommenderar vi att du behåller den automatiskt genererade program-ID-URI :n. Välj Spara och fortsätt.
- Ange ett omfångsnamn.
- För Vem kan samtycka?, Administratörer och användare föredras, men båda alternativen fungerar.
- Ange ett visningsnamn för administratörsmedgivande och en beskrivning av administratörsmedgivande.
- Du kan också ange ett visningsnamn för användarmedgivande och en beskrivning av användarmedgivande.
- Kontrollera att Tillståndet är inställt på Aktiverad.
- Välj Lägg till definitionsområde.
- Välj Lägg till ett klientprogram.
- I fönstret Lägg till ett klientprogram anger du Klient-ID till
81473081-50b9-469a-b9d8-303109583ecb
, sökplattformens klient-ID. - Under Auktoriserade omfång väljer du den omfångs-URI som du skapade i föregående steg.
- Välj Lägg till program.
- I fönstret Lägg till ett klientprogram anger du Klient-ID till
- Gå till fönstret Översikt . Kopiera program-ID-URI:n. Du behöver detta när du registrerar din robot i sökkanalen.
Implementera din robot
Sökkanalen skickar varje användarfråga till din robot som en anropande aktivitet med namnet "application/search". Roboten returnerar frågeresultatet i anropssvaret. Använd formatet Adaptive Card för frågeresultatet som skickas tillbaka till sökkanalen.
- Uppdatera eventuella Bot Framework- och Adaptive Cards-paket i projektet till den senaste versionen.
- Du kan också lägga till autentiseringskod för att generera en användartoken.
- Implementera en datasökningsmetod för varje datakälla som ska inkluderas.
- Generera det adaptiva kortet för att visa resultatet.
Hämta sökplattformens spårnings-ID
Sökplattformen tilldelar ett unikt spårnings-ID till varje fråga som skickas till din robot. Plattformen lägger till detta i anropande aktivitets kanaldata. Du kan välja att logga spårnings-ID:t för begäran. Använd kanaldatans egenskap för att hämta spårnings-ID traceId
:t.
I det federerade sökexemplet SearchHelper.GetSearchTraceId
visar metoden hur du hämtar spårnings-ID:t från anropande aktivitet.
Lägg till autentisering
Om du exponerade robot-API:et för sökning och begärde autentisering när du anslöt roboten till Sök kan du hämta användarautentiseringstoken från aktivitetens kanaldata.
Kanaldatans egenskap kan innehålla en lista över autentiseringstoken authorizations
. Om du exponerar robot-API:et för sökning innehåller listan token för din räkning. Token i listan har följande struktur:
Egenskapsnamn | Type | Beskrivning |
---|---|---|
authType | integer | Typ av autentiseringstoken: 0 för okänd eller standard, eller 2 för token för räkning. |
token | sträng | Själva autentiseringstoken. |
I det federerade sökexemplet:
- Klassen
SearchBotAuthenticationToken
ochAuthenticationTypes
uppräkningen representerar den här informationen. - Metoden
SearchHelper.GetSearchOboToken
visar hur du hämtar token från anropsaktiviteten.
När du har token kan du använda den när du begär några skyddade resurser för användaren. Information om hur du använder token för räkning finns i Microsofts identitetsplattform och OAuth 2.0 On-Behalf-Of-flödet.
Fråga varje datalager
Sökkanalen skickar en fråga till roboten som en invoke
aktivitet med frågeinformationen i aktivitetens value
egenskap, som representerar ett JSON-objekt med följande struktur:
Egenskapsnamn | Type | Beskrivning |
---|---|---|
queryText | sträng | Frågetexten. |
typ | sträng | Typen av fråga: "sök" när resultatet visas på en anpassad lodrät flik eller "searchAnswer" när ett resultat visas som ett svar på fliken Alla. |
queryOptions | objekt | Ytterligare frågealternativ som används för sidnumrering. |
queryOptions.skip | integer | Indexet för det första resultatet som ska skickas. |
queryOptions.top | integer | Det maximala antalet resultat som ska skickas. |
Du returnerar sökresultaten i anropssvaret:
Ange alltid egenskapen för anropande svarsobjekt
Status
till200
, vilket anger att nätverksanslutningen är okej. ObjektetsBody
egenskap har en separat statuskod.Egenskapen
Body
representerar ett JSON-objekt med följande struktur:Egenskapsnamn Type Beskrivning statusCode integer En HTTP-statuskod som används för att ange om roboten kunde köra frågan. type sträng Typen av anropande svar, som definierar formatet för värdefältet. Använd "application/vnd.microsoft.search.searchResponse" för sökresultat eller "application/vnd.microsoft.error" för ett felmeddelande. värde objekt Ett värde som motsvarar värdet type
.För felmeddelanden innehåller objektet
value
:Egenskapsnamn Type Beskrivning kod sträng En felkod som definierats av roboten, eller null
om den inte har angetts.meddelande sträng Ett felmeddelande, eller null
om det inte har angetts.För sökresultat innehåller objektet
value
:Egenskapsnamn Type Beskrivning Resultat matris med sökresultatobjekt Resultatet, eller null
om inget.displayLayouts matris med visningslayoutobjekt Visningslayouterna, eller null
om inga.totalResultCount integer Det totala antalet tillgängliga resultat, om sidnumrering stöds. annars . null
moreResultsAvailable Booleskt Anger om fler resultat är tillgängliga. Sökresultatobjekt innehåller:
Egenskapsnamn Type Beskrivning värde sträng En unik identifierare eller ett värde för det här sökresultatet. layoutId sträng ID:t för visningslayouten som ska användas för det här resultatet. data.searchResultText sträng Texten för det här resultatet. Visningslayoutobjekt innehåller:
Egenskapsnamn Type Beskrivning layoutId sträng Layout-ID:t. layoutBody sträng Layouttexten som ett JSON-objekt för adaptiva kort.
I det federerade sökexemplet SearchHelper.RunFederatedSearch
visar metoden hur du hämtar frågeinformationen från anropa-aktiviteten och hur du formaterar anropssvaret.
Visa sökresultat
Du kan skapa lodräta söktyper och resultattyper för att anpassa sökresultaten som användarna ser när de söker i SharePoint, Office och Bing. Vertikaler gör det enklare för användare att hitta den information som de har behörighet att se. Mer information finns i avsnittet Adaptive Card-element som stöds.
Om roboten tar emot en fråga som den inte har något svar för ska svaret innehålla ett tomt svar.
Registrera din robot i Azure
Om du vill ansluta roboten till sökkanalen måste du ha en robotresurs etablerad i Azure. Mer information finns i Registrera en robot med Azure eller hur du distribuerar din robot i Azure.
Anslut roboten för att söka
Följande instruktioner visar hur du ansluter en robot till Search.
Dricks
Vi rekommenderar att du aktiverar sökprovidern i en testklient innan du aktiverar den i produktion.
Gå till Azure-portalen.
Öppna robotresursen.
Öppna fönstret Kanaler (förhandsversion).
Välj Sök.
På fliken Sök Inställningar anger du information för roboten.
Under Sökproviderns metadata anger du namnet som ska visas i sökgränssnittet.
Under Utlösarfraser definierar du de fraser som representerar de frågor som roboten kan besvara.
Kommentar
För initiala versioner är endast engelska (en-US) tillgängliga.
- Ladda upp en
.csv
fil som innehåller fraserna. Filen ska innehålla en kolumn med data, utan rubriker. - I listan Språkinställningar väljer du det språk där utlösarfraserna skrivs.
- Ladda upp en
Under Autentisering anger du om sökprovidern kräver användarautentisering.
- Om autentisering krävs anger du autentiserings-URL:en. Använd den program-ID-URI som du kopierade när du exponerade API:et för din robot.
Välj Nästa.
På fliken Lodräta värden anger du det lodräta namnet i fältet om du vill att resultaten från sökprovidern ska visas i sin egen anpassade lodräta sida i sökresultatsidan. Annars lämnar du fältet tomt. Välj sedan Nästa.
Sökresultatsidan är för Office.com, SharePoint.com och Bing.com.På fliken Publicering av klientorganisation granskar du inställningarna och lägger till publiceringsinformation.
- Granska sökproviderns namn och exempelfrågor. Gå tillbaka till föregående flikar för att ändra den här informationen om det behövs.
- Ange en beskrivning av sökprovidern.
- Ange ett e-postmeddelande till supportkontakten. Använd e-postmeddelandet från en utvecklar- eller utvecklargrupp som har åtkomst till sökprovidern.
Välj Lägg till för att begära godkännande från IT-administratören.
Godkänna en sökprovider i en klientorganisation
Godkännandet av sökprovidern i klientorganisationen görs av en IT-administratör på sidan Sök och intelligens i Administrationscenter för Microsoft 365.
Testa anslutningen
Vi rekommenderar att du aktiverar sökprovidern i en testklient innan du aktiverar den i produktion.
Ändra en sökprovider
Du kan redigera sökprovidern innan du skickar den för granskning av IT-administratören. Du kan behöva göra det om din första begäran avvisas eller om tjänsten har inaktiverats.
- I Azure-portalen går du till robotresursen som innehåller sökprovidern som du vill redigera.
- Gå till fönstret Kanaler (förhandsversion).
- Välj sökkanalen och välj Redigera.
- Azure visar fönstret Sökkanal . I det här fönstret kan du redigera inställningarna.
- Om du vill ändra utlösande fraser laddar du ned filen, redigerar den lokalt och laddar upp filen.
- När du har slutfört dina redigeringar väljer du Lägg till igen för att skicka sökprovidern för granskning av IT-administratören.
Ta bort en sökprovider
Sökprovidern tas bort om du tar bort sökkanalen från robotresursen.
Så här tar du bort sökkanalen från roboten:
- Gå till robotresursen i Azure-portalen.
- Gå till fönstret Kanaler (förhandsversion).
- Välj sökkanalen.
- Längst upp i fönstret Sök kanal väljer du Ta bort kanal.
- Välj Ja för att bekräfta åtgärden.
Så här tar du bort robotresursen:
- Gå till robotresursen i Azure-portalen.
- Om du inte redan har gjort det tar du bort sökkanalen från roboten.
- Längst upp i fönstret Översikt väljer du Ta bort.
- Bekräfta åtgärden genom att välja OK.
Ytterligare information
Sökkanalen använder federerad sökning och schemat adaptiva kort:
Mer information om schemat adaptivt kort finns i Adaptiva kort för robotutvecklare.
Om utlösarfraser
En utlösarfras är en fras som sökplattformen använder för att dirigera en fråga till din anpassade sökleverantör som drivs av roboten. Federerad sökning vidarebefordrar en användares yttrande till din sökprovider när yttrandet är en nära matchning mot en av utlösarfraserna.
Dricks
Om fler än en sökprovider är tillgänglig väljer federerad sökning bara en, baserat på de utlösarfraser som tillhandahålls och användarens fråga.
Tänk till exempel på en robot som hanterar flygscheman och status.
Tänk på några vanliga sätt som en användare skulle referera till eller använda din robot på. Se till att skilja din robot från andra.
I stället för en allmän term, till exempel "tidtabell" som kan gälla för skolor och TV-program, använder du mer specifika fraser, till exempel "flygtidstabell" och "flygschema".
Inkludera olika fraser som täcker omfattningen av robotens funktioner, till exempel avgångstid och aktuell status.
Ta till exempel med frågor om: ankomst- eller avgångstider och flygplatser.
Utlösarfraserna för ett sådant flygschema och en statusrobot kan innehålla:
- Flygtidtabell
- Flygstatus
- Avgångstid för flight 675
- När kommer mitt flyg att avgå
- Flyg 468 ankomsttid
- Seattle Tacoma flygstatus
- Heathrow-flygstatus
Som ett annat exempel kan utlösarfraserna för en väderprognosrobot innehålla:
- Lokal väderprognos
- Väderinformation
- Morgondagens väder
- 10 dagars väderprognos
- Dagens höga
- Dagens risk för regn
- Kommer det snöa i morgon
- Vindhastighet i morgon
- Är det blåsigt ute
- London väder
Adaptiva kortelement som stöds
En delmängd av schemat adaptivt kort stöds i federerad sökning. Information om hur du formaterar sökresultat finns på sidan Anpassa sökresultat.
Stödet innehåller följande adaptiva kortelement: TextBlock, RichTextBlock, Image, ColumnSet, ImageSet och FactSet. Mer information finns i Microsoft Searchs Hantera sökresultatlayouter och Schemautforskaren för adaptiva kort.
Du kan skapa varje kort direkt som JSON, eller så kan du använda NuGet-paketet AdaptiveCards .
Federerad sökning stöder inte HTML
Viktigt!
Federerad sökning renderar inte adaptiv korttext som innehåller HTML.
Sökplattformen innehåller ingen HTML-parser. Du kan dock eliminera några av taggarna och använda NuGet-paketet Html2Markdown för att konvertera HTML till Markdown:
- Ta bort
<span>
och<u>
element. - Ersätt
<div>
och<br>
element med stycke (<p>
) element. - Konvertera återstående HTML till Markdown.
Nästa steg
- Information om kanalstöd i Bot Anslut or Service finns i Anslut en robot till kanaler.
- Information om hur du skapar robotar finns i Hur robotar fungerar och snabbstarten Skapa en robot med Bot Framework SDK .
- Information om hur du distribuerar robotar finns i Distribuera din robot och Konfigurera kontinuerlig distribution.