इसके माध्यम से साझा किया गया


Azure बॉट सेवा चैनलों पर एक सह-पायलट प्रकाशित करें

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

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

टिप

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

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

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

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

कोड के नमूने

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

संदर्भ

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

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

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

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

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

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

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

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

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

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

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

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

    स्लैक चैनल।

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

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

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

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

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

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

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

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

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

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

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

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

आप Azure पोर्टल में लॉग इन करके और आपके द्वारा परिनियोजित Azure बॉट सेवा संसाधन समूह का चयन करके उन चैनलों को सेट कर सकते हैं जिनसे आप कनेक्ट होना चाहते हैं। Azure बॉट सेवा चैनल पर प्रत्येक चैनल के लिए विशिष्ट निर्देश देखें.