เพิ่ม 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 ที่ใช้ v4 SDK
- .NET Core SDK รุ่น 2.1
- แพ็คเกจ NuGet Microsoft.Bot.Connector.DirectLine
- Copilot ที่สร้างขึ้นใน Copilot Studio ที่คุณต้องการเชื่อมต่อกับช่องทางบริการ Azure Bot
- เชื่อมต่อ Copilot ของคุณกับมือถือและแอปที่กำหนดเอง
ตัวอย่างโค้ด
ข้อมูลโค้ดที่ใช้ในเอกสารนี้มาจาก โค้ดตัวอย่างบอทรีเลย์
การอ้างอิง
คำแนะนำในเอกสารนี้อ้างอิงสิ่งต่อไปนี้:
- ปรับใช้บอทของคุณกับ Azure สำหรับคำแนะนำในการปรับใช้บอทบริการ Azure Bot
- ช่องทางบริการ Azure Bot เพื่อเชื่อมต่อกับช่องทางที่รองรับบริการ Azure Bot
- บริการ Azure Bot ดีบักด้วยโปรแกรมจำลอง สำหรับคำแนะนำในการดีบักบอทบริการ Azure Bot
สร้างหรือใช้บอทบริการ 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
คัดลอกชื่อ Copilotของคุณใน Copilot Studio
ในเมนูนำทาง ภายใต้ การตั้งค่า เลือก ช่องทาง
เลือกช่องทางที่คุณต้องการเชื่อมต่อ สถานการณ์นี้ใช้ Slack เป็นตัวอย่าง
หากต้องการคัดลอกและบันทึกค่า ตำแหน่งข้อมูลโทเค็น ให้เลือก คัดลอก คุณจะต้องใช้ตำแหน่งข้อมูลเพื่อเชื่อมต่อ Copilot ของคุณกับช่องทางบริการ Azure Bot
จัดการเซสชันการสนทนาด้วย Copilot ของ Copilot Studio
อาจมีการสนทนาหลายรายการระหว่างช่องทางบริการ Azure Bot และการเชื่อมต่อ Direct Line กับ Copilot ของ Copilot Studio
บอทบริการ Azure Bot ของคุณจะต้องแมปและถ่ายทอดการสนทนาจากช่องทางบริการ Azure Bot ไปยังการสนทนา Direct Line กับ Copilot ของ Copilot Studio และในทางกลับกัน
โค้ดตัวอย่าง
ตัวอย่างต่อไปนี้ใช้ตัวอย่างจาก โค้ดตัวอย่างบอทรีเลย์
ในการเริ่มการสนทนาช่องทางบริการ 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; }
ในการจัดการหลายเซสชัน คุณต้องรักษาการแมปการสนทนาช่องทางบริการ 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 }
เมื่อเริ่มการสนทนากับ 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, };
เมื่อต้องการดำเนินการต่อในการสนทนาที่มีอยู่ เมื่อได้รับข้อความช่องทางบริการ 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; }
ดูที่ ใช้ 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
คำติชม
https://aka.ms/ContentUserFeedback
เร็วๆ นี้: ตลอดปี 2024 เราจะขจัดปัญหา GitHub เพื่อเป็นกลไกคำติชมสำหรับเนื้อหา และแทนที่ด้วยระบบคำติชมใหม่ สำหรับข้อมูลเพิ่มเติม ให้ดู:ส่งและดูข้อคิดเห็นสำหรับ