Legge til en kopilot i mobilapper og egendefinerte apper
Viktig!
Power Virtual Agents-funksjoner er nå en del av Microsoft Copilot Studio etter betydelige investeringer i generativ kunstig intelligens og forbedrede integreringer på tvers av Microsoft Copilot.
Enkelte artikler og skjermbilder kan henvise til Power Virtual Agents når vi oppdaterer dokumentasjons- og opplæringsinnhold.
Du kan koble kopiloten til en egendefinert app slik at appens brukere kan samhandle med kopiloten direkte fra appen.
I de fleste tilfeller er den egendefinerte appen en mobilenhetsapp som enten er en nettbasert app eller en innebygd app eller en adapter til andre tjenester som virksomheten krever.
Det finnes forskjellige fremgangsmåter for å koble til mobilappen, avhengig av om appen er en nettbasert app eller en integrert app.
Det er relativt enkelt å koble kopiloten til en nettbasert app, siden det innebærer at du kopierer en kodesnutt til appen. Både nettbaserte apper og innebygde eller egendefinerte apper krever likevel betydelig utviklingsekspertise for at kopiloten skal kunne integreres fullt ut i appen din. Begge prosedyrene beskrives i denne artikkelen.
Forutsetning
- .NET Core SDK versjon 2.1.
- NuGet-pakke Microsoft.Bot.Connector.DirectLine.
- En kopilot som er opprettet i Copilot Studio, og som du vil koble til appen din.
Koble kopiloten din til en nettbasert app
Velg Kanaler under Innstillinger på navigasjonsmenyen i Copilot Studio.
Velg Mobilapp-flisen for å åpne konfigurasjonsvinduet.
Kopier koden under Nettbaserte apper-delen, og gi den til programutviklerne slik at de kan legge den til den nettbaserte appen din.
Koble kopiloten til en innebygd eller egendefinert app
Tips
Selv om denne delen beskriver hvordan du kobler til en mobilapp, kan den samme prosessen brukes for tilpassede eller innebygde apper, for eksempel IoT-apper (Tingenes Internett).
Hvis målet er å koble til Azure Bot Service-kanaler, kan utviklerne dine – i tillegg til å følge instruksjonene her – lære mer på Koble roboten din til Azure Bot Service-kanaler.
Viktig
Instruksjonene i denne delen krever programvareutvikling fra deg eller utviklerne. Den er beregnet på erfarne IT-eksperter, for eksempel IT-administratorer eller utviklere som har en solid forståelse av utviklerverktøy, og integrerte utviklingsmiljøer (IDE).
Kodeeksempler
Kodesnutter som brukes i dette dokumentet, er fra følgende steder:
Referanser
Instruksjonene i dette dokumentet refererer til følgende kildemateriale:
- API for Bot Framework Direct Line
- Direct Line-godkjenning
- Kontekstvariabler som er tilgjengelige ved overføring
- Microsoft Bot Framework-aktivitet
Hent parameterne for Copilot Studio-kopiloten
Hvis du vil koble til kopiloten du har bygd, må du hente kopilotens navn og tokenendepunktet for å identifisere den.
Kopier navnet på kopiloten i Copilot Studio.
Velg Kanaler under Innstillinger på navigasjonsmenyen.
Velg Mobilapp.
Velg Kopier ved siden av Tokenendepunkt. Du trenger dette endepunktet for Hent Direct Line-token.
Hent Direct Line-token
Hvis du vil starte en samtale med kopiloten, trenger du et Direct Line-token. Du kan hente dette tokenet ved å sende en GET-forespørsel til endepunkt som angis på Copilot Studio-skjermen. Dette tokenet må deretter brukes som overskrift for påfølgende kall til direktelinje-API.
Eksempel:
GET <BOT TOKEN ENDPOINT>
Hvis forespørselen er vellykket, returneres et Direct Line-token, utløpstid og conversationId for den forespurte kopiloten. Eksempel:
{
"token": "RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn",
"expires_in": 3600,
"conversationId": "abc123"
}
Eksempel på eksempelkode
Eksemplet nedenfor bruker eksempler fra Eksempelkode for kontakt til å hente et Direct Line-token for en Copilot Studio-kopilot.
/// <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; }
}
Svarobjektet er det samme som GET-forespørselen vi så tidligere.
{
"token": "RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn",
"expires_in": 3600,
"conversationId": "abc123"
}
Bruk Direct Line til å kommunisere med kopiloten
Etter at du har hentet Direct Line-tokenet, er du klar til å ha en samtale med Copilot Studio-kopiloten med Direct Line. Du kan starte en samtale og sende og motta meldinger ved å følge instruksjonene på Bot Framework Direct Line API.
Følgende eksempel bruker eksempler fra Eksempelkode for kobling for å starte en samtale og sende og motta meldinger fra en Copilot Studio-kopilot.
Initialiser en DirectLineClient-forekomst med Direct Line-tokenet, og start en samtale:
// 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; }
Etter at du har startet en samtale, kan den identifiseres og kobles sammen ved hjelp av kombinasjonen av
token
ogconversationtId
. Sende en brukermelding til en eksisterende samtale:// 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", }); } }
Hent svaret til kopiloten med samme
token
ogconversationId
. De hentede Direct Line-svaraktivitetene inneholder meldingene for både bruker og kopilot. Du kan filtrere svaraktiviteter med navnet på kopiloten for å få bare kopilotens svarmelding.// 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 }
Oppdatere Direct Line-token
Det kan hende du må legge til kode for å oppdatere Direct Line-tokenet hvis appen har en lang samtale med kopiloten. Tokenet utløper, men kan oppdateres før det utløper. Finn ut mer under Direct Line-godkjenning.
Eksemplet nedenfor bruker eksempler fra Eksempelkode for kobling for å oppdatere tokenet for en eksisterende Copilot Studio-samtale:
// 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
Del opp samtalenyttelasten fra kopiloten
Etter at du har startet en samtale med kopiloten, bruker JSON-nyttelasten for samtalen standard Microsoft Bot Framework Direct Line-aktivitet. Du kan finne ut mer under Bot Framework Direct Line API.
Håndter overføringsaktivitet
Hvis programmet må foreta overføring til en live agent-leverandør, må du håndtere overføringsaktiviteten. Overføringsaktivitet sendes når noden «Overfør til agent» er nådd. Du kan finne ut mer om nyttelasten for overføringsaktiviteten.
Utløs en velkomstmelding
Hvis du vil at kopiloten din skal sende systememnet Hilsen automatisk når en bruker starter en samtale, kan du sende en aktivitet med Type=event
og Name=startConversation
.
Tilbakemeldinger
https://aka.ms/ContentUserFeedback.
Kommer snart: Gjennom 2024 faser vi ut GitHub Issues som tilbakemeldingsmekanisme for innhold, og erstatter det med et nytt system for tilbakemeldinger. Hvis du vil ha mer informasjon, kan du se:Send inn og vis tilbakemelding for