Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Du kan oprette forbindelse mellem din agent og eksisterende Azure Bot Service-kanaler. Denne forbindelse er nyttig, hvis du vil forbinde din agent med kunder på Azure Bot Service-kanaler.
Tilføjelse af din agent i Azure Bot Service-kanaler kræver stor udviklerekspertise. Denne artikel er skrevet til IT-administratorer eller udviklere, der har erfaring med at udvikle og skrive kode.
Vigtige oplysninger
Instruktionerne i dette afsnit kræver udvikling af software fra dig eller dine udviklere. Dette afsnit er beregnet til erfarne it-medarbejdere, f.eks. it-administratorer eller udviklere, der har en solid forståelse af udviklerværktøjer, hjælpeprogrammer og integrerede udviklingsmiljøer (IDE'er).
Tip
Du behøver ikke at følge dette dokument for at føje din Copilot Studio-agent til dit websted, Facebook eller Microsoft Teams. Hvis dit mål er at forbinde med en brugerdefineret webbaseret eller oprindelig app, kan udviklerne få mere at vide på Publicere en agent til mobile og brugerdefinerede apps.
Forudsætninger
- Et Azure Bot Service-abonnement.
- En Azure Bot Service-bot, som anvende v4 SDK.
- .NET SDK version 10.0.
- NuGet-pakken Microsoft.Bot.Connector.DirectLine.
- En agent, der er oprettet i Copilot Studio, og som du vil forbinde til en Azure Bot Service-kanal.
- Publicere en agent til mobilapps eller brugerdefinerede apps.
Kodeeksempler
Kodestykker, der bruges i dette dokument, er fra relæbehandlede bot-eksempelkode.
Referencer
Instruktionerne i dette dokument refererer til følgende dokumenter:
- Installer din bot på Azure for at få instruktioner i installation af Azure Bot Service-botten.
- Azure Bot Service-kanalerne for at forbinde med en hvilken som helst Azure Bot Service-understøttet kanal.
- Azure Bot Service-fejlfinding med emulatoren for at få instruktioner om, hvordan du foretager fejlfinding af Azure Bot Service-botten.
Opret eller brug en eksisterende Azure Bot Service-bot
Du skal bruge en Azure Bot Service-bot, der kan videresende samtaler mellem din Copilot Studio-agent og Azure Bot Service-kanaler.
Eksempelkoden for relæbehandlet bot er et godt udgangspunkt, hvis du ikke har en eksisterende Azure Bot Service-bot. Denne eksempelkode er bygget ud fra eksempelkoden for Microsoft Bot Framework-robotten, som du kan kompilere og udrulle til Azure Bot Service. Brug eksempelkoden som udgangspunkt. Eksempelkoden er ikke beregnet til produktionsbrug. Du skal tilføje kode og optimering for at kunne tilpasse den til dine forretningsbehov.
Hvis du allerede har en Azure Bot Service-bot, skal du tilføje en Copilot Studio-connector og -kode for at administrere samtalesessioner. Du kan derefter udrulle robotten til Azure Bot Service og oprette forbindelse til kanaler ved hjælp af Azure Portal.
Hent dine Copilot Studio-agentparametre
Hvis du vil oprette forbindelse til agenten, du har oprettet med Copilot Studio, skal du hente din agents navn og token-slutpunkt.
Kopiér din agents navn i Copilot Studio.
Vælg Kanaler under Indstillinger i navigationsmenuen.
Vælg den kanal, du vil oprette forbindelse til. I dette scenarie bruges Slack som eksempel.
Vælg Kopiér for at kopiere og gemme værdien af Slutpunkt for token. Du skal bruge dit slutpunkt for at oprette forbindelse mellem din agent og Azure Bot Service-kanalen.
Administrer samtalesessioner med din Copilot Studio-agent
Der kan være flere samtaler mellem Azure Bot Service-kanalerne og Direct Line-forbindelsen med din Copilot Studio-agent.
Din Azure Bot Service-robot skal tilknytte og videresende samtalen fra Azure Bot Service-kanalen til Direct Line-samtalen med Copilot Studio-agenten og omvendt.
Eksempel på eksempelkode
Det følgende eksempel bruger prøver fra relæbot-eksempelkoden.
Du kan på alle nye eksterne Azure Bot Service-kanaler til samtalestart starte en Copilot Studio-agentsamtale. Du kan finde flere instruktioner i at starte en ny samtale med robotten i Hent et Direct Line-token og Anvend Direct Line til at kommunikere med agenten.
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; }Hvis du vil administrere flere sessioner, skal du vedligeholde en tilknytning af eksterne Azure Bot Service-kanalsamtaler til tilsvarende Copilot Studio-agentsamtaler. Opret forbindelse til en Copilot Studio-agentsamtale ved hjælp af to egenskaber:
ConversationtIdogToken.Dictionary<string, PowerVirtualAgentsConversation> ConversationRouter = new Dictionary<string, PowerVirtualAgentsConversation>();Du kan styre samtalens livscyklus ved at opdatere Direct Line-tokens eller rydde op i inaktive samtaler. Få mere at vide om tokenopdatering i Opdatere Direct Line-token. En Copilot Studio-agentsamtale, der understøtter opdatering af Direct Line-tokens, er defineret på følgende måde:
/// <summary> /// Data model class for Copilot Studio agent conversation /// </summary> public class PowerVirtualAgentsConversation { public string ConversationtId { get; set; } // The Copilot Studio agent 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 agent }Når en ny Copilot Studio-agentsamtale startes, skal du føje et nøgleværdipar (
external_Azure_Bot_Service_channel_conversationID,PowerVirtualAgentsConversation) til tilknytningstabellen.// After new Copilot Studio agent conversation starts ConversationRouter[external_Azure_Bot_Service_channel_conversationID] = new PowerVirtualAgentsConversation() { Token = token, ConversationtId = conversationId, WaterMark = null, LastConversationUpdateTime = DateTime.Now, LastTokenRefreshTime = DateTime.Now, };Hvis du vil fortsætte en eksisterende samtale, skal du hente den eksisterende samtale fra tilknytningstabellen, når du modtager en ny ekstern Azure Bot Service-kanalmeddelelse. Videresend den eksterne samtaleaktivitet til din Copilot Studio-agent, og få et svar.
I følgende eksempel vises videresendelse af samtalen, hvilket gøres ved at tilsidesætte metoden ActivityHandler.OnMessageActivityAsync((ITurnContext<IMessageActivity>, CancellationToken)
// Invoked when a message activity is received from the user // Send the user message to Copilot Studio agent and get response protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken) { // Retrieve agent conversation from mapping table // If not exists for the given external conversation ID, start a new Copilot Studio agent 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; }Vi henviser til Anvendelse af Direct Line til at kommunikere med agenten for oplysninger om, hvordan du kan få Copilot Studio-agentens svar. Når du modtager Copilot Studio-agentens svar, skal du se Parse samtalenyttedata fra agenten for at få oplysninger om, hvordan du fortolker svaret på det eksterne svar på Azure Bot Service-kanalen.
Du kan finde et eksempel på fortolkning af svar i relæ-eksempelkode for botten ResponseConverter.cs.
Installer på Azure Bot Service
Når du har oprettet din Azure Bot Service-relærobot, skal du udrulle robotten til din Azure Bot Service.
Opsætning af Azure Bot Service-kanaler
Hvis du vil konfigurere kanaler, skal du logge på Azure Portal og vælge den Azure Bot Service-ressourcegruppe, du har udrullet til. Du kan finde specifikke instruktioner under Azure Bot Service-kanaler.