แชร์ผ่าน


เผยแพร่ ตัวแทน ไปยังแอปมือถือหรือแอปที่กำหนดเอง

คุณสามารถเชื่อมต่อ ตัวแทน ของคุณกับแอปที่กำหนดเองได้เพื่อให้ผู้ใช้แอปสามารถโต้ตอบกับ ตัวแทน ได้โดยตรงจากภายในแอปของคุณ

ในกรณีส่วนใหญ่ แอปที่กำหนดเองของคุณเป็นแอปบนอุปกรณ์เคลื่อนที่ที่เป็นทั้งแอปบนเว็บหรือแอปดั้งเดิมหรืออะแดปเตอร์สำหรับบริการอื่น ๆ ที่ธุรกิจของคุณต้องการ

มีขั้นตอนต่าง ๆ ในการเชื่อมต่อกับแอปบนมือถือของคุณ ขึ้นอยู่กับว่าแอปของคุณเป็นแอปที่ทำงานบนเว็บหรือแอปดั้งเดิม

การเชื่อมต่อ ตัวแทน ของคุณกับแอปบนเว็บเป็นเรื่องที่ค่อนข้างตรงไปตรงมา เนื่องจากเกี่ยวข้องกับการคัดลอก ส่วนย่อยของโค้ด ลงในแอปของคุณ อย่างไรก็ตาม ทั้งแอปที่ใช้เว็บและแอปเนทีฟหรือแบบกำหนดเองยังคงต้องใช้ความเชี่ยวชาญของนักพัฒนาอย่างมากเพื่อรวม ตัวแทน เข้ากับแอปของคุณอย่างสมบูรณ์ ทั้งสองกระบวนงานจะอธิบายในบทความนี้

ข้อกำหนดเบื้องต้น

  • .NET Core SDK รุ่น 2.1
  • แพ็คเกจ NuGet Microsoft.Bot.Connector.DirectLine
  • ตัวแทน ที่ถูกสร้างใน Copilot Studio ที่คุณต้องการเชื่อมต่อกับแอปของคุณ

เชื่อมต่อ ตัวแทน ของคุณกับแอปบนเว็บ

  1. ใน Copilot Studio ในเมนูนำทาง ให้เลือก ช่องทาง

  2. เลือกไทล์ แอปบนมือถือ เพื่อเปิดหน้าต่างการกำหนดค่า

  3. คัดลอกรหัสภายใต้ส่ว แอปบนเว็บ และมอบให้กับนักพัฒนาแอปของคุณเพื่อเพิ่มลงในแอปบนเว็บของคุณ

    เพิ่ม ตัวแทน ลงในแอปพลิเคชันที่ใช้บนเว็บ

เชื่อมต่อ ตัวแทน ของคุณกับแอปเนทีฟหรือแบบกำหนดเอง

เคล็ดลับ

แม้ว่าส่วนนี้จะอธิบายถึงวิธีการเชื่อมต่อกับแอปบนมือถือ แต่กระบวนการเดียวกันนี้สามารถนำไปใช้กับแอปแบบกำหนดเองหรือแบบดั้งเดิม เช่น แอป IoT (Internet of Things)

หากเป้าหมายของคุณคือการเชื่อมต่อกับช่องบริการ Azure บอท นอกเหนือจากการทำตามคำแนะนำที่นี่แล้ว นักพัฒนาของคุณยังสามารถเรียนรู้เพิ่มเติมได้ที่ เผยแพร่ ตัวแทน ไปยังช่องบริการ Azure บอท

สำคัญ

คำแนะนำในส่วนนี้ต้องการการพัฒนาซอฟต์แวร์จากคุณหรือนักพัฒนาของคุณ ซึ่งมีไว้สำหรับผู้เชี่ยวชาญด้านไอทีที่มีประสบการณ์ เช่น ผู้ดูแลระบบไอทีหรือนักพัฒนาที่มีความเข้าใจอย่างถ่องแท้เกี่ยวกับเครื่องมือสำหรับนักพัฒนา ระบบสาธารณูปโภค และ IDE

ตัวอย่างโค้ด

ส่วนย่อยของโค้ดที่ใช้ในเอกสารนี้มาจาก:

การอ้างอิง

คำแนะนำในเอกสารนี้อ้างอิงเอกสารต้นทางต่อไปนี้:

ดึงข้อมูลพารามิเตอร์ ตัวแทน ของคุณ Copilot Studio

หากต้องการเชื่อมต่อกับ ตัวแทน ที่คุณสร้างขึ้น คุณต้องดึงชื่อ ตัวแทน และโทเค็น ตำแหน่งข้อมูล ของ ตำแหน่งข้อมูล เพื่อระบุตัวตน

  1. ใน Copilot Studio ไปที่หน้า ภาพรวม ของ ตัวแทน ของคุณ และคัดลอกชื่อ ตัวแทน ของคุณ

  2. เลือก ช่องทาง>แอปสำหรับอุปกรณ์เคลื่อนที่

  3. บนหน้า แอปสำหรับอุปกรณ์เคลื่อนที่ ถัดจาก ตำแหน่งข้อมูลโทเค็น ให้เลือก คัดลอก คุณต้องการตำแหน่งข้อมูลนี้สำหรับขั้นตอน รับโทเค็น Direct Line

    รับพารามิเตอร์ ตัวแทน

รับโทเค็น Direct Line

หากต้องการเริ่มการสนทนาด้วย ตัวแทน คุณต้องมี Direct Line โทเค็น โทเค็นนี้สามารถขอรับได้โดยส่งคำขอ GET ไปที่ตำแหน่งข้อมูลที่ระบุภายในหน้าจอ Copilot Studio โทเค็นนี้จะต้องใช้เป็นส่วนหัวสำหรับการเรียก Directline API ในภายหลัง

ตัวอย่าง:

GET <BOT TOKEN ENDPOINT>

หากคำขอประสบความสำเร็จ ระบบจะส่งคืนโทเค็น เวลาหมดอายุ และ conversationId สำหรับ ตัวแทน ที่ร้องขอ 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. เริ่มต้นอินสแตนซ์ DirectLineClient ด้วยโทเค็น Direct Line และเริ่มการสนทนา:

       // 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. เมื่อเริ่มต้นแล้ว สามารถระบุและเชื่อมต่อการสนทนาแต่ละรายการโดยใช้การรวมกันของ 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",
               });
           }
       }
    
  3. ดึงข้อมูล ตัวแทน's การตอบ โดยใช้ token และ conversationId เดียวกัน กิจกรรมการตอบ ที่เรียกค้นมาประกอบไปด้วยข้อความของผู้ใช้และ ตัวแทน Direct Line คุณสามารถกรองกิจกรรม การตอบ ตามชื่อ ตัวแทน ของคุณเพื่อรับข้อความ ตัวแทน's การตอบ เท่านั้น

       // 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 ได้