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


Προσθήκη Copilot Studio copilot στα κανάλια Azure Bot Service

Σημαντικό

Οι δυνατότητες του Power Virtual Agents αποτελούν τώρα μέρος του Microsoft Copilot Studio μετά από σημαντικές επενδύσεις σε παραγωγική τεχνητή νοημοσύνη και βελτιωμένες ενσωματώσεις στο Microsoft Copilot.

Ορισμένα άρθρα και στιγμιότυπα οθόνης ενδέχεται να αναφέρονται στο Power Virtual Agents ενώ ενημερώνουμε την τεκμηρίωση και το εκπαιδευτικό περιεχόμενο.

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

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

Φιλοδώρημα

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

Σημαντικό

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

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

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

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

Αναφορές

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

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

Χρειάζεστε ένα Azure Bot Service bot που μπορεί να αναμεταδίδει συνομιλίες μεταξύ του Copilot Studio copilot και των καναλιών 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

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

  1. Αντιγράψτε το όνομα του copilot στο Copilot Studio.

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

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

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

    Κανάλι Slack.

  4. Για να αντιγράψετε και να αποθηκεύσετε την τιμή Τελικό σημείο διακριτικού, επιλέξτε Αντιγραφή. Θα χρειαστείτε το τελικό σημείο για να συνδέσετε το copilot με το κανάλι Azure Bot Service.

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

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

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

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

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

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

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

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

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

    /// <summary>
    /// Data model class for Copilot Studio copilot conversation
    /// </summary>
    public class PowerVirtualAgentsConversation
    {
        public string ConversationtId { get; set; } // The Copilot Studio copilot 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 copilot
    }
    
  3. Όταν ξεκινήσει μια νέα συνομιλία copilot του Copilot Studio, προσθέστε ένα ζεύγος κλειδιών-τιμής (external_Azure_Bot_Service_channel_conversationID, PowerVirtualAgentsConversation) στον πίνακα αντιστοίχισης.

    // After new Copilot Studio copilot 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 copilot σας και λάβετε μια απόκριση.

    Το παρακάτω δείγμα δείχνει τη συνομιλία αναμετάδοσης παρακάμπτοντας τη μέθοδο ActivityHandler.OnMessageActivityAsync((ITurnContext<IMessageActivity>, CancellationToken)

    // Invoked when a message activity is received from the user
    // Send the user message to Copilot Studio copilot and get response
    protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
    {
        // Retrieve copilot conversation from mapping table
        // If not exists for the given external conversation ID, start a new Copilot Studio copilot 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 για το πώς να λάβετε την απόκριση του copilot Copilot Studio. Όταν ληφθεί η απάντηση του copilot Copilot Studio, δείτε την Ανάλυση ωφέλιμου φορτίου συνομιλιας από το copilot για τον τρόπο ανάλυσης της απόκρισης στην απόκριση εξωτερικού καναλιού 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.