Κοινή χρήση μέσω


Δημοσίευση καναλιών υπηρεσίας εκπρόσωπος έως Azure bot

Μπορείτε να συνδέσετε το εκπρόσωπος σας με υπάρχοντα κανάλια υπηρεσίας Azure bot, τα οποία μπορεί να είναι χρήσιμα εάν θέλετε να συνδέσετε το εκπρόσωπος σας με τελικούς χρήστες σε κανάλια υπηρεσίας Azure bot.

Η προσθήκη του εκπρόσωπος σας στα κανάλια Azure bot Service απαιτεί σημαντική εμπειρία προγραμματιστών. Αυτό το άρθρο είναι γραμμένο για διαχειριστές IT ή προγραμματιστές που έχουν εμπειρία με την ανάπτυξη και τη σύνταξη κώδικα.

Φιλοδώρημα

Δεν χρειάζεται να ακολουθήσετε αυτό το έγγραφο για να προσθέσετε το εκπρόσωπος σας Copilot Studio στον ιστότοπό σας Facebook, ή Microsoft Teams. Εάν ο στόχος σας είναι να συνδεθείτε σε μια προσαρμοσμένη εφαρμογή που βασίζεται στον ιστό ή σε μια εγγενή εφαρμογή, οι προγραμματιστές σας μπορούν να μάθουν περισσότερα στο θέμα Δημοσίευση εκπρόσωπος σε εφαρμογές για κινητά ή προσαρμοσμένες εφαρμογές.

Σημαντικό

Οι οδηγίες σε αυτήν την ενότητα απαιτούν ανάπτυξη λογισμικού από εσάς ή από τους προγραμματιστές σας. Απευθύνονται σε έμπειρους επαγγελματίες IT, όπως διαχειριστές IT ή προγραμματιστές που έχουν κατανοήσει πολύ καλά τα εργαλεία για προγραμματιστές, τα βοηθητικά προγράμματα και τα IDE.

Προϋποθέσεις

Δείγματα κώδικα

Τα τμήματα κώδικα που χρησιμοποιούνται σε αυτό το έγγραφο προέρχονται από το δείγμα κώδικα bot αναμετάδοσης.

Αναφορές

Οι οδηγίες σε αυτό το έγγραφο αναφέρουν τα εξής έγγραφα:

Δημιουργία ή χρήση υφιστάμενου Azure Bot Service bot

Χρειάζεστε ένα bot υπηρεσίας Azure bot που μπορεί να αναμεταδώσει συνομιλίες μεταξύ των Copilot Studio καναλιών υπηρεσίας εκπρόσωπος και Azure bot.

Διάγραμμα bot αναμετάδοσης.

Το δείγμα κώδικα bot αναμετάδοσης είναι ένα καλό σημείο εκκίνησης εάν δεν έχετε κάποιο υφιστάμενο Azure Bot Service bot. Έχει δημιουργηθεί από δείγμα κώδικα του Microsoft Bot Framework bot που μπορεί να δημιουργηθεί και να αναπτυχθεί στο Azure Bot Service. Το δείγμα κώδικα προορίζεται για χρήση ως σημείο εκκίνησης και δεν προορίζεται για άμεση χρήση στην παραγωγή. Θα χρειαστεί να προσθέσετε κώδικα και βελτιστοποίηση ώστε να ικανοποιούνται οι ανάγκες της επιχείρησής σας.

Αν έχετε ήδη ένα Azure Bot Service bot, θα πρέπει να προσθέσετε μια σύνδεση Copilot Studio και έναν κώδικα για τη διαχείριση των περιόδων λειτουργίας συνομιλίας. Στη συνέχεια, μπορείτε να αναπτύξετε το bot στο Azure Bot Service και να συνδεθείτε σε κανάλια με την πύλη Azure.

Copilot Studio Λάβετε τις παραμέτρους εκπρόσωπος

Για να συνδεθείτε στο εκπρόσωπος με το οποίο Copilot Studio δημιουργήσατε, πρέπει να ανακτήσετε το όνομα και το διακριτικό τελικό σημείο του εκπρόσωπος σας.

  1. Αντιγράψτε το όνομα του εκπρόσωπος σας Copilot Studio.

    Λήψη ονόματος bot.

  2. Στο μενού πλοήγησης, στις Ρυθμίσεις επιλέξτε Κανάλια.

  3. Επιλέξτε το κανάλι στο οποίο θέλετε να συνδεθείτε. Αυτό το σενάριο χρησιμοποιεί το Slack ως παράδειγμα.

    Κανάλι Slack.

  4. Για να αντιγράψετε και να αποθηκεύσετε την τιμή Τελικό σημείο διακριτικού, επιλέξτε Αντιγραφή. Χρειάζεστε το τελικό σημείο σας για να συνδέσετε το εκπρόσωπος σας στο κανάλι Azure bot Service.

    Λήψη παραμέτρων bot.

Διαχείριση περιόδων λειτουργίας συνομιλίας με το εκπρόσωπος σας Copilot Studio

Μπορεί να υπάρχουν πολλές συνομιλίες μεταξύ των καναλιών υπηρεσίας Azure bot και της σύνδεσης με το Direct Line εκπρόσωπος σας Copilot Studio .

Το bot υπηρεσίας Azure bot πρέπει να χαρτογραφήσει και να αναμεταδώσει τη συνομιλία από το κανάλι υπηρεσίας Azure bot στη συνομιλία με το Direct Line Copilot Studio εκπρόσωπος και αντίστροφα.

Παράδειγμα δείγματος κώδικα

Στο παρακάτω παράδειγμα χρησιμοποιούνται δείγματα από το δείγμα κώδικα bot αναμετάδοσης.

  1. Σε κάθε νέα εξωτερική συνομιλία καναλιού Azure bot υπηρεσίας, ξεκινήστε μια Copilot Studio εκπρόσωπος συνομιλία. Ανατρέξτε στις ενότητες Λήψη Direct Line διακριτικού και Χρήση Direct Line για επικοινωνία με το εκπρόσωπος για οδηγίες σχετικά με την έναρξη μιας νέας συνομιλίας με το bot.

    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;
     }
    
  2. Για να διαχειριστείτε πολλές περιόδους σύνδεσης, πρέπει να διατηρήσετε μια αντιστοίχιση εξωτερικών συνομιλιών καναλιού Azure bot υπηρεσίας για αντίστοιχες Copilot Studio συνομιλίες εκπρόσωπος. Η συνομιλία A Copilot Studio εκπρόσωπος μπορεί να αναγνωριστεί και να συνδεθεί με δύο ιδιότητες: ConversationtId και Token.

    Dictionary<string, PowerVirtualAgentsConversation> ConversationRouter = new Dictionary<string, PowerVirtualAgentsConversation>();  
    

    Για να διαχειριστείτε τον κύκλο ζωής συνομιλιών, ανανεώστε τα Direct Line διακριτικά ή εκκαθαρίστε τις συνομιλίες που έχουν παραμείνει σε αδράνεια. Μάθετε περισσότερα σχετικά με την ανανέωση διακριτικού στην Ανανέωση διακριτικού Direct Line. Η συνομιλία A Copilot Studio εκπρόσωπος για την υποστήριξη της ανανέωσης Direct Line διακριτικών ορίζεται ως εξής:

    /// <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
    }
    
  3. Όταν ξεκινά μια νέα Copilot Studio συνομιλίαεκπρόσωπος, προσθέστε ένα ζεύγος τιμών κλειδιού (external_Azure_Bot_Service_channel_conversationID, PowerVirtualAgentsConversation) στον πίνακα αντιστοίχιση.

    // 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,
      }; 
    
  4. Για να συνεχίσετε σε μια υπάρχουσα συνομιλία, μετά από ένα νέο εξωτερικό μήνυμα καναλιού υπηρεσίας Azure bot που λάβατε, ανακτήστε την υπάρχουσα συνομιλία από τον πίνακα αντιστοίχιση, αναμεταδώστε τη δραστηριότητα εξωτερικής συνομιλίας στο εκπρόσωπος σας Copilot Studio και λάβετε μια απάντηση.

    Το παρακάτω δείγμα δείχνει τη συνομιλία αναμετάδοσης παρακάμπτοντας τη μέθοδο 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;
    }  
    
  5. Ανατρέξτε στην ενότητα Χρήση Direct Line για επικοινωνία με το εκπρόσωπος για το πώς να αποκτήσετε το Copilot Studio απάντηση του εκπρόσωπος. Όταν ληφθεί το Copilot Studio απάντηση του εκπρόσωπος, ανατρέξτε στην ενότητα Ανάλυση ωφέλιμου φορτίου συνομιλίας από το εκπρόσωπος για τον τρόπο ανάλυσης του απάντηση στο εξωτερικό κανάλι υπηρεσίας Azure bot απάντηση.

Παράδειγμα ανάλυσης απόκρισης υπάρχει στο δείγμα κώδικα bot αναμετάδοσης ResponseConverter.cs.

Ανάπτυξη στο Azure Bot Service

Αφού έχετε έτοιμο το bot αναμετάδοσης Azure Bot Service, θα πρέπει να αναπτύξετε το bot στο Azure Bot Service.

Ρύθμιση παραμέτρων καναλιών Azure Bot Service

Μπορείτε να ρυθμίσετε τα κανάλια στα οποία θέλετε να συνδεθείτε, κατόπιν σύνδεσής σας στην πύλη Azure και επιλέγοντας την ομάδα πόρων Azure Bot Service που έχετε αναπτύξει. Δείτε τις συγκεκριμένες οδηγίες για κάθε κανάλι στα Κανάλια Azure Bot Service.