मोबाइल या कस्टम ऐप पर सह-पायलट प्रकाशित करें
आप अपने सह-पायलट को किसी कस्टम ऐप से कनेक्ट कर सकते हैं, ताकि ऐप के उपयोगकर्ता सीधे आपके ऐप से सह-पायलट के साथ बातचीत कर सकें।
अधिकांश मामलों में, आपका कस्टम ऐप एक मोबाइल-डिवाइस ऐप होता है जो या तो वेब-आधारित ऐप होता है या आपके व्यवसाय के लिए आवश्यक अन्य सेवाओं के लिए एक मूल ऐप या एडेप्टर होता है।
आपके मोबाइल अनुप्रयोग से जुड़ने के लिए अलग-अलग प्रक्रियाएँ हैं, जो इस बात पर निर्भर करती है कि आपका अनुप्रयोग वेब-आधारित अनुप्रयोग है या नेटिव अनुप्रयोग.
अपने सह-पायलट को वेब-आधारित ऐप से जोड़ना अपेक्षाकृत सरल है, क्योंकि इसमें आपके ऐप में कोड स्निपेट को कॉपी करना शामिल है। हालाँकि, वेब-आधारित ऐप्स और मूल या कस्टम ऐप्स दोनों को आपके ऐप में कोपायलट को पूरी तरह से एकीकृत करने के लिए अभी भी काफी डेवलपर विशेषज्ञता की आवश्यकता होती है। इस लेख में दोनों प्रक्रियाओं का वर्णन किया गया है.
पूर्वावश्यकताएँ
- .NET कोर SDK संस्करण 2.1.
- नुगेट पैकेज Microsoft.Bot.Connector.DirectLine.
- Copilot Studio में बनाया गया एक सह-पायलट जिसे आप अपने ऐप से कनेक्ट करना चाहते हैं।
अपने सह-पायलट को वेब-आधारित ऐप से कनेक्ट करें
Copilot Studioमें, नेविगेशन मेनू में, चैनल चुनें.
कॉन्फ़िगरेशन विंडो खोलने के लिए मोबाइल ऐप टाइल का चयन करें.
वेब-आधारित ऐप्स अनुभाग के अंतर्गत कोड की प्रतिलिपि बनाएँ और इसे अपने ऐप डेवलपर्स को अपने वेब-आधारित ऐप में जोड़ने के लिए प्रदान करें।
अपने सह-पायलट को किसी मूल या कस्टम ऐप से कनेक्ट करें
टिप
जबकि यह अनुभाग बताता है कि मोबाइल अनुप्रयोग से कैसे कनेक्ट किया जाए, उसी प्रक्रिया को कस्टम या देशी अनुप्रयोग के लिए लागू किया जा सकता है, जैसे कि IoT (इंटरनेट ऑफ़ थिंग्स) अनुप्रयोग.
यदि आपका लक्ष्य Azure बॉट सेवा चैनलों से कनेक्ट करना है, तो यहां दिए गए निर्देशों का पालन करने के अलावा, आपके डेवलपर्स Azure बॉट सेवा चैनलों पर एक सह-पायलट प्रकाशित करें पर अधिक जानकारी प्राप्त कर सकते हैं।
महत्त्वपूर्ण
इस खंड में दिये गए निर्देशों को आपके या आपके डेवलपर्स से सॉफ़्टवेयर विकसन की आवश्यकता होती है. यह अनुभवी IT पेशेवरों के लिए है, जैसे कि IT व्यवस्थापक या डेवलपर जिनके पास डेवलपर टूल, उपयोगिता और IDEs की ठोस समझ है.
कोड के नमूने
इस दस्तावेज़ में उपयोग किए गए कोड स्निपेट निम्न हैं:
संदर्भ
इस दस्तावेज़ में दिए गए निर्देश निम्नलिखित स्रोत सामग्री का संदर्भ देते हैं:
- Bot Framework Direct Line एपीआई
- Direct Line प्रमाणीकरण
- हैंडऑफ़ पर संदर्भ चर उपलब्ध हैं
- Microsoft Bot Framework गतिविधि
अपने Copilot Studio सह-पायलट पैरामीटर पुनः प्राप्त करें
आपके द्वारा निर्मित सह-पायलट से कनेक्ट करने के लिए, आपको अपने सह-पायलट का नाम और टोकन एंडपॉइंट प्राप्त करना होगा ताकि उसकी पहचान की जा सके।
Copilot Studioमें, अपने सह-पायलट के अवलोकन पृष्ठ पर जाएँ, और अपने सह-पायलट का नाम कॉपी करें।
चैनल>मोबाइल ऐप चुनें.
मोबाइल ऐप पृष्ठ पर, टोकन एंडपॉइंट के आगे, कॉपी करें चुनें. आपको Get Direct Line टोकन चरण के लिए इस एंडपॉइंट की आवश्यकता है।
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
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; }
एक बार शुरू होने के बाद, प्रत्येक वार्तालाप को और के संयोजन का उपयोग करके पहचाना और जोड़ा जा सकता है।
token
conversationtId
मौजूदा वार्तालाप के लिए उपयोगकर्ता संदेश भेजें:// 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", }); } }
समान
token
और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
के साथ एक गतिविधि भेज सकते हैं।