แชร์ผ่าน


เพิ่ม Copilot ของ Copilot Studio ในช่องทางบริการ Azure Bot

สำคัญ

ความสามารถและคุณลักษณะต่างๆ ของ Power Virtual Agents เป็น ส่วนหนึ่งของ Microsoft Copilot Studio แล้ว ภายหลังการลงทุนที่สำคัญใน Generative AI และการรวมที่ได้รับการปรับปรุงใน Microsoft Copilot

บทความและภาพหน้าจอบางรายการอาจอ้างถึง Power Virtual Agents ในขณะที่เราอัปเดตคู่มือและเนื้อหาการฝึกอบรม

คุณสามารถเชื่อมต่อ Copilot ของคุณกับ ช่องทางบริการ Azure Bot ที่มีอยู่ สิ่งนี้จะมีประโยชน์หากคุณต้องการเชื่อมต่อ Copilot ของคุณกับผู้ใช้ปลายทางในช่องทางบริการ Azure Bot

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

เคล็ดลับ

คุณไม่จำเป็นต้องทำตามเอกสารนี้เพื่อเพิ่ม Copilot ของ Copilot Studio ไปยัง เว็บไซต์ Facebook หรือ Microsoft Teams ของคุณ หากเป้าหมายของคุณคือการเชื่อมต่อกับแอปบนเว็บที่กำหนดเองหรือแอปดั้งเดิม นักพัฒนาของคุณสามารถเรียนรู้เพิ่มเติมได้ที่ เพิ่ม Copilot ในแอปบนมือถือและแอปแบบกำหนดเอง

สำคัญ

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

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

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

ข้อมูลโค้ดที่ใช้ในเอกสารนี้มาจาก โค้ดตัวอย่างบอทรีเลย์

การอ้างอิง

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

สร้างหรือใช้บอทบริการ Azure Bot ที่มีอยู่

คุณต้องมีบอทบริการ Azure Bot ที่สามารถถ่ายทอดการสนทนาระหว่าง Copilot ของ Copilot Studio ช่องทางบริการ Azure Bot ของคุณ

แผนภาพบอทรีเลย์

โค้ดตัวอย่างบอทรีเลย์ เป็นจุดเริ่มต้นที่ดีหากคุณไม่มีบอทบริการ Azure Bot อยู่แล้ว ซึ่งถูกสร้างขึ้นจากบอท Microsoft Bot Framework ของ โค้ดตัวอย่าง ที่สามารถรวบรวมและปรับใช้กับบริการ Azure Bot โค้ดตัวอย่างมีขึ้นเพื่อใช้เป็นจุดเริ่มต้นและไม่ได้มีไว้เพื่อใช้ในการผลิตโดยตรง คุณจะต้องเพิ่มโค้ดและการเพิ่มประสิทธิภาพเพื่อให้ตรงกับความต้องการทางธุรกิจของคุณ

หากคุณมีบอทบริการ Azure Bot อยู่แล้ว คุณต้องเพิ่มตัวเชื่อมต่อและโค้ด Copilot Studio เพื่อจัดการเซสชันการสนทนา จากนั้นคุณสามารถปรับใช้บอทกับบริการ Azure Bot และเชื่อมต่อกับช่องทางด้วยพอร์ทัล Azure

รับพารามิเตอร์ Copilot ของ Copilot Studio ของคุณ

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

  1. คัดลอกชื่อ Copilotของคุณใน Copilot Studio

    รับชื่อบอท

  2. ในเมนูนำทาง ภายใต้ การตั้งค่า เลือก ช่องทาง

  3. เลือกช่องทางที่คุณต้องการเชื่อมต่อ สถานการณ์นี้ใช้ Slack เป็นตัวอย่าง

    ช่องทาง Slack

  4. หากต้องการคัดลอกและบันทึกค่า ตำแหน่งข้อมูลโทเค็น ให้เลือก คัดลอก คุณจะต้องใช้ตำแหน่งข้อมูลเพื่อเชื่อมต่อ Copilot ของคุณกับช่องทางบริการ Azure Bot

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

จัดการเซสชันการสนทนาด้วย Copilot ของ Copilot Studio

อาจมีการสนทนาหลายรายการระหว่างช่องทางบริการ Azure Bot และการเชื่อมต่อ Direct Line กับ Copilot ของ Copilot Studio

บอทบริการ Azure Bot ของคุณจะต้องแมปและถ่ายทอดการสนทนาจากช่องทางบริการ Azure Bot ไปยังการสนทนา Direct Line กับ Copilot ของ Copilot Studio และในทางกลับกัน

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

ตัวอย่างต่อไปนี้ใช้ตัวอย่างจาก โค้ดตัวอย่างบอทรีเลย์

  1. ในการเริ่มการสนทนาช่องทางบริการ Azure Bot ภายนอกใหม่ทุกครั้ง ให้เริ่มต้นการสนทนากับ Copilot ของ Copilot Studio ดูที่ รับโทเค็น Direct Line และ ใช้ Direct Line เพื่อสื่อสารกับ Copilot สำหรับคำแนะนำในการเริ่มการสนทนาใหม่กับบอท

    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 ภายนอกให้สอดคล้องกันกับการสนทนากับ Copilot ของ Copilot Studio การสนทนากับ Copilot ของ Copilot Studio สามารถระบุและเชื่อมต่อกับคุณสมบัติสองประการ: ConversationtId และ Token

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

    ในการจัดการวงจรการสนทนา ให้รีเฟรชโทเค็น Direct Line หรือล้างการสนทนาที่ไม่ได้ใช้งาน เรียนรู้เพิ่มเติมเกี่ยวกับการรีเฟรชโทเค็นที่ รีเฟรชโทเค็น Direct Line การสนทนากับ Copilot ของ 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 ของ 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 ภายนอกใหม่ ให้ดึงการสนทนาที่มีอยู่จากตารางการแมป ถ่ายทอดกิจกรรมการสนทนาภายนอกไปยัง Copilot ของ 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 สำหรับวิธีรับการตอบของ Copilot ของ Copilot Studio เมื่อได้รับการตอบสนองของ Copilot ของ Copilot Studio อ้างอิงถึง แยกวิเคราะห์ส่วนข้อมูลการสนทนาจาก Copilot ของ สำหรับวิธีการแยกวิเคราะห์การตอบสนองต่อการตอบกลับช่องทางบริการ Azure Bot ภายนอก

ตัวอย่างของการแยกวิเคราะห์คำตอบสามารถพบได้ใน โค้ดตัวอย่างบอทรีเลย์ ResponseConverter.cs.

ปรับใช้กับบริการ Azure Bot

หลังจากที่คุณเตรียมบอทรีเลย์บริการ Azure Bot แล้ว คุณต้อง ปรับใช้บอทกับบริการ Azure Bot ของคุณ

ตั้งค่าช่องทางบริการ Azure Bot

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