Skapa en agent från en mall och ange vid behov dess fält i samma anrop. Utan template börjar den tom; GET /api/v1/voice/catalog listar mallarna och de språk och röster en agent kan ha. Mallarna är skrivna på engelska och kinesiska, så för ett annat språk skickar du system_prompt och first_message på det språket. Antingen sparas hela begäran eller så skapas ingen agent, så en avvisad begäran kan skickas igen när den är rättad. dashboard_url i svaret är agentens sida i instrumentpanelen, där du kan prata med utkastet i webbläsaren. Varje agent körs på EvaSay ASR, EvaSay LLM och EvaSay TTS, som EvaSay väljer för varje samtal efter språk och belastning och som ingår i samtalspriset; det finns inga konton hos andra leverantörer att ställa in.
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..."
}'
Uppdatera vilket som helst av dessa fält med PATCH /api/v1/voice/agents/{id}:
| Fält | Anmärkningar |
|---|---|
name, first_message, system_prompt | Text |
status | published publicerar utkastet som en ny version; draft slutar ta emot samtal |
language | Ett av 27 språk, t.ex. en, zh, es, de, eller multi för att följa den som ringer |
temperature | 0-100 |
max_duration_sec, silence_timeout_sec | Samtalsgränser |
interruptible, end_call_enabled | Booleska värden |
confirm_details | Booleskt; läser upp siffror och namn igen och ber om bekräftelse |
ai_disclosure | Booleskt, standard true; före sitt första meddelande säger agenten på samtalets språk att den som ringer talar med en AI (utelämnas när det första meddelandet redan säger det) |
voicemail_detection | Booleskt; utgående samtal lyssnar först och avslutas vid en röstbrevlåda |
voicemail_message | Lämnas på en röstbrevlåda, kan använda {{variables}}; inget för att lägga på |
transfer_number | Nummer att koppla vidare till, i internationellt format |
transfer_destinations | Upp till 9 nummer till, [{name, number, when}]; agenten väljer ett utifrån when |
transfer_briefing | Booleskt; den som svarar först hör agentens sammanfattning av samtalet |
pronunciations | Upp till 100 [{word, say, case_sensitive}]; rösten säger say för word |
idle_messages | Upp till 3 påminnelser som sägs i tur och ordning till en tyst uppringare innan samtalet avslutas |
noise_reduction | Booleskt; uppringarens bakgrundsbrus filtreras innan det hörs |
recording_enabled | Booleskt; samtal spelas in i två kanaler (uppringaren till vänster, agenten till höger) |
recording_consent | announce, ask (sparas bara om uppringaren går med på det) eller none |
recording_notice | Meddelandet eller frågan som sägs först; tomt för det inbyggda på samtalets språk |
handoffs | Upp till 5 [{agent_id, when}]: andra agenter som den här får lämna över ett samtal till |
knowledge_base_id | En av dina kunskapsbaser |
vocabulary_id | Ett av dina ordförråd; termer i det känns igen säkrare när uppringaren säger dem |
voice_id | Ett id för en inbyggd EvaSay-röst, eller en av dina klonade röster (clone:…) |
Inbyggda röster beror på språket: kinesiska har ming-designed-female-clear och ming-designed-female-warm (kvinnliga), ming-designed-male-clear och ming-designed-male-friendly (manliga), de övriga språken har F1–F5 (kvinnliga) och M1–M5 (manliga). En inbyggd röst som inte talar agentens språk byts mot rösten av samma kön som gör det. Det äldre fältnamnet tts_voice_id accepteras fortfarande. Alla andra värden för voice_id, och klonade röster som inte är klara än, avvisas.
analysis_config anger vad som tas fram ur varje samtal när det är slut: summary (standard true), summaryLanguage, successCriteria (vad ett lyckat samtal uppnår), fields (upp till 20 {name, type, description} att extrahera, där type är string, number eller boolean) och scorecard (upp till 10 {name, description, weight}, vikt 1–5). Resultaten finns i samtalets analysis och i webhooken call.analyzed.
Att ändra en agents fält ändrar dess utkast. Samtalen fortsätter använda den publicerade versionen tills du publicerar utkastet med POST /api/v1/voice/agents/{id}/publish (gärna med en note), eller med status: "published" i samma PATCH. Varje publicering sparar en numrerad version; published_version i agenten visar vilken samtalen använder. Ett samtal stannar på den version som var aktiv när det började, så att publicera under ett samtal ändrar det inte. Testsamtal från panelen använder utkastet.
GET /agents/{id}/versions listar versionerna, och POST /agents/{id}/versions/{version}/restore rullar tillbaka: nya samtal använder den versionen och utkastet blir den. Agentens namn, driftsättning, widgetens utseende och aviseringar har inga versioner och ändras direkt, liksom dokumenten i dess kunskapsbas.