Δημιουργήστε έναν πράκτορα από ένα πρότυπο, ορίζοντας προαιρετικά τα πεδία του στο ίδιο αίτημα. Χωρίς template ξεκινά κενός· το GET /api/v1/voice/catalog παραθέτει τα πρότυπα μαζί με τις γλώσσες και τις φωνές που δέχεται ένας agent. Τα πρότυπα είναι γραμμένα στα αγγλικά και στα κινεζικά, οπότε για άλλη γλώσσα στείλτε system_prompt και first_message σε αυτήν. Είτε αποθηκεύεται ολόκληρο το αίτημα είτε δεν δημιουργείται agent, οπότε ένα αίτημα που απορρίφθηκε μπορεί να σταλεί ξανά αφού διορθωθεί. Το dashboard_url της απάντησης είναι η σελίδα του agent στον πίνακα ελέγχου, όπου μιλάτε με το πρόχειρο από τον browser. Κάθε πράκτορας λειτουργεί με EvaSay ASR, EvaSay LLM και EvaSay TTS, που επιλέγονται από την EvaSay για κάθε κλήση ανάλογα με τη γλώσσα και το φορτίο και περιλαμβάνονται στην τιμή της κλήσης· δεν υπάρχουν λογαριασμοί άλλων παρόχων να ρυθμιστούν.
curl https://evasay.com/api/v1/voice/agents \
-X POST \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"name": "Front desk",
"language": "en",
"first_message": "Hi, thanks for calling Sunrise Salon. How can I help?",
"system_prompt": "You are the front desk of Sunrise Salon..."
}'
Ενημερώστε οποιοδήποτε από αυτά τα πεδία με PATCH /api/v1/voice/agents/{id}:
| Πεδίο | Σημειώσεις |
|---|---|
name, first_message, system_prompt | Κείμενο |
status | Το published δημοσιεύει το προσχέδιο ως νέα έκδοση· το draft σταματά να δέχεται κλήσεις |
language | Μία από τις 27 γλώσσες, π.χ. en, zh, es, de, ή multi για να ακολουθεί τον καλούντα |
temperature | 0-100 |
max_duration_sec, silence_timeout_sec | Όρια κλήσης |
interruptible, end_call_enabled | Λογικές τιμές |
confirm_details | Λογική τιμή· επαναλαμβάνει αριθμούς και ονόματα και ζητά επιβεβαίωση |
ai_disclosure | Λογική τιμή, προεπιλογή true· πριν από το πρώτο μήνυμά του ο πράκτορας λέει στη γλώσσα της κλήσης ότι ο καλών μιλά με ΤΝ (παραλείπεται όταν το πρώτο μήνυμα το λέει ήδη) |
voicemail_detection | Λογική τιμή· οι εξερχόμενες κλήσεις ακούν πρώτα και τερματίζονται όταν πέσουν σε τηλεφωνητή |
voicemail_message | Αφήνεται σε τηλεφωνητή, μπορεί να χρησιμοποιεί {{variables}}· κανένα για να κλείσει το τηλέφωνο |
transfer_number | Αριθμός μεταφοράς, σε διεθνή μορφή |
transfer_destinations | Έως 9 ακόμη αριθμοί, [{name, number, when}]· ο πράκτορας διαλέγει έναν με βάση το when |
transfer_briefing | Λογική τιμή· όποιος απαντήσει πρώτος ακούει τη σύνοψη της κλήσης από τον πράκτορα |
pronunciations | Έως 100 στοιχεία [{word, say, case_sensitive}]· η φωνή λέει το say αντί για το word |
idle_messages | Έως 3 υπενθυμίσεις που λέγονται διαδοχικά σε έναν σιωπηλό καλούντα πριν λήξει η κλήση |
noise_reduction | Λογική τιμή· ο θόρυβος περιβάλλοντος του καλούντος φιλτράρεται πριν ακουστεί |
recording_enabled | Λογική τιμή· οι κλήσεις ηχογραφούνται σε δύο κανάλια (ο καλών αριστερά, ο πράκτορας δεξιά) |
recording_consent | announce, ask (διατηρείται μόνο αν συμφωνήσει ο καλών) ή none |
recording_notice | Η ειδοποίηση ή η ερώτηση που λέγεται πρώτη· κενό για την ενσωματωμένη στη γλώσσα της κλήσης |
handoffs | Έως 5 στοιχεία [{agent_id, when}]: άλλοι πράκτορες στους οποίους αυτός μπορεί να παραδώσει μια κλήση |
knowledge_base_id | Μία από τις βάσεις γνώσης σας |
vocabulary_id | Ένα από τα λεξιλόγιά σας· οι όροι του αναγνωρίζονται πιο αξιόπιστα όταν τους λέει ο καλών |
voice_id | Ένα αναγνωριστικό ενσωματωμένης φωνής EvaSay ή μία από τις κλωνοποιημένες φωνές σας (clone:…) |
Οι ενσωματωμένες φωνές εξαρτώνται από τη γλώσσα: τα κινεζικά έχουν ming-designed-female-clear και ming-designed-female-warm (γυναικείες), ming-designed-male-clear και ming-designed-male-friendly (ανδρικές), οι υπόλοιπες γλώσσες έχουν F1–F5 (γυναικείες) και M1–M5 (ανδρικές). Μια ενσωματωμένη φωνή που δεν μιλά τη γλώσσα του πράκτορα αντικαθίσταται από τη φωνή του ίδιου φύλου που τη μιλά. Το παλαιότερο όνομα πεδίου tts_voice_id εξακολουθεί να γίνεται δεκτό. Οποιαδήποτε άλλη τιμή του voice_id, ή κλωνοποιημένη φωνή που δεν είναι ακόμη έτοιμη, απορρίπτεται.
Το analysis_config ορίζει τι εξάγεται από κάθε κλήση όταν τελειώσει: summary (προεπιλογή true), summaryLanguage, successCriteria (τι πετυχαίνει μια επιτυχημένη κλήση), fields (έως 20 {name, type, description} προς εξαγωγή, με type ίσο με string, number ή boolean) και scorecard (έως 10 {name, description, weight}, βάρος 1–5). Τα αποτελέσματα βρίσκονται στο analysis της κλήσης και στο webhook call.analyzed.
Η αλλαγή των πεδίων ενός πράκτορα αλλάζει το προσχέδιό του. Οι κλήσεις συνεχίζουν να χρησιμοποιούν τη δημοσιευμένη έκδοση μέχρι να δημοσιεύσετε το προσχέδιο με POST /api/v1/voice/agents/{id}/publish (προαιρετικά με note) ή με status: "published" στο ίδιο PATCH. Κάθε δημοσίευση διατηρεί μια αριθμημένη έκδοση· το published_version στον πράκτορα δείχνει ποια χρησιμοποιούν οι κλήσεις. Μια κλήση μένει στην έκδοση που ήταν ενεργή όταν ξεκίνησε, επομένως η δημοσίευση κατά τη διάρκεια μιας κλήσης δεν την αλλάζει. Οι δοκιμαστικές κλήσεις από τον πίνακα ελέγχου χρησιμοποιούν το προσχέδιο.
Το GET /agents/{id}/versions παραθέτει τις εκδόσεις και το POST /agents/{id}/versions/{version}/restore επαναφέρει: οι νέες κλήσεις χρησιμοποιούν εκείνη την έκδοση και το προσχέδιο γίνεται αυτή. Το όνομα του πράκτορα, η ανάπτυξη, η εμφάνιση του widget και οι ειδοποιήσεις δεν έχουν εκδόσεις και αλλάζουν αμέσως, όπως και τα έγγραφα της βάσης γνώσης του.