Julkaise asiakaspalvelija - Azure botti Palvelukanavat
Voit yhdistää asiakaspalvelija olemassa oleviin Azure botti-palvelukanaviin , joista voi olla hyötyä, jos haluat yhdistää asiakaspalvelija Azure botti-palvelukanavien loppukäyttäjiin.
Asiakaspalvelija lisääminen Azure botti Palvelukanaviin vaatii huomattavaa kehittäjäosaamista. Tämä artikkeli on kirjoitettu IT-järjestelmänvalvojille tai sovelluskehittäjille, joilla on kokemusta koodin kehittämisestä ja kirjoittamisesta.
Vihje
Sinun ei tarvitse noudattaa tätä asiakirjaa lisätäksesi Copilot Studio asiakaspalvelija verkkosivustollesi Facebook tai Microsoft Teams. Jos tavoitteesi on muodostaa yhteys mukautettuun verkkopohjaiseen tai natiivisovellukseen, kehittäjäsi saavat lisätietoja artikkelista asiakaspalvelija-merkin julkaiseminen mobiilisovelluksille tai mukautetuille sovelluksille.
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.
- Asiakaspalvelija, joka on luotu Copilot Studio siten, että haluat muodostaa yhteyden Azure botti-palvelukanavaan.
- Julkaise asiakaspalvelija 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 botti Service -botti, joka voi välittää keskusteluja asiakaspalvelija- ja Azure botti-palvelukanaviesi Copilot Studio 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.
Hanki # Copilot Studio asiakaspalvelija parametrit
Jos haluat muodostaa yhteyden asiakaspalvelija, jolla Copilot Studio rakensit, sinun on haettava asiakaspalvelija:n nimi ja tunnus päätepiste.
Kopioi asiakaspalvelija:n nimi Copilot Studio.
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. Tarvitset päätepiste yhdistääksesi asiakaspalvelija Azure botti-palvelukanavaan.
Hallitse keskusteluistuntoja # Copilot Studio asiakaspalvelija
Azure botti-palvelukanavien ja Direct Line yhteyden Copilot Studio asiakaspalvelija välillä voi olla useita keskusteluja.
Azure botti-palvelusi botti on kartoitettava ja välitettävä keskustelu Azure botti-palvelukanavalta Direct Line keskusteluun asiakaspalvelija:n Copilot Studio kanssa ja päinvastoin.
Näytekoodiesimerkki
Seuraavassa esimerkissä käytetään näytteitä välitysbotin näytekoodista.
Aloita asiakaspalvelija keskustelu jokaisen uuden ulkoisen Azure botti Palvelukanavakeskustelun alkaessa Copilot Studio . Katso kohdista Hanki Direct Line tunnus ja Käytä Direct Line viestintään asiakaspalvelija :n kanssa ohjeet uuden keskustelun aloittamiseen botti kanssa.
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 botti-palvelukanavakeskustelujen yhdistämismääritys vastaaviin Copilot Studio asiakaspalvelija keskusteluihin. A Copilot Studio asiakaspalvelija keskustelu voidaan tunnistaa kahdella ominaisuudella ja yhdistää siihen:
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. A Copilot Studio asiakaspalvelija keskustelu, joka tukee virkistäviä Direct Line tunnuksia, määritellää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 asiakaspalvelija keskustelu alkaa, lisää avainarvopari (
external_Azure_Bot_Service_channel_conversationID
,PowerVirtualAgentsConversation
) yhdistämismääritys taulukkoon.// 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, };
Jos haluat jatkaa aiemmin luotua keskustelua uuden ulkoisen Azure botti Service Channel -viestin vastaanottamisen jälkeen, hae aiemmin luotu keskustelu yhdistämismääritys-taulukosta, välitä ulkoinen keskusteluaktiviteetti asiakaspalvelija-viestiisi Copilot Studio ja hanki vastaus.
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 Käytä Direct Line kommunikoidaksesi asiakaspalvelija :n kanssa, miten asiakaspalvelija:n vastaus saadaan Copilot Studio . Kun asiakaspalvelija:n Copilot Studio vastaus vastaanotetaan, katso kohdasta Parse-keskustelun hyötykuorma asiakaspalvelija :stä, miten vastaus jäsennellään ulkoiseen Azure botti Service -kanavan vastaus.
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.