Aracılığıyla paylaş


Azure Bot Hizmeti kanallarına Copilot Studio yardımcı pilot ekleme

Önemli

Power Virtual Agents yetenekleri ve özellikleri, Microsoft Copilot genelinde üretken yapay zekaya ve gelişmiş tümleştirmelere yapılan önemli yatırımların ardından artık Microsoft Copilot Studio'nun parçasıdır.

Bazı makalelerde ve ekran görüntülerinde, belgeler ve eğitim içeriği güncelleştirilirken Power Virtual Agents'a başvurulabilir.

Yardımcı pilotunuzu mevcut Azure Bot Hizmeti kanallarına bağlayabilirsiniz. Yardımcı pilotunuzu Azure Bot Hizmeti kanallarındaki son kullanıcılara bağlamak istediğinizde bu yararlıdır.

Yardımcı pilotunuzu Azure Bot Hizmeti kanallarına ekleme ciddi bir geliştirici uzmanlığı gerektirir. Bu makale, kod geliştirme ve yazma deneyimi olan BT yöneticileri veya geliştiricileri için yazılmıştır.

İpucu

Copilot Studio yardımcı pilotunuzu web sitenize, Facebook ya da Microsoft Teams'e eklemek için bu belgeyi takip etmeniz gerekmez. Amacınız özel web tabanlı veya yerel bir uygulamaya bağlanmaksa geliştiricileriniz Mobil ve özel uygulamalara yardımcı pilot ekleme bağlantısında daha fazla bilgi edinebilir.

Önemli

Bu bölümdeki yönergeler geliştiricilerinizin veya sizin yazılım geliştirmenizi gerektirir. Bu; geliştirici araçları, yardımcı programlar ve IDE'ler ile ilgili üst düzey bilgiye sahip BT yöneticileri veya geliştiriciler gibi deneyimli BT uzmanlarına yöneliktir.

Ön koşullar

Kod örnekleri

Bu belgede kullanılan kod parçacıkları geçiş botu örnek kodu'ndandır.

Başvurular

Bu belgedeki yönergeler aşağıdakilere başvurur:

Azure Bot Hizmeti botu oluşturma veya var olanı kullanma

Copilot Studio yardımcı pilotunuz ve Azure Bot Hizmeti kanallarınız arasında konuşmaları aktarabilen bir Azure Bot Hizmeti botu gerekir.

Geçiş botu diyagramı.

Halihazırda bir Azure Bot Hizmeti botunuz yoksa geçiş botu örnek kodu iyi bir başlangıç noktasıdır. Azure Bot Hizmeti'ne derlenebilen ve dağıtılabilen Microsoft Bot Framework botu örnek kodu kullanılarak oluşturulmuştur. Örnek kodu bir başlangıç noktası olarak kullanılmalıdır ve doğrudan üretimde kullanılması amaçlanmamıştır. İş gereksinimlerinizle eşleşmesi için kod eklemeniz ve optimizasyon gerekir.

Zaten bir Azure Bot Hizmeti botunuz varsa konuşma oturumlarını yönetmek için bir Copilot Studio bağlayıcısı ve kodu eklemeniz gerekir. Ardından botu, Azure Bot Hizmeti'ne dağıtabilir ve Azure portalıyla kanallara bağlayabilirsiniz.

Copilot Studio yardımcı pilot parametrelerinizi alma

Copilot Studio ile oluşturduğunuz yardımcı pilota bağlanmak için yardımcı pilotunuzun adını ve belirtecin uç noktasını geri almanız gerekir.

  1. Copilot Studio uygulamasına yardımcı pilotunuzun adını kopyalayın.

    Bot adını alma.

  2. Gezinti menüsünde, Ayarlar altında Kanallar'ı seçin.

  3. Bağlanmak istediğiniz kanalı seçin. Bu senaryo, örnek olarak Slack uygulamasını kullanır.

    Slack kanalı.

  4. Belirteç Uç Noktası değerini kopyalayıp kaydetmek için Kopyala'yı seçin. Yardımcı pilotunuzu Azure Bot Hizmeti kanalına bağlamak için uç nokta ihtiyacınız olacaktır.

    Bot parametrelerini alma.

Copilot Studio yardımcı pilotunuzla konuşma oturumlarını yönetme

Copilot Studio yardımcı pilotunuzla Azure Bot Hizmeti kanalları ve Direct Line bağlantısı arasında birden fazla konuşma olabilir.

Azure Bot Hizmeti botunuzun Azure Bot Hizmeti kanalından konuşmayı Direct Line konuşmasına Copilot Studio yardımcı pilotu vasıtasıyla eşleyip aktarması gerekir ve bunun tersi de geçerlidir.

Örnek kod örneği

Aşağıdaki örnekte geçiş botu örnek kodu'ndan örnekler kullanılmıştır.

  1. Her yeni harici Azure Bot Hizmeti kanal konuşması başlangıcında bir Copilot Studio yardımcı pilotu konuşması başlatın. Yardımcı pilot ile yeni bir konuşma başlatma yönergeleri için Direct Line belirtecini alma ve Yardımcı pilot ile iletişim kurmak için Direct Line kullanma bölümüne bakın.

    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. Birden çok oturumu yönetmek için harici Azure Bot Hizmeti kanal konuşmalarının, karşılık gelen Copilot Studio yardımcı pilotu konuşmalarına eşlenmesi gerekir. Copilot Studio yardımcı pilotu konuşması iki özellikle tanımlanabilir ve ilişkilendirilebilir: ConversationtId ve Token.

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

    Konuşma yaşam döngüsünü yönetmek için Direct Line belirteçlerini yenileyin veya boşta bekleyen konuşmaları temizleyin. Direct Line belirtecini yenileme bölümünde belirteç yenileme işlemi hakkında daha fazla bilgi edinin. Bunları desteklemek için bir Copilot Studio yardımcı pilotu konuşması şu şekilde tanımlanır:

    /// <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. Yeni bir Copilot Studio yardımcı pilotu konuşması başlatıldığında eşleme tablosuna bir anahtar değer çifti (external_Azure_Bot_Service_channel_conversationID, PowerVirtualAgentsConversation) ekleyin.

    // 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. Var olan bir konuşmada devam etmek için, alınan yeni harici bir Azure Bot Hizmeti kanal iletisinde, var olan konuşmayı eşleme tablosundan alın, dış konuşma etkinliğini Copilot Studio yardımcı pilotunuza aktarın ve bir yanıt alın.

    Aşağıdaki örnekte, ActivityHandler.OnMessageActivityAsync((ITurnContext<IMessageActivity>, CancellationToken) yöntemi geçersiz kılınarak konuşma geçişi gösterilmektedir

    // 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. Copilot Studio yardımcı pilotunun yanıtlarını alma hakkında bilgi için Yardımcı pilot ile iletişime geçmek için Direct Line kullanma bölümüne bakın. Copilot Studio yardımcı pilotun yanıtı alındığında, yanıtın dış Azure Bot Hizmeti kanal yanıtına nasıl ayrıştırılacağını öğrenmek için Yardımcı pilottan konuşma yükünü ayrıştırma kısmına başvurun.

Yanıt ayrıştırma örneği geçiş botu örnek kodu ResponseConverter.cs öğesinde bulunabilir.

Azure Bot Hizmeti'ne dağıtma

Azure Bot Hizmeti geçiş botunuzu hazırladıktan sonra botu Azure Bot Hizmeti'nize dağıtmanız gerekir.

Azure Bot Hizmeti kanallarını ayarlama

Bağlanmak istediğiniz kanalları Azure portalında oturum açıp dağıttığınız Azure Bot Hizmeti kaynak grubunu seçerek ayarlayabilirsiniz. Azure Bot Hizmeti Kanalları'nda her kanal için özel yönergeleri görüntüleyin.