Agentin julkaiseminen Azure Bot Servicen kanaviin
Voit yhdistää agentin olemassa oleviin Azure Bot Service -kanaviin, mistä voi olla hyötyä, jos haluat yhdistää agentin Azure Bot Service -kanavien asiakkaisiin.
Agentin lisääminen Azure Bot Service -kanaviin edellyttää merkittävää kehittäjäasiantuntemusta. Tämä artikkeli on kirjoitettu IT-järjestelmänvalvojille tai sovelluskehittäjille, joilla on kokemusta koodin kehittämisestä ja kirjoittamisesta.
Vihje
Sinun ei tarvitse lukea tätä asiakirjaa, jos haluat lisätä Copilot Studio -agenttisi verkkosivustollesi, Facebookiin tai Microsoft Teamsiin. Jos haluat muodostaa yhteyden mukautettuun verkkopohjaiseen tai natiiviin sovellukseen, kehittäjät saavat lisätietoja kohdasta Agentin julkaiseminen mobiili- tai mukautettuihin sovelluksiin.
Tärkeää
Tämän osan ohjeet edellyttävät ohjelmistokehitystä sinulta tai kehittäjiltäsi. Se on tarkoitettu kokeneille IT-ammattilaisille, kuten IT-järjestelmänvalvojille tai sovelluskehittäjille, joilla on vankka käsitys kehittäjien työkaluista, apuohjelmista ja IDE:istä.
Edellytykset
- Azure Bot Service -tilaus.
- Azure Bot Service -botti, joka käyttää v4 SDK:ta.
- .NET Core SDK -versio 2.1.
- NuGet-paketti Microsoft.Bot.Connector.DirectLine.
- Copilot Studioissa luotu agentti, jonka haluat yhdistää Azure Bot Service -kanavaan.
- Agentin julkaiseminen mobiilisovelluksiin tai mukautettuihin sovelluksiin.
Koodinäytteet
Tässä asiakirjassa käytetyt koodikatkelmat ovat peräisin relebotin näytekoodista .
Viitteet
Tämän asiakirjan ohjeissa viitataan seuraaviin asiakirjoihin:
- Botin käyttöönotto Azuressa Azure Bot Service -botin käyttöönottoa koskevia ohjeita varten.
- Azure Bot Service -kanavat mihin tahansa Azure Bot Servicen tukemaan kanavaan yhdistämistä varten.
- Azure Bot Servicen virheenkorjaus emulaattorilla Azure Bot Service -botin virheenkorjausta koskevia ohjeita varten.
Azure Bot Service -botin luonti tai aiemman luodun sellaisen käyttö
Tarvitset Azure Bot Service -botin, joka voi välittää keskusteluja Copilot Studio -agenttisi ja Azure Bot Service -kanavien välillä.
Välitysbotin näytekoodi on hyvä aloituskohta, jos sinulla ei ole aiemmin luotua Azure Bot Service -bottia. Se kehitetään Microsoft Bot Framework -botin näytekoodista, joka voidaan kääntää ja ottaa käyttöön Azure Bot Servicessä. Näytekoodia on tarkoitus käyttää aloituskohtana, eikä sitä ole tarkoitettu käytettäväksi suoraan tuotannossa. Sinun on lisättävä koodia ja optimointia liiketoimintatarpeidesi mukaan.
Jos sinulla on jo Azure Bot Service -botti, sinun on lisättävä Copilot Studio -yhdistin ja koodia keskusteluistuntojen hallintaa varten. Tämän jälkeen voit ottaa botin käyttöön Azure Bot Servicessä ja muodostaa yhteyden kanaviin Azure-portaalin avulla.
Copilot Studio -agenttiparametrien hakeminen
Jotta voit yhdistää Copilot Studion avulla luodun agentin, sinun on noudettava agentin nimi ja tunnuksen päätepiste.
Kopioi agenttisi nimi Copilot Studiosta.
Valitse siirtymisvalikon Asetukset-kohdasta Kanavat.
Valitse kanava, johon haluat muodostaa yhteyden. Tässä skenaariossa esimerkkinä on Slack.
Jos haluat kopioida ja tallentaa tunnuksen päätepisteen arvon, valitse Kopioi. Päätepisteen on yhdistettävä agentti Azure Bot Service -kanavaan.
Keskusteluistuntojen hallinta Copilot Studio -agentin avulla
Azure Bot Service -kanavien ja Copilot Studio -agentin Direct Line -yhteyden välillä voi olla useita keskusteluja.
Azure Bot Service -botin on liitettävä ja välitettävä keskustelu Azure Bot Service -kanavasta Direct Line -keskusteluun Copilot Studio -agentin kanssa ja toisinpäin.
Näytekoodiesimerkki
Seuraavassa esimerkissä käytetään näytteitä välitysbotin näytekoodista.
Aloita Copilot Studio -agenttikeskustelu jokaisessa uudessa ulkoisessa Azure Bot Service -kanavan keskustelussa. Katso ohjeet uuden keskustelun aloittamisesta botin kanssa kohdista Hanki Direct Line -tunnus ja Käytä Direct Lineä agentin kanssa viestimiseen.
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; }
Jos haluat hallita useita istuntoja, sinun on ylläpidettävä ulkoisten Azure Bot Service -kanavakeskustelujen yhdistämismääritystä vastaaviin Copilot Studio -agenttikeskusteluihin. Copilot Studio -agenttikeskustelu voidaan tunnistaa ja yhdistää kahden ominaisuuden perusteella:
ConversationtId
jaToken
.Dictionary<string, PowerVirtualAgentsConversation> ConversationRouter = new Dictionary<string, PowerVirtualAgentsConversation>();
Voit hallita keskustelin elinkaarta päivittämällä Direct Line -tunnukset tai poistamalla käyttämättömiä keskusteluja. Lisätietoja tunnuksen päivittämisestä: Päivitä Direct Line -tunnus. Copilot Studio -agenttikeskustelu tukemaan Direct Line -tunnusten päivittämistä määritetään seuraavasti:
/// <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 }
Kun uusi Copilot Studio -agenttikeskustelu alkaa, lisää avainarvopari (
external_Azure_Bot_Service_channel_conversationID
,PowerVirtualAgentsConversation
) yhdistämistaulukkoon.// 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, };
Voit jatkaa olemassa olevaa keskustelua hakemalla uuden vastaanotetun ulkoisen Azure Bot Service -kanavaviestin, hakemalla olemassa olevan keskustelun yhdistämistaulukosta, välittämällä ulkoisen keskusteluaktiviteetin Copilot Studio -agentille ja saamalla vastauksen.
Seuraavassa esimerkissä esitetään keskustelun välittäminen ohittamalla ActivityHandler.OnMessageActivityAsync((ITurnContext<IMessageActivity>, CancellationToken) -menetelmä
// 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; }
Katso kohdasta Direct Linen käyttö agentin kanssa viestimiseen, miten saat vastauksen Copilot Studio -agentilta. Kun Copilot Studio -agentin vastaus on vastaanotettu, katso kohdasta Agentin keskustelutietojen jäsentäminen ohjeet vastauksen jäsentämiseen ulkoiseen Azure Bot Service -kanavan vastaukseen.
Esimerkki vastauksen jäsennyksestä välitysbotin näytekoodissa ResponseConverter.cs.
Käyttöönotto Azure Bot Servicessä
Kun Azure Bot Service -välitysbottisi on valmis, sinun on otettava botti käyttöön Azure Bot Servicesässi.
Azure Bot Service -kanavien määrittäminen
Voit määrittää kanavat, joihin haluat muodostaa yhteyden, kirjautumalla Azure-portaaliin ja valitsemalla Azure Bot Service -resurssiryhmän, jossa olet ottanut avustajan käyttöön. Tutustu kunkin kanavan yksilöllisiin ohjeisiin aiheessa Azure Bot Service -kanavat.