Opret en agent ud fra en skabelon, og angiv eventuelt dens felter i samme anmodning. Uden template starter den tom; GET /api/v1/voice/catalog viser skabelonerne samt de sprog og stemmer, en agent kan få. Skabelonerne er skrevet på engelsk og kinesisk, så til et andet sprog sender du system_prompt og first_message på det sprog. Enten gemmes hele anmodningen, eller også oprettes ingen agent, så en afvist anmodning kan sendes igen, når den er rettet. dashboard_url i svaret er agentens side i dashboardet, hvor du kan tale med kladden i browseren. Hver agent kører på EvaSay ASR, EvaSay LLM og EvaSay TTS, som EvaSay vælger for hvert opkald efter sprog og belastning, og som er inkluderet i opkaldsprisen; der er ingen konti hos andre udbydere at indstille.
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..."
}'
Opdater et vilkårligt af disse felter med PATCH /api/v1/voice/agents/{id}:
| Felt | Bemærkninger |
|---|---|
name, first_message, system_prompt | Tekst |
status | published udgiver kladden som en ny version; draft holder op med at tage imod opkald |
language | Et af 27 sprog, f.eks. en, zh, es, de, eller multi for at følge den, der ringer |
temperature | 0-100 |
max_duration_sec, silence_timeout_sec | Opkaldsgrænser |
interruptible, end_call_enabled | Booleske værdier |
confirm_details | Boolesk; læser tal og navne op igen og får dem bekræftet |
ai_disclosure | Boolesk, standard true; før sin første besked siger agenten på opkaldets sprog, at den, der ringer, taler med en AI (udelades, når den første besked allerede siger det) |
voicemail_detection | Boolesk; udgående opkald lytter først og slutter ved en telefonsvarer |
voicemail_message | Efterlades på en telefonsvarer, kan bruge {{variables}}; ingen for at lægge på |
transfer_number | Nummer at stille om til, i internationalt format |
transfer_destinations | Op til 9 numre mere, [{name, number, when}]; agenten vælger et ud fra when |
transfer_briefing | Boolesk; den, der svarer først, hører agentens resumé af opkaldet |
pronunciations | Op til 100 [{word, say, case_sensitive}]; stemmen siger say for word |
idle_messages | Op til 3 påmindelser, der siges efter tur til en tavs opringer, før opkaldet slutter |
noise_reduction | Boolesk; opringerens baggrundsstøj filtreres, før den høres |
recording_enabled | Boolesk; opkald optages i to kanaler (opringeren til venstre, agenten til højre) |
recording_consent | announce, ask (gemmes kun, hvis opringeren siger ja) eller none |
recording_notice | Meddelelsen eller spørgsmålet, der siges først; tomt for den indbyggede tekst på opkaldets sprog |
handoffs | Op til 5 [{agent_id, when}]: andre agenter, som denne må overdrage et opkald til |
knowledge_base_id | En af dine vidensbaser |
vocabulary_id | Et af dine ordforråd; termer i det genkendes mere pålideligt, når opringeren siger dem |
voice_id | Et id for en indbygget EvaSay-stemme eller en af dine klonede stemmer (clone:…) |
Indbyggede stemmer afhænger af sproget: kinesisk har ming-designed-female-clear og ming-designed-female-warm (kvindelige), ming-designed-male-clear og ming-designed-male-friendly (mandlige), de andre sprog har F1–F5 (kvindelige) og M1–M5 (mandlige). En indbygget stemme, der ikke taler agentens sprog, erstattes af stemmen af samme køn, der gør. Det ældre feltnavn tts_voice_id accepteres stadig. Enhver anden værdi for voice_id, eller en klonet stemme der ikke er klar endnu, afvises.
analysis_config bestemmer, hvad der udledes af hvert opkald, når det slutter: summary (standard true), summaryLanguage, successCriteria (hvad et vellykket opkald opnår), fields (op til 20 {name, type, description} at udtrække, hvor type er string, number eller boolean) og scorecard (op til 10 {name, description, weight}, vægt 1–5). Resultaterne findes i opkaldets analysis og i webhooken call.analyzed.
Når du ændrer en agents felter, ændrer du dens kladde. Opkald bliver ved med at bruge den udgivne version, indtil du udgiver kladden med POST /api/v1/voice/agents/{id}/publish (eventuelt med en note) eller med status: "published" i samme PATCH. Hver udgivelse gemmer en nummereret version; published_version i agenten fortæller, hvilken opkaldene bruger. Et opkald bliver på den version, der var aktiv, da det begyndte, så udgivelse under et opkald ændrer det ikke. Testopkald fra dashboardet bruger kladden.
GET /agents/{id}/versions viser versionerne, og POST /agents/{id}/versions/{version}/restore ruller tilbage: nye opkald bruger den version, og kladden bliver den. Agentens navn, udrulning, widgetens udseende og notifikationer har ikke versioner og ændres med det samme, ligesom dokumenterne i dens vidensbase.