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


मोबाइल और कस्टम ऐप्स में सह-पायलट जोड़ें

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

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

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

आप अपने सह-पायलट को किसी कस्टम ऐप से कनेक्ट कर सकते हैं, ताकि ऐप के उपयोगकर्ता सीधे आपके ऐप से सह-पायलट के साथ बातचीत कर सकें।

अधिकांश मामलों में, आपका कस्टम ऐप एक मोबाइल-डिवाइस ऐप होता है जो या तो वेब-आधारित ऐप होता है या आपके व्यवसाय के लिए आवश्यक अन्य सेवाओं के लिए एक मूल ऐप या एडेप्टर होता है।

आपके मोबाइल अनुप्रयोग से जुड़ने के लिए अलग-अलग प्रक्रियाएँ हैं, जो इस बात पर निर्भर करती है कि आपका अनुप्रयोग वेब-आधारित अनुप्रयोग है या नेटिव अनुप्रयोग.

अपने सह-पायलट को वेब-आधारित ऐप से जोड़ना अपेक्षाकृत सरल है, क्योंकि इसमें आपके ऐप में कोड स्निपेट को कॉपी करना शामिल है। हालाँकि, वेब-आधारित ऐप्स और मूल या कस्टम ऐप्स दोनों को आपके ऐप में कोपायलट को पूरी तरह से एकीकृत करने के लिए अभी भी काफी डेवलपर विशेषज्ञता की आवश्यकता होती है। इस लेख में दोनों प्रक्रियाओं का वर्णन किया गया है.

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

  • .NET कोर SDK संस्करण 2.1.
  • नुगेट पैकेज Microsoft.Bot.Connector.DirectLine.
  • Copilot Studio में बनाया गया एक सह-पायलट जिसे आप अपने ऐप से कनेक्ट करना चाहते हैं।

अपने सह-पायलट को वेब-आधारित ऐप से कनेक्ट करें

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

  2. कॉन्फ़िगरेशन विंडो खोलने के लिए मोबाइल ऐप टाइल का चयन करें.

  3. वेब-आधारित ऐप्स अनुभाग के अंतर्गत कोड की प्रतिलिपि बनाएँ और इसे अपने ऐप डेवलपर्स को अपने वेब-आधारित ऐप में जोड़ने के लिए प्रदान करें।

    वेब-आधारित अनुप्रयोग में सह-पायलट जोड़ें।

अपने सह-पायलट को किसी मूल या कस्टम ऐप से कनेक्ट करें

टिप

जबकि यह अनुभाग बताता है कि मोबाइल अनुप्रयोग से कैसे कनेक्ट किया जाए, उसी प्रक्रिया को कस्टम या देशी अनुप्रयोग के लिए लागू किया जा सकता है, जैसे कि IoT (इंटरनेट ऑफ़ थिंग्स) अनुप्रयोग.

यदि आपका लक्ष्य Azure Bot Service चैनलों से कनेक्ट करना है, तो यहां दिए गए निर्देशों का पालन करने के अलावा, आपके डेवलपर्स अपने बॉट को Azure Bot Service चैनलों से कनेक्ट करें पर अधिक जानकारी प्राप्त कर सकते हैं।

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

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

कोड के नमूने

इस दस्तावेज़ में उपयोग किए गए कोड स्निपेट निम्न हैं:

संदर्भ

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

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

आपके द्वारा निर्मित सह-पायलट से कनेक्ट करने के लिए, आपको अपने सह-पायलट का नाम और टोकन एंडपॉइंट प्राप्त करना होगा ताकि उसकी पहचान की जा सके।

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

    सहपायलट का नाम प्राप्त करें.

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

  3. मोबाइल ऐप चुनें.

    मोबाइल अनुप्रयोग चैनल।

  4. टोकन एंडपॉइंट के आगे, कॉपी करें चुनें. आपको Get Direct Line token चरण के लिए इस एंडपॉइंट की आवश्यकता है।

    सह-पायलट पैरामीटर प्राप्त करें.

Direct Line टोकन प्राप्त करें

अपने सह-पायलट के साथ बातचीत शुरू करने के लिए, आपको एक टोकन की आवश्यकता होगी। Direct Line यह टोकन Copilot Studio स्क्रीन में दर्शाए गए एंडपॉइंट पर GET अनुरोध करके प्राप्त किया जा सकता है। इस टोकन का उपयोग डायरेक्टलाइन API के आगामी कॉल के लिए हेडर के रूप में किया जाना चाहिए।

उदाहरण:

GET <BOT TOKEN ENDPOINT>

यदि अनुरोध सफल होता है, तो अनुरोधित सह-पायलट के लिए एक टोकन, समाप्ति समय और एक वार्तालाप आईडी लौटा दी जाएगी। Direct Line उदाहरण:

{
    "token": "RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn",
    "expires_in": 3600,
    "conversationId": "abc123"
}

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

निम्न उदाहरण एक सह-पायलट के लिए एक टोकन प्राप्त करने के लिए Direct Line कनेक्टर नमूना कोड Copilot Studio से नमूनों का उपयोग करता है।

/// <summary>
/// Get directline token for connecting bot
/// </summary>
/// <returns>directline token as string</returns>
public async Task<DirectLineToken> GetTokenAsync(string url)
{
    try
    {
        return await _httpClient.GetFromJsonAsync<DirectLineToken>(url);
    }
    catch (HttpRequestException ex)
    {
        throw ex;
    }        
}
/// <summary>
/// class for serialization/deserialization DirectLineToken
/// </summary>
public class DirectLineToken
{
  public string Token { get; set; }
  public int Expires_in { get; set; }
  public string ConversationId { get; set; }
}

प्रतिक्रिया ऑब्जेक्ट उस GET अनुरोध के समान है जिसे हमने पहले देखा था।

{
  "token": "RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn",
  "expires_in": 3600,
  "conversationId": "abc123"
}

सह-पायलट से संवाद करने के लिए Direct Line का उपयोग करें

Direct Line टोकन प्राप्त करने के बाद, आप अपने Copilot Studio सह-पायलट के साथ Direct Lineबातचीत करने के लिए तैयार हैं। बातचीत शुरू करने और संदेश भेजने और प्राप्त करने के लिए, Bot Framework Direct Line API पर दिए गए निर्देशों का पालन करें।

निम्न उदाहरण वार्तालाप आरंभ करने और सह-पायलट से संदेश भेजने और प्राप्त करने के लिए कनेक्टर नमूना कोड से नमूनों का उपयोग करता है। Copilot Studio

  1. Direct Line टोकन के साथ DirectLineClient इंस्टैंस आरंभ करें और वार्तालाप प्रारंभ करें:

       // 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. एक बार शुरू होने के बाद, प्रत्येक वार्तालाप को और के संयोजन का उपयोग करके पहचाना और जोड़ा जा सकता है। tokenconversationtId मौजूदा वार्तालाप के लिए उपयोगकर्ता संदेश भेजें:

       // Use the retrieved token to create a DirectLineClient instance
       // Use the conversationId from above step
       // endConversationMessage is your predefined message indicating that user wants to quit the chat
       while (!string.Equals(inputMessage = /*Get_User_Input()*/, endConversationMessage, StringComparison.OrdinalIgnoreCase))
       {
           using (var directLineClient = new DirectLineClient(token))
           {
               // Send user message using directlineClient
               // Payload is a Microsoft.Bot.Connector.DirectLine.Activity
               await directLineClient.Conversations.PostActivityAsync(conversationtId, new Activity()
               {
                   Type = ActivityTypes.Message,
                   From = new ChannelAccount { Id = "userId", Name = "userName" },
                   Text = inputMessage,
                   TextFormat = "plain",
                   Locale = "en-Us",
               });
           }
       }
    
  3. उसी token and का उपयोग करके सह-पायलट की प्रतिक्रिया प्राप्त करें। conversationId प्राप्त प्रतिक्रिया गतिविधियों में उपयोगकर्ता और सह-पायलट दोनों के संदेश शामिल होते हैं। Direct Line आप केवल सह-पायलट का प्रतिक्रिया संदेश प्राप्त करने के लिए अपने सह-पायलट के नाम से प्रतिक्रिया गतिविधियों को फ़िल्टर कर सकते हैं।

       // Use the same token to create a directLineClient
       using (var directLineClient = new DirectLineClient(token))
       {
           // To get the first response set string watermark = null
           // More information about watermark is available at
           // https://learn.microsoft.com/azure/bot-service/rest-api/bot-framework-rest-direct-line-1-1-receive-messages?view=azure-bot-service-4.0
    
           // response from bot is of type Microsoft.Bot.Connector.DirectLine.ActivitySet
           ActivitySet response = await directLineClient.Conversations.GetActivitiesAsync(conversationtId, watermark);
    
           // update watermark from response
           watermark = response?.Watermark;
    
           // response contains set of Activity from both user and bot
           // To display bot response only, filter Activity.From.Name equals to your bot name
           List<Activity> botResponses = response?.Activities?.Where(x =>
                     x.Type == ActivityTypes.Message &&
                       string.Equals(x.From.Name, /*Bot_Name*/, StringComparison.Ordinal)).ToList();
    
           // Display botResponses
       }
    

Direct Line टोकन रीफ़्रेश करें

यदि आपके एप्लिकेशन में सह-पायलट के साथ लंबी बातचीत होती है, तो आपको टोकन को रीफ्रेश करने के लिए कोड जोड़ने की आवश्यकता हो सकती है। Direct Line टोकन की समयसीमा समाप्त हो जाती है, लेकिन इसे समाप्त होने से पहले ताज़ा किया जा सकता है; अधिक जानकारी के लिए Direct Line प्रमाणीकरण पर जाएँ।

निम्न उदाहरण मौजूदा वार्तालाप के लिए टोकन को ताज़ा करने के लिए कनेक्टर नमूना कोड से नमूने का उपयोग करता है: Copilot Studio

  // DirectLine provides a token refresh method
  // Requires the currentToken valid when refreshing
  string refreshToken = new DirectLineClient(currentToken).Tokens.RefreshToken().Token;
  // create a new directline client with refreshToken
  directLineClient = new DirectLineClient(refreshToken);
  // use new directLineClient to communicate to your bot

सह-पायलट से वार्तालाप पेलोड पार्स करें

सह-पायलट के साथ वार्तालाप शुरू करने के बाद, वार्तालाप JSON पेलोड मानक Microsoft Bot Framework Direct Line गतिविधि का उपयोग करता है। आप Bot Framework Direct Line API पर अधिक जानकारी प्राप्त कर सकते हैं।

हैंडऑफ़ गतिविधि संभालें

यदि आपके एप्लिकेशन को किसी लाइव एजेंट प्रदाता को सौंपने की आवश्यकता है, तो आपको हैंडऑफ गतिविधि को संभालना होगा। "एजेंट को स्थानांतरण" नोड पर पहुंचने पर हैंडऑफ गतिविधि भेजी जाती है। आप हैंडऑफ़ गतिविधि के पेलोड के बारे में अधिक जान सकते हैं।

ट्रिगर एक स्वागत योग्य संदेश है

यदि आप चाहते हैं कि जब कोई उपयोगकर्ता बातचीत शुरू करे तो आपका सह-पायलट स्वचालित रूप से ग्रीटिंग सिस्टम विषय भेजे, तो आप Type=event और Name=startConversation के साथ एक गतिविधि भेज सकते हैं।