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


Ρύθμιση παραμέτρων παράδοσης σε έναν γενικό διανομέα δέσμευσης

Το Copilot Studio σάς επιτρέπει να παραδώσετε συνομιλίες copilot χωρίς προβλήματα και βάσει περιεχομένου σε εκπρόσωπο μέσω ενός διανομέα δέσμευσης.

Με κάποια προσαρμοσμένη ανάπτυξη, μπορείτε να ρυθμίσετε τις παραμέτρους του copilot για να παραδώσετε συνομιλίες σε διανομέα δέσμευσης. Αυτός ο οδηγός περιγράφει τον τρόπο με τον οποίο μπορείτε να το κάνετε.

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

Σημαντικό

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

Επισκόπηση

ΑΠΕΙΚΟΝΙΣΗ ΠΟΥ ΔΕΙΧΝΕΙ ΤΗ ΡΟΗ ΔΕΔΟΜΕΝΩΝ ΓΕΝΙΚΟΥ ΠΡΟΣΑΡΜΟΓΕΑ.

Η πλήρης παράδοση σε έναν διανομέα δέσμευσης ακολουθεί αυτό το μοτίβο:

  1. Ένας τελικός χρήστης αλληλεπιδρά με τον καμβά συνομιλίας του διανομέα δέσμευσης.

  2. Ο διανομέας δέσμευσης δρομολογεί την εισερχόμενη συνομιλία μέσω των ενσωματωμένων δυνατοτήτων δρομολόγησης της συνομιλίας προς ένα copilot.

  3. Ένας προσαρμοσμένος προσαρμογέας αναμεταδίδει τα εισερχόμενα μηνύματα συνομιλίας από τον διανομέα δέσμευσης σε ένα copilot του Copilot Studio.

  4. Μόλις ο τελικός χρήστης ενεργοποιήσει την παράδοση, το Copilot Studio ξεκινά την παράδοση με όλο το περιβάλλον συνομιλίας.

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

  6. Η συνομιλία του τελικού χρήστη γίνεται χωρίς προβλήματα και βάσει του περιβάλλοντος με έναν εκπρόσωπο που μπορεί να συνεχίσει τη συνομιλία.

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

Δημιουργία προσαρμοσμένου προσαρμογέα παράδοσης

Ένας προσαρμογέας γεφυρώνει τις συνομιλίες προς και από τον διανομέα δέσμευσης εκπρόσωπου με την μεταγωγή και τον μετασχηματισμό μηνυμάτων μεταξύ των τελικών χρηστών, των copilot και των εκπροσώπων.

Οι πιο δημοφιλείς κόμβοι δέσμευσης αντιπροσώπων παρέχουν κιτ ανάπτυξης λογισμικού (SDK) ή τεκμηριώνουν δημόσια τα API τους, επιτρέποντάς σας να δημιουργήσετε τέτοιους προσαρμογείς.

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

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

Δείγμα ωφέλιμου φορτίου μηνύματος παράδοσης

Η κλιμάκωση υποστηρίζεται αυτή τη στιγμή μόνο σε Direct Line. Μάθετε περισσότερα σχετικά με την αλληλεπίδραση με ένα copilot στο Direct Line. Μετά την παράδοση, μια δραστηριότητα συμβάντος που καλείται handoff.initiate ενεργοποιείται και αποστέλλεται στον προσαρμογέα.

Μπορείτε να δείτε ένα πλήρες δείγμα δραστηριότητας μηνύματος παράδοσης στην τοποθεσία GitHub.

Εξαγωγή περιβάλλοντος από μήνυμα παράδοσης

Για να χρησιμοποιήσετε το περιβάλλον συνομιλίας, πρέπει να αναλύσετε τη δραστηριότητα συμβάντος handoff.initiate. Το παρακάτω τμήμα κώδικα αναλύει τη δραστηριότητα συμβάντος handoff.initiate και εξάγει το περιβάλλον συνομιλίας. Ανατρέξτε στο πλήρες δείγμα κώδικα στο GitHub.

public void InitiateHandoff(string botresponseJson)
{
    BotResponse response = JsonConvert.DeserializeObject<BotResponse>(botresponseJson);

    // Look for Handoff Initiate Activity. This indicates that conversation needs to be handed off to agent
    Activity handoffInitiateActivity = response.Activities.ToList().FirstOrDefault(
        item => string.Equals(item.Type, ActivityTypes.Event, System.StringComparison.Ordinal)
        && string.Equals(item.Name, HandoffInitiateActivityName, System.StringComparison.Ordinal));

    if (handoffInitiateActivity != null)
    {
        // Read transcript from attachment
        if (handoffInitiateActivity.Attachments?.Any() == true)
        {
            Attachment transcriptAttachment = handoffInitiateActivity.Attachments.FirstOrDefault(a => string.Equals(a.Name.ToLowerInvariant(), TranscriptAttachmentName, System.StringComparison.Ordinal));
            if (transcriptAttachment != null)
            {
                Transcript transcript = JsonConvert.DeserializeObject<Transcript>(transcriptAttachment.Content.ToString());
            }
        }

        // Read handoff context
        HandoffContext context = JsonConvert.DeserializeObject<HandoffContext>(handoffInitiateActivity.Value.ToString());

        // Connect to Agent Hub
        // <YOUR CUSTOM ADAPTER CODE GOES HERE>
    }
}