Dela via


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.

  1. Implementera din robot för att fungera som sökprovider.
  2. Om din robot kräver att användarna är inloggade:
    1. I Azure-portalen exponerar du robot-API:et för sökplattformen.
    2. I robotkoden använder du den genererade omfångs-URI:n för att generera en användartoken.
  3. Distribuera din robot till Azure.
  4. Lägg till sökkanalen i roboten.
  5. 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

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.

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:

  1. Gå till Azure-portalen.
  2. Om du inte redan har en robotresurs skapar du en Azure Bot-resurs.
  3. Gå till Microsoft Entra ID-tjänsten .
  4. Gå till fönstret Appregistreringar.
  5. Välj det program som är associerat med roboten.
  6. Gå till fönstret Exponera ett API .
  7. Välj Lägg till en omfattning.
    1. 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.
    2. Ange ett omfångsnamn.
    3. För Vem kan samtycka?, Administratörer och användare föredras, men båda alternativen fungerar.
    4. Ange ett visningsnamn för administratörsmedgivande och en beskrivning av administratörsmedgivande.
    5. Du kan också ange ett visningsnamn för användarmedgivande och en beskrivning av användarmedgivande.
    6. Kontrollera att Tillståndet är inställt på Aktiverad.
    7. Välj Lägg till definitionsområde.
  8. Välj Lägg till ett klientprogram.
    1. I fönstret Lägg till ett klientprogram anger du Klient-ID till 81473081-50b9-469a-b9d8-303109583ecb, sökplattformens klient-ID.
    2. Under Auktoriserade omfång väljer du den omfångs-URI som du skapade i föregående steg.
    3. Välj Lägg till program.
  9. 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.

  1. Uppdatera eventuella Bot Framework- och Adaptive Cards-paket i projektet till den senaste versionen.
  2. Du kan också lägga till autentiseringskod för att generera en användartoken.
  3. Implementera en datasökningsmetod för varje datakälla som ska inkluderas.
  4. 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.GetSearchTraceIdvisar 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 och AuthenticationTypes 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 till 200, vilket anger att nätverksanslutningen är okej. Objektets Body 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.RunFederatedSearchvisar 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.

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.

  1. Gå till Azure-portalen.

  2. Öppna robotresursen.

  3. Öppna fönstret Kanaler (förhandsversion).

  4. Välj Sök.

  5. På fliken Sök Inställningar anger du information för roboten.

    Sample of the Search Settings tab

    1. Under Sökproviderns metadata anger du namnet som ska visas i sökgränssnittet.

    2. 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.
    3. Under Autentisering anger du om sökprovidern kräver användarautentisering.

    4. Välj Nästa.

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

  7. På fliken Publicering av klientorganisation granskar du inställningarna och lägger till publiceringsinformation.

    1. 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.
    2. Ange en beskrivning av sökprovidern.
    3. Ange ett e-postmeddelande till supportkontakten. Använd e-postmeddelandet från en utvecklar- eller utvecklargrupp som har åtkomst till sökprovidern.
  8. 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.

  1. I Azure-portalen går du till robotresursen som innehåller sökprovidern som du vill redigera.
  2. Gå till fönstret Kanaler (förhandsversion).
  3. Välj sökkanalen och välj Redigera.
    1. Azure visar fönstret Sökkanal . I det här fönstret kan du redigera inställningarna.
    2. Om du vill ändra utlösande fraser laddar du ned filen, redigerar den lokalt och laddar upp filen.
    3. 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:

  1. Gå till robotresursen i Azure-portalen.
  2. Gå till fönstret Kanaler (förhandsversion).
  3. Välj sökkanalen.
  4. Längst upp i fönstret Sök kanal väljer du Ta bort kanal.
  5. Välj Ja för att bekräfta åtgärden.

Så här tar du bort robotresursen:

  1. Gå till robotresursen i Azure-portalen.
  2. Om du inte redan har gjort det tar du bort sökkanalen från roboten.
  3. Längst upp i fönstret Översikt väljer du Ta bort.
  4. 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.

  1. 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".

  2. 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:

  1. Ta bort <span> och <u> element.
  2. Ersätt <div> och <br> element med stycke (<p>) element.
  3. Konvertera återstående HTML till Markdown.

Nästa steg