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


Δημοσίευση παράγοντα στα κανάλια Azure Bot Service

Μπορείτε να συνδέσετε τον παράγοντά σας με υπάρχοντα κανάλια Azure Bot Service τα οποία μπορεί να είναι χρήσιμα εάν θέλετε να συνδέσετε τον παράγοντά σας με πελάτες στα κανάλια Azure Bot Service.

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

Φιλοδώρημα

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

Σημαντικό

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

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

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

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

Αναφορές

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

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

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

Διάγραμμα 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 Service και της σύνδεσης Direct Line με το παράγοντα Copilot Studio.

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

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

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

  1. Σε κάθε νέα εξωτερική συνομιλία καναλιού Azure Bot Service, ξεκινήστε μια συνομιλία παράγοντα 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 Service σε αντίστοιχες συνομιλίες παράγοντα Copilot Studio. Μια συνομιλία παράγοντα Copilot Studio μπορεί να προσδιοριστεί και να συνδεθεί με δύο ιδιότητες: ConversationtId και Token.

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

    Για να διαχειριστείτε τον κύκλο ζωής συνομιλιών, ανανεώστε τα Direct Line διακριτικά ή εκκαθαρίστε τις συνομιλίες που έχουν παραμείνει σε αδράνεια. Μάθετε περισσότερα σχετικά με την ανανέωση διακριτικού στην Ανανέωση διακριτικού Direct Line. Μια συνομιλία παράγοντα του 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 Service, ανακτήστε την υπάρχουσα συνομιλία από τον πίνακα αντιστοίχισης, αναμεταδώστε την εξωτερική δραστηριότητα συνομιλίας στο παράγοντα 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 Service.

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

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

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

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

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