Jaa


Copilot Studion avustajan lisääminen Azure Bot Servicen kanaviin

Tärkeää

Power Virtual Agents -ominaisuudet ja -toiminnot ovat nyt Microsoft Copilot Studion osa generatiiviseen tekoälyyn tehtyjen panostusten ja parannettujen Microsoft Copilot -integrointien jälkeen.

Joissakin artikkeleissa ja näyttökuvissa voidaan viitata Power Virtual Agentsiin, kun ohjeita ja koulutussisältöä päivitetään.

Voit yhdistää avustajan olemassa oleviin Azure Bot Service -kanaviin. Tästä voi olla apua, jos haluat yhdistää avustajan käyttäjille Azure Bot Servicen kanavilla.

Avustajan lisääminen Azure Bot Service -kanaviin edellyttää merkittävää kehittäjäasiantuntemusta. Tämä artikkeli on kirjoitettu IT-järjestelmänvalvojille tai sovelluskehittäjille, joilla on kokemusta koodin kehittämisestä ja kirjoittamisesta.

Vihje

Sinun ei tarvitse lukea tätä asiakirjaa, jos haluat lisätä Copilot Studio -avustajan verkkosivustollesi, Facebookiin tai Microsoft Teamsiin. Jos haluat muodostaa yhteyden mukautettuun verkkopohjaiseen tai natiiviin sovellukseen, kehittäjät saavat lisätietoja kohdasta Avustajan lisääminen mobiili- ja mukautettuihin sovelluksiin.

Tärkeää

Tämän osan ohjeet edellyttävät ohjelmistokehitystä sinulta tai kehittäjiltäsi. Se on tarkoitettu kokeneille IT-ammattilaisille, kuten IT-järjestelmänvalvojille tai sovelluskehittäjille, joilla on vankka käsitys kehittäjien työkaluista, apuohjelmista ja IDE:istä.

Edellytykset

Koodinäytteet

Tässä asiakirjassa käytetyt koodikatkelmat ovat peräisin relebotin näytekoodista .

Viitteet

Tämän asiakirjan ohjeissa viitataan seuraavaan:

Azure Bot Service -botin luonti tai aiemman luodun sellaisen käyttö

Tarvitset Azure Bot Service -botin, joka voi välittää keskusteluja Copilot Studion avustajan ja Azure Bot Service -kanavien välillä.

Välitysbotin kaavio.

Välitysbotin näytekoodi on hyvä aloituskohta, jos sinulla ei ole aiemmin luotua Azure Bot Service -bottia. Se kehitetään Microsoft Bot Framework -botin näytekoodista, joka voidaan kääntää ja ottaa käyttöön Azure Bot Servicessä. Näytekoodia on tarkoitus käyttää aloituskohtana, eikä sitä ole tarkoitettu käytettäväksi suoraan tuotannossa. Sinun on lisättävä koodia ja optimointia liiketoimintatarpeidesi mukaan.

Jos sinulla on jo Azure Bot Service -botti, sinun on lisättävä Copilot Studio -yhdistin ja koodia keskusteluistuntojen hallintaa varten. Tämän jälkeen voit ottaa botin käyttöön Azure Bot Servicessä ja muodostaa yhteyden kanaviin Azure-portaalin avulla.

Copilot Studion avustajan parametrien hakeminen

Jotta voit yhdistää Copilot Studion avulla luodun avustajan, sinun on noudettava avustajan nimi ja tunnuksen päätepiste.

  1. Kopioi avustajan nimi Copilot Studiosta.

    Hae botin nimi.

  2. Valitse siirtymisvalikon Asetukset-kohdasta Kanavat.

  3. Valitse kanava, johon haluat muodostaa yhteyden. Tässä skenaariossa esimerkkinä on Slack.

    Slack-kanava.

  4. Jos haluat kopioida ja tallentaa tunnuksen päätepisteen arvon, valitse Kopioi. Päätepisteen on yhdistettävä avustaja Azure Bot Service -kanavaan.

    Hae botin parametrit.

Keskusteluistuntojen hallinta Copilot Studion avustajalla

Azure Bot Service -kanavien ja Copilot Studion avustajan Direct Line -yhteyden välillä voi olla useita keskusteluja.

Azure Bot Service -botin on liitettävä ja välitettävä keskustelu Azure Bot Service -kanavasta Direct Line -keskusteluun Copilot Studion avustajan kanssa ja toisinpäin.

Näytekoodiesimerkki

Seuraavassa esimerkissä käytetään näytteitä välitysbotin näytekoodista.

  1. Aloita Copilot Studion avustajakeskustelu jokaisessa uudessa ulkoisessa Azure Bot Service -kanavan keskustelussa. Katso ohjeet uuden keskustelun aloittamisesta botin kanssa kohdista Hanki Direct Line -tunnus ja Käytä Direct Linea avustajan kanssa viestimiseen.

    using (var httpRequest = new HttpRequestMessage())
    {   
        httpRequest.Method = HttpMethod.Get;
        UriBuilder uriBuilder = new UriBuilder(TokenEndPoint);
        httpRequest.RequestUri = uriBuilder.Uri;
        using (var response = await s_httpClient.SendAsync(httpRequest))
        {
            var responseString = await response.Content.ReadAsStringAsync();
            string token = SafeJsonConvert.DeserializeObject<DirectLineToken>(responseString).Token;
        }
    }
    
    /// <summary>
    /// class for serialization/deserialization DirectLineToken
    /// </summary>
    public class DirectLineToken
    {
        public string Token { get; set; }
    }
    
     // Use the retrieved token to create a DirectLineClient instance
     using (var directLineClient = new DirectLineClient(token))
     {
         var conversation = await directLineClient.Conversations.StartConversationAsync();
         string conversationtId = conversation.ConversationId;
     }
    
  2. Jos haluat hallita useita istuntoja, sinun on ylläpidettävä ulkoisten Azure Bot Service -kanavakeskustelujen yhdistämismääritystä vastaaviin Copilot Studion avustajakeskusteluihin. Copilot Studion avustajakeskustelu voidaan tunnistaa ja yhdistää kahden ominaisuuden perusteella: ConversationtId ja Token.

    Dictionary<string, PowerVirtualAgentsConversation> ConversationRouter = new Dictionary<string, PowerVirtualAgentsConversation>();  
    

    Voit hallita keskustelin elinkaarta päivittämällä Direct Line -tunnukset tai poistamalla käyttämättömiä keskusteluja. Lisätietoja tunnuksen päivittämisestä: Päivitä Direct Line -tunnus. Copilot Studion avustajakeskustelu näiden tueksi määritetään seuraavasti:

    /// <summary>
    /// Data model class for Copilot Studio copilot conversation
    /// </summary>
    public class PowerVirtualAgentsConversation
    {
        public string ConversationtId { get; set; } // The Copilot Studio copilot conversation ID retrieved from step 1
    
        public string Token { get; set; } // The DirectLine token retrieved from step 1
    
        public string WaterMark { get; set; } // Identify turn in a conversation
    
        public DateTime LastTokenRefreshTime { get; set; } = DateTime.Now; // Timestamp of last token refresh
    
        public DateTime LastConversationUpdateTime { get; set; } = DateTime.Now; // Timestamp of last active user message sent to copilot
    }
    
  3. Kun uusi Copilot Studion avustajakeskustelu alkaa, lisää avainarvopari (external_Azure_Bot_Service_channel_conversationID, PowerVirtualAgentsConversation) yhdistämistaulukkoon.

    // After new Copilot Studio copilot conversation starts
    ConversationRouter[external_Azure_Bot_Service_channel_conversationID] = new PowerVirtualAgentsConversation()
      {
        Token = token,
        ConversationtId = conversationId,
        WaterMark = null,
        LastConversationUpdateTime = DateTime.Now,
        LastTokenRefreshTime = DateTime.Now,
      }; 
    
  4. Voit jatkaa olemassa olevaa keskustelua hakemalla uuden vastaanotetun ulkoisen Azure Bot Service -kanavaviestin, hakemalla olemassa olevan keskustelun yhdistämistaulukosta, välittämällä ulkoisen keskusteluaktiviteetin Copilot Studion avustajalle ja saamalla vastauksen.

    Seuraavassa esimerkissä esitetään keskustelun välittäminen ohittamalla ActivityHandler.OnMessageActivityAsync((ITurnContext<IMessageActivity>, CancellationToken) -menetelmä

    // Invoked when a message activity is received from the user
    // Send the user message to Copilot Studio copilot and get response
    protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
    {
        // Retrieve copilot conversation from mapping table
        // If not exists for the given external conversation ID, start a new Copilot Studio copilot conversation
        ConversationRouter.TryGetValue(externalCID, out PowerVirtualAgentsConversation currentConversation) ?
                currentConversation : /*await StartBotConversationAsync(externalCID)*/;
    
        // Create DirectLine client with the token associated to current conversation
        DirectLineClient client = new DirectLineClient(currentConversation.Token);
    
        // Send user message using directlineClient
        await client.Conversations.PostActivityAsync(currentConversation.ConversationtId, new DirectLineActivity()
        {
          Type = DirectLineActivityTypes.Message,
          From = new ChannelAccount { Id = turnContext.Activity.From.Id, Name = turnContext.Activity.From.Name },
          Text = turnContext.Activity.Text,
          TextFormat = turnContext.Activity.TextFormat,
          Locale = turnContext.Activity.Locale,
        });
    
        // Update LastConversationUpdateTime for session management
        currentConversation.LastConversationUpdateTime = DateTime.Now;
    }  
    
  5. Katso kohdasta Direct Linen käyttö avustajan kanssa viestimiseen, miten saat vastauksen Copilot Studion avustajalta. Kun Copilot Studion avustajan vastaus on vastaanotettu, katso kohdasta Avustajan keskustelutietojen jäsentäminen ohjeet vastauksen jäsentämiseen ulkoiseen Azure Bot Service -kanavan vastaukseen.

Esimerkki vastauksen jäsennyksestä välitysbotin näytekoodissa ResponseConverter.cs.

Käyttöönotto Azure Bot Servicessä

Kun Azure Bot Service -välitysbottisi on valmis, sinun on otettava botti käyttöön Azure Bot Servicesässi.

Azure Bot Service -kanavien määrittäminen

Voit määrittää kanavat, joihin haluat muodostaa yhteyden, kirjautumalla Azure-portaaliin ja valitsemalla Azure Bot Service -resurssiryhmän, jossa olet ottanut botin käyttöön. Tutustu kunkin kanavan yksilöllisiin ohjeisiin aiheessa Azure Bot Service -kanavat.