Sdílet prostřednictvím


Zveřejněte agent na Azure Bot Service kanálech

Svůj agent můžete propojit se stávajícími Azure Bot Service kanály což může být užitečné, pokud chcete svůj agent propojit s koncovými uživateli na Azure Bot Service kanálech.

Přidání agent do Azure Bot Service kanálů vyžaduje značné znalosti vývojářů. Tento článek je napsán pro IT administrátory nebo vývojáře, kteří mají zkušenosti s vývojem a psaním kódu.

Tip

Chcete-li přidat svůj Copilot Studio agent na svůj web, Facebook, nemusíte se řídit tímto dokumentem, popř Microsoft Teams. Pokud je vaším cílem připojit se k vlastní webové nebo nativní aplikaci, vaši vývojáři se mohou dozvědět více na stránce Publikování agent do mobilních nebo vlastních aplikací.

Důležité

Pokyny v této části vyžadují vývoj softwaru od vás nebo vašich vývojářů. Je určený pro zkušené IT profesionály, jako jsou IT administrátoři nebo vývojáři, kteří dobře rozumí vývojářským nástrojům, utilitám a IDE.

Předpoklady

Vzorky kódu

Fragmenty kódu použité v tomto dokumentu pocházejí z ukázkového kódu reléového robota.

Odkazy

Pokyny v tomto dokumentu odkazují na následující dokumenty:

Vytvořte nebo použijte existujícího bota Azure Bot Service

Potřebujete Azure Bot Service robot, který dokáže předávat konverzace mezi vašimi kanály Copilot Studio agent a Azure Bot Service.

Schéma reléového bota.

Ukázkový kód reléového bota je dobrým výchozím bodem, pokud nemáte existujícího bota Azure Bot Service. Je postaven z ukázkového kódu robota Microsoft Bot Framework, který lze zkompilovat a nasadit do služby Azure Bot Service. Ukázkový kód je určen k použití jako výchozí bod a není určen k přímému použití ve výrobě. Musíte přidat kód a optimalizaci, aby odpovídaly potřebám vaší firmy.

Pokud již máte bota Azure Bot Service, musíte přidat konektor Copilot Studio a kód pro správu konverzačních relací. Poté můžete robota nasadit do služby Azure Bot Service a připojit se ke kanálům pomocí Azure Portal.

Získejte parametry Copilot Studio agent

Chcete-li se připojit k agent, který jste vytvořili pomocí Copilot Studio, musíte získat jméno agent a token koncový bod.

  1. Zkopírujte své jméno agent do Copilot Studio.

    Získejte název robota.

  2. V navigační nabídce pod Nastavení vyberte Kanály.

  3. Vyberte kanál, ke kterému se chcete připojit. Tento scénář používá Slack jako příklad.

    Slack kanál.

  4. Chcete-li zkopírovat a uložit hodnotu Koncový bod tokenu, vyberte Kopírovat. K připojení agent ke kanálu Azure Bot Service potřebujete svůj koncový bod.

    Získání parametrů robota.

Spravujte konverzační relace se svým Copilot Studio agent

Mezi kanály Azure Bot Service a Direct Line spojení s vaším Copilot Studio agent může probíhat několik konverzací.

Váš Azure Bot Service robot potřebuje zmapovat a přenést konverzaci z kanálu Azure Bot Service do Direct Line konverzace s Copilot Studio agent a naopak.

Příklad ukázkového kódu

Následující příklad používá ukázky z ukázkového kódu reléového bota.

  1. Při každém zahájení nové konverzace na externím Azure Bot Service kanálu zahajte konverzaci Copilot Studio agent. Viz Získejte Direct Line token a Použijte Direct Line pro komunikaci s agent pokyny k zahájení nové konverzace pomocí robot.

    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. Chcete-li spravovat více relací, musíte udržovat mapování konverzací externích Azure Bot Service kanálu na odpovídající konverzace Copilot Studio agent. A Copilot Studio agent rozhovor lze identifikovat a propojit se dvěma vlastnostmi: ConversationtId a Token.

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

    Chcete-li spravovat životní cyklus konverzace, obnovte tokeny Direct Line nebo vyčistěte nečinné konverzace. Další informace o obnovení tokenu naleznete na Obnovit token Direct Line. A Copilot Studio agent konverzace na podporu obnovovacích Direct Line tokenů je definována takto:

    /// <summary>
    /// Data model class for Copilot Studio agent conversation
    /// </summary>
    public class PowerVirtualAgentsConversation
    {
        public string ConversationtId { get; set; } // The Copilot Studio agent 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 agent
    }
    
  3. Když začne nová konverzace Copilot Studio agent, přidejte do mapovací tabulky pár klíč-hodnota (external_Azure_Bot_Service_channel_conversationID, PowerVirtualAgentsConversation).

    // After new Copilot Studio agent conversation starts
    ConversationRouter[external_Azure_Bot_Service_channel_conversationID] = new PowerVirtualAgentsConversation()
      {
        Token = token,
        ConversationtId = conversationId,
        WaterMark = null,
        LastConversationUpdateTime = DateTime.Now,
        LastTokenRefreshTime = DateTime.Now,
      }; 
    
  4. Chcete-li pokračovat ve stávající konverzaci, po obdržení nové zprávy externího Azure Bot Service kanálu načtěte existující konverzaci z mapovací tabulky, předejte aktivitu externí konverzace svému Copilot Studio agent a získejte odpověď.

    Následující příklad ukazuje předávání konverzace přepsáním metody ActivityHandler.OnMessageActivityAsync((ITurnContext<IMessageActivity>, CancellationToken)

    // Invoked when a message activity is received from the user
    // Send the user message to Copilot Studio agent and get response
    protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
    {
        // Retrieve agent conversation from mapping table
        // If not exists for the given external conversation ID, start a new Copilot Studio agent 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. Jak získat agent's odpověď. Direct Line Copilot Studio Když je přijato Copilot Studio agent's odpověď, přečtěte si Analyzovat obsah konverzace z agent , kde najdete, jak analyzovat odpověď na externí kanál Azure Bot Service odpověď.

Příklad analýzy odezvy lze nalézt v ukázkovém kódu reléového bota ResponseConverter.cs.

Nasazení do služby Azure Bot Service

Až budete mít připraveného přenosového robota Azure Bot Service, musíte nasadit robota do služby Azure Bot Service.

Nastavení kanálů Azure Bot Service

Kanály, ke kterým se chcete připojit, můžete nastavit tak, že se přihlásíte k Azure Portal a vyberete skupinu prostředků Azure Bot Service, do které jste nasadili. Podívejte se na konkrétní pokyny pro každý kanál na Kanály Azure Bot Service.