Share via


Azure Bot Service चैनल में एक Copilot Studio सह-पायलट जोड़ें

महत्त्वपूर्ण

Power Virtual Agents जनरेटिव एआई और उन्नत एकीकरण में महत्वपूर्ण निवेश के बाद, अब इसकी क्षमताएं और विशेषताएं इसका हिस्सा बन गई हैं। Microsoft Copilot Studio Microsoft Copilot

कुछ लेख और स्क्रीनशॉट इस बात का संदर्भ दे सकते हैं कि Power Virtual Agents जब हम दस्तावेज़ और प्रशिक्षण सामग्री को अपडेट करते हैं।

आप अपने सह-पायलट को मौजूदा Azure Bot Service चैनलों से कनेक्ट कर सकते हैं . यदि आप अपने सह-पायलट को Azure बॉट सेवा चैनलों पर अंतिम उपयोगकर्ताओं से कनेक्ट करना चाहते हैं तो यह उपयोगी हो सकता है।

अपने सह-पायलट को Azure Bot Service चैनलों में जोड़ने के लिए काफी डेवलपर विशेषज्ञता की आवश्यकता होती है। यह लेख उन आईटी प्रशासकों या डेवलपर्स के लिए लिखा गया है, जिन्हें कोड विकसित करने और लिखने का अनुभव है।

टिप

आपको अपने Copilot Studio सह-पायलट को अपनी वेबसाइट, Facebook, या में जोड़ने के लिए इस दस्तावेज़ का पालन करने की आवश्यकता नहीं है। Microsoft Teams यदि आपका लक्ष्य किसी कस्टम वेब-आधारित या मूल ऐप से कनेक्ट करना है, तो आपके डेवलपर्स मोबाइल और कस्टम ऐप में कोपायलट जोड़ें पर अधिक जानकारी प्राप्त कर सकते हैं।

महत्त्वपूर्ण

इस खंड में दिये गए निर्देशों को आपके या आपके डेवलपर्स से सॉफ़्टवेयर विकसन की आवश्यकता होती है. यह अनुभवी IT पेशेवरों के लिए है, जैसे कि IT व्यवस्थापक या डेवलपर जिनके पास डेवलपर टूल, उपयोगिता और IDEs की ठोस समझ है.

पूर्वावश्यकताएँ

कोड के नमूने

इस दस्तावेज़ में उपयोग किए गए कोड स्निपेट रिले बॉट नमूना कोड से हैं।

संदर्भ

इस दस्तावेज़ में दिए गए निर्देश निम्नलिखित हैं:

एक मौजूदा Azure बॉट सेवा बॉट बनाएं या उपयोग करें

आपको एक Azure Bot Service बॉट की आवश्यकता है जो आपके Copilot Studio सह-पायलट और Azure Bot Service चैनलों के बीच वार्तालाप को रिले कर सके।

रिले बोट आरेख।

यदि आपके पास कोई मौजूदा Azure Bot Service बॉट नहीं है, तो रिले बॉट नमूना कोड एक अच्छा प्रारंभिक बिंदु है. इसे Microsoft Bot Framework बॉट नमूना कोड से बनाया गया है जिसे संकलित किया जा सकता है और Azure बॉट सेवा में तैनात किया जा सकता है। नमूना कोड का उपयोग एक प्रारंभिक बिंदु के रूप में किया जाना है और सीधे उत्पादन में उपयोग के लिए लक्षित नहीं है. आपको अपनी व्यावसायिक आवश्यकताओं से मिलान करने के लिए कोड और अनुकूलन को जोड़ना होगा.

यदि आपके पास पहले से ही Azure Bot Service बॉट है, तो आपको वार्तालाप सत्रों को प्रबंधित करने के लिए कनेक्टर और कोड जोड़ना होगा. Copilot Studio फिर आप Azure बोट सेवा में बॉट को परिनियोजित कर सकते हैं और Azure पोर्टल के साथ चैनलों से जुड़ सकते हैं.

अपने Copilot Studio सह-पायलट पैरामीटर प्राप्त करें

Copilot Studioके साथ आपके द्वारा बनाए गए सह-पायलट से कनेक्ट करने के लिए, आपको अपने सह-पायलट का नाम और टोकन एंडपॉइंट प्राप्त करना होगा।

  1. अपने सह-पायलट का नाम Copilot Studio में कॉपी करें.

    बोट नाम प्राप्त करें।

  2. नेविगेशन मेनू में सेटिंग्स के अंतर्गत, चैनल का चयन करें.

  3. उस चैनल का चयन करें जिसे आप कनेक्ट करना चाहते हैं. इस परिदृश्य में स्लैक को उदाहरण के रूप में उपयोग किया गया है।

    स्लैक चैनल।

  4. टोकन एंडपॉइंट मान की प्रतिलिपि बनाने और सहेजने के लिए, प्रतिलिपि बनाएँ का चयन करें. आपको अपने सह-पायलट को Azure Bot Service चैनल से कनेक्ट करने के लिए अपने एंडपॉइंट की आवश्यकता होगी।

    बॉट पैरामीटर प्राप्त करें।

अपने Copilot Studio सह-पायलट के साथ वार्तालाप सत्र प्रबंधित करें

Azure Bot Service चैनल और आपके सह-पायलट के साथ कनेक्शन के बीच कई वार्तालाप हो सकते हैं. Direct Line Copilot Studio

आपके Azure Bot Service बॉट को Azure Bot Service चैनल से सह-पायलट के साथ वार्तालाप और इसके विपरीत वार्तालाप को मैप और रिले करने की आवश्यकता होगी। Direct Line Copilot Studio

नमूना कोड उदाहरण

निम्न उदाहरण रिले बॉट नमूना कोड से नमूनों का उपयोग करता है।

  1. प्रत्येक नए बाहरी Azure Bot Service चैनल वार्तालाप प्रारंभ होने पर, एक Copilot Studio copilot वार्तालाप प्रारंभ करें. बॉट के साथ एक नई बातचीत शुरू करने के निर्देशों के लिए टोकन प्राप्त करें Direct Line और सह-पायलट के साथ संवाद करने के लिए उपयोग करें का संदर्भ लें। Direct Line

    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. एकाधिक सत्रों को प्रबंधित करने के लिए, आपको बाह्य Azure Bot Service चैनल वार्तालापों की संगत Copilot Studio copilot वार्तालापों के साथ मैपिंग बनाए रखने की आवश्यकता है. एक सह-पायलट वार्तालाप को दो गुणों से पहचाना और उनसे जोड़ा जा सकता है: और। Copilot Studio ConversationtIdToken

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

    वार्तालाप जीवनचक्र को प्रबंधित करने के लिए, टोकन को ताज़ा करें या निष्क्रिय वार्तालापों को साफ़ करें। Direct Line टोकन रिफ्रेश के बारे में अधिक जानकारी के लिए रिफ्रेश Direct Line टोकन पर जाएँ। उनका समर्थन करने के लिए एक सह-पायलट वार्तालाप निम्नानुसार परिभाषित किया गया है: Copilot Studio

    /// <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. जब कोई नया Copilot Studio कोपायलट वार्तालाप प्रारंभ होता है, तो मैपिंग तालिका में एक कुंजी मान युग्म (external_Azure_Bot_Service_channel_conversationID, PowerVirtualAgentsConversation) जोड़ें.

    // 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. किसी मौजूदा वार्तालाप को जारी रखने के लिए, एक नया बाहरी Azure Bot Service चैनल संदेश प्राप्त होने पर, मैपिंग तालिका से मौजूदा वार्तालाप को पुनर्प्राप्त करें, बाहरी वार्तालाप गतिविधि को अपने सह-पायलट तक रिले करें, और प्रतिक्रिया प्राप्त करें. Copilot Studio

    निम्न नमूना ActivityHandler.OnMessageActivityAsync((ITurnContext<IMessageActivity>, CancellationToken) विधि को ओवरराइड करके वार्तालाप को रिले करना दिखाता है

    // 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. सह-पायलट की प्रतिक्रिया कैसे प्राप्त करें, इसके लिए सह-पायलट के साथ संवाद करने के लिए उपयोग का संदर्भ लें। Direct Line Copilot Studio जब Copilot Studio सह-पायलट की प्रतिक्रिया प्राप्त हो जाती है, तो बाहरी Azure बॉट सेवा चैनल प्रतिक्रिया के लिए प्रतिक्रिया को पार्स करने के तरीके के लिए सह-पायलट से वार्तालाप पेलोड पार्स करें देखें.

प्रतिक्रिया पार्सिंग का एक उदाहरण रिले बॉट नमूना कोड ResponseConverter.cs में पाया जा सकता है।

Azure बॉट सेवा में तैनात करें

जब आपका Azure Bot Service रिले बॉट तैयार हो जाए, तो आपको बॉट को अपनी Azure Bot Service पर तैनात करना होगा। ...

Azure बोट सेवा चैनल स्थापित करें

आप उन चैनलों को सेट कर सकते हैं जिन्हें आप Azure पोर्टल में साइन इन करके कनेक्ट करना चाहते हैं और Azure बोट सेवा रिसोर्स ग्रुप जिसे आपने परिनियोजित किया है, उसका चयन करें. Azure Bot Service Channels पर प्रत्येक चैनल के लिए विशिष्ट निर्देश देखें.