Σημείωμα
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να εισέλθετε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Το Copilot Studio περιλαμβάνει ενσωματωμένες προελεύσεις γνώσης, όπως το SharePoint και το Dataverse. Πολλοί οργανισμοί χρησιμοποιούν επίσης τα δικά τους τελικά σημεία αναζήτησης, όπως προσαρμοσμένα API, υπάρχοντα εταιρικά συστήματα αναζήτησης ή Αναζήτηση AI Azure, ενώ παράλληλα διατηρούν τον πλήρη έλεγχο του ερωτήματος που εκτελείται.
Το Copilot Studio υποστηρίζει αυτό το σενάριο με το OnKnowledgeRequested έναυσμα. Κάθε θέμα που χρησιμοποιεί αυτό το έναυσμα λειτουργεί ως προσαρμοσμένη προέλευση γνώσεων και συμβάλλει με αποτελέσματα στη δημιουργία απαντήσεων.
Αυτό το άρθρο εξηγεί πώς μπορείτε να δημιουργήσετε και να ενσωματώσετε προσαρμοσμένες προελεύσεις γνώσεων στο Copilot Studio χρησιμοποιώντας το OnKnowledgeRequested έναυσμα. Μάθετε πώς το Copilot Studio ξαναγράφει ερωτήματα, πώς να συνδεθείτε στο δικό σας API αναζήτησης, πώς να μορφοποιήσετε τα αποτελέσματα για απαντήσεις που δημιουργούν και βέλτιστες πρακτικές όταν εργάζεστε με προσαρμοσμένες γνώσεις.
Το έναυσμα OnKnowledgeRequested
Χρησιμοποιήστε το OnKnowledgeRequested έναυσμα σε αυτές τις δύο περιπτώσεις:
- Όταν ο ενορχηστρωτής προσδιορίζει ότι απαιτείται ανάκτηση γνώσεων για την απάντηση σε ένα ερώτημα χρήστη.
- Όταν ένας κόμβος απαντήσεων που δημιουργείται καλείται ρητά στη συζήτηση.
Σημαντικό
Μπορείτε να ρυθμίσετε αυτό το έναυσμα μόνο σε προβολή κώδικα χρησιμοποιώντας το YAML. Δεν υπάρχει υποστήριξη για σχεδιαστές απεικονίσεων.
Θέματα που χρησιμοποιούν OnKnowledgeRequested έχουν πρόσβαση σε μεταβλητές συστήματος που δεν είναι διαθέσιμες σε κανονικά θέματα:
-
System.SearchQuery: Μια ξαναγραμμένη έκδοση του ερωτήματος χρήστη με επίγνωση περιβάλλοντος, η οποία είναι βελτιστοποιημένη για αναζήτηση σημασιολογίας. -
System.KeywordSearchQuery: Ένα ξαναγραμημένο ερώτημα που είναι βελτιστοποιημένο για μηχανές αναζήτησης που βασίζονται σε λέξεις-κλειδιά. -
System.SearchResults: Όπου το θέμα αποθηκεύει μορφοποιημένα τμήματα γνώσεων.
Το Copilot Studio ξαναγράφει με έξυπνο τρόπο τα ερωτήματα χρησιμοποιώντας το ιστορικό συνομιλίας, εξασφαλίζοντας ότι διατηρεί περιβάλλον πολλαπλών μετατροπών.
Δημιουργία προσαρμοσμένης προέλευσης γνώσεων
Για να δημιουργήσετε μια προσαρμοσμένη προέλευση γνώσεων, δημιουργείτε ένα θέμα με το OnKnowledgeRequested έναυσμα που καλεί το API αναζήτησής σας και μετασχηματίζει τα αποτελέσματα στη μορφή που αναμένει το Copilot Studio.
Βήμα 1: Δημιουργία της ενεργοποίησης
Δημιουργήστε ένα νέο θέμα στο Copilot Studio, αλλάξτε σε προβολή κώδικα και ορίστε το OnKnowledgeRequested έναυσμα.
kind: AdaptiveDialog
beginDialog:
kind: OnKnowledgeRequested
id: main
intent: {}
actions:
# Actions go here
inputType: {}
outputType: {}
Αυτή η δομή ενημερώνει το Copilot Studio ότι αυτό το θέμα είναι υπεύθυνο για την ικανοποίηση αιτήσεων γνώσεων.
Βήμα 2: Προσθήκη αίτησης HTTP
Προσθέστε μια ενέργεια HTTP που καλεί το τελικό σημείο αναζήτησης.
Παράδειγμα:
- kind: HttpRequestAction
id: searchRequest
url: = "https://search-api.contoso.com/search?q=" & System.KeywordSearchQuery
response: Topic.searchResults
responseSchema:
kind: Record
properties:
query: String
results:
type:
kind: Table
properties:
snippet: String
title: String
url: String
Συνενώστε τη System.KeywordSearchQuery βασική διεύθυνση URL σας, επειδή το Copilot Studio ξαναγράφει αυτόματα το ερώτημα χρήστη με περιβάλλον συνομιλίας πριν από την πραγματοποίηση της αίτησης αναζήτησης. Αυτό το βήμα είναι σημαντικό για τη διατήρηση του συμφραζομένου σε συνομιλίες πολλαπλών γύρων.
Φιλοδώρημα
Αντί για μια μη επεξεργασμένη αίτηση HTTP, μπορείτε να χρησιμοποιήσετε οποιαδήποτε μέθοδο που λαμβάνει αποτελέσματα από ένα τελικό σημείο αναζήτησης, συμπεριλαμβανομένων προσαρμοσμένων συνδέσεων, ενσωματωμένων συνδέσεων όπως αναζήτηση Azure AI ή ροές παραγόντων.
Παράδειγμα επανεγγραφής ερωτημάτων
- Ερώτημα χρήστη 1: "Ποια είναι η επίσημη περίοδος διατήρησης δεδομένων για εγγραφές πελατών;"
- Ερώτημα παρακολούθησης: "Αλλάζει για οικονομικές πληροφορίες;"
- Ερώτημα παρακολούθησης: "Και υπάρχουν εξαιρέσεις;"
Το ερώτημα που ξαναγράφεται γίνεται: "εξαιρέσεις στην πολιτική διατήρησης δεδομένων πελάτη και εξαιρέσεις διατήρησης οικονομικών δεδομένων κανονιστικές εξαιρέσεις πολιτικής, οδηγίες διαχείρισης εξαιρέσεων"
Παρατηρήστε ότι το ερώτημα που ξαναγράφτηκε:
- Επιλύει το σφάλμα "there" στην πολιτική διατήρησης δεδομένων
- Αντλεί συμφραζόμενα και από τους δύο προηγούμενους γύρους: δεδομένα πελατών + οικονομικά δεδομένα
- Προσθέτει γλώσσα πολιτικής για επιχειρήσεις: εξαιρέσεις, εξαιρέσεις, ρυθμιστικές οδηγίες, οδηγίες
Βήμα 3: Μετασχηματισμός αποτελεσμάτων
Μια προσαρμοσμένη προέλευση γνώσεων πρέπει να εξάγει αποτελέσματα με τη μορφή που αναμένει το Copilot Studio. Αυτή η μορφή χρησιμοποιεί:
- Περιεχόμενο: Απόσπασμα ή απόσπασμα.
- ContentLocation (προαιρετικό): Διεύθυνση URL.
- Τίτλος (προαιρετικό): Τίτλος του αποτελέσματος.
Για να ορίσετε τη δομή της απόκρισης HTTP, ρυθμίστε τις παραμέτρους του σχήματος απόκρισης στο περιβάλλον εργασίας χρήστη του Copilot Studio.
- Επιλέξτε Από δείγμα δεδομένων για τον τύπο δεδομένων απόκρισης.
- Επιλέξτε Λήψη σχήματος από το δείγμα JSON.
- Επικολλήστε το δείγμα ωφέλιμου φορτίου JSON για να δημιουργήσετε αυτόματα το σχήμα.
Αυτή η διαδικασία δημιουργεί το σχήμα απόκρισης στο αρχείο YAML.
responseSchema:
kind: Record
properties:
query: String
results:
type:
kind: Table
properties:
snippet: String
title: String
url: String
Στη συνέχεια, μετασχηματίστε την απόκριση του API σας για να ταιριάζει με αυτήν τη μορφή. Αντιστοιχίστε τα μετασχηματισμένο δεδομένα στο System.SearchResults.
Παράδειγμα μετασχηματισμού
kind: AdaptiveDialog
beginDialog:
kind: OnKnowledgeRequested
id: main
intent: {}
actions:
- kind: HttpRequestAction
id: searchRequest
url: ="https://search-api.contoso.com/search?q=" & System.KeywordSearchQuery
response: Topic.searchResults
responseSchema:
kind: Record
properties:
query: String
results:
type:
kind: Table
properties:
snippet: String
title: String
url: String
- kind: SetVariable
id: setSearchResults
variable: System.SearchResults
value: |-
=ForAll(Topic.searchResults.results,
{
Content: snippet,
ContentLocation: url,
Title: title
})
inputType: {}
outputType: {}
Η SetVariable ενέργεια εκτελεί και τις δύο λειτουργίες:
- Η
ForAllσυνάρτηση μετασχηματίζει κάθε αποτέλεσμα αναζήτησης, αντιστοιχίζειsnippetσεContent,urlσεContentLocationκαιtitleσεTitle. - Ο μετασχηματισμένος πίνακας ανατίθεται στο
System.SearchResults, η οποία είναι η μεταβλητή που χρησιμοποιεί το Copilot Studio για τη δημιουργία απαντήσεων.
Εκτιμήσεις
Λάβετε υπόψη αυτά τα βασικά ζητήματα όταν δημιουργείτε προσαρμοσμένες προελεύσεις γνώσεων.
Όρια αποτελεσμάτων
Το Copilot Studio χρησιμοποιεί έως και 15 τμήματα κώδικα για System.SearchResults τη δημιουργία μιας απόκρισης. Εάν το API σας επιστρέφει περισσότερα αποτελέσματα, εξετάστε τα εξής:
- Εφαρμογή βαθμολόγησης συνάφειας για να επιστρέψετε πρώτα τα καλύτερα αποτελέσματα.
- Περιορισμός της απόκρισης API σε 15 αποτελέσματα.
- Ταξινόμηση αποτελεσμάτων κατά συνάφεια πριν από τον μετασχηματισμό.
Πολλά προσαρμοσμένα θέματα γνώσεων
Μπορείτε να δημιουργήσετε πολλά θέματα χρησιμοποιώντας OnKnowledgeRequestedτο και κάθε θέμα μπορεί να ζητήσει διαφορετικά συστήματα παρασκηνίου. Το Copilot Studio τα καλεί όλα ταυτόχρονα όταν χρειάζεται γνώση. Αυτή η προσέγγιση σάς επιτρέπει να υποβάλετε ερωτήματα σε διαφορετικά τελικά σημεία αναζήτησης ή να εφαρμόσετε στρατηγικές επιστροφής.
Προειδοποίηση
Το όριο αποτελεσμάτων ισχύει για όλα τα συνδυασμένα θέματα γνώσης. Εάν το Θέμα Α επιστρέψει 10 αποτελέσματα και το Θέμα Β επιστρέψει 8, χρησιμοποιούνται μόνο τα 15 κορυφαία συνδυασμένα αποτελέσματα.
Προτάσεις
- Ταξινομήστε ή βαθμολογήστε αποτελέσματα πριν από την επιστροφή τους.
- Διατηρήστε τα σχήματα απόκρισης συνεπή.
- Χρησιμοποιήστε σαφή ονόματα και περιγραφές θέματος. Αυτή η πρακτική είναι χρήσιμη όταν μεγάλα σύνολα αποτελεσμάτων απαιτούν φιλτράρισμα συνάφειας.