Opprett en agent fra en mal, og angi eventuelt feltene i samme forespørsel. Uten template starter den tom; GET /api/v1/voice/catalog viser malene og språkene og stemmene en agent kan få. Malene er skrevet på engelsk og kinesisk, så for et annet språk sender du system_prompt og first_message på det språket. Enten lagres hele forespørselen, eller så opprettes ingen agent, så en avvist forespørsel kan sendes på nytt når den er rettet. dashboard_url i svaret er agentens side i dashbordet, der du kan snakke med utkastet i nettleseren. Hver agent kjører på EvaSay ASR, EvaSay LLM og EvaSay TTS, som EvaSay velger for hvert anrop etter språk og belastning, og som er inkludert i samtaleprisen; det finnes ingen kontoer hos andre leverandører å stille inn.
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..."
}'
Oppdater et hvilket som helst av disse feltene med PATCH /api/v1/voice/agents/{id}:
| Felt | Merknader |
|---|---|
name, first_message, system_prompt | Tekst |
status | published publiserer utkastet som en ny versjon; draft slutter å ta imot samtaler |
language | Ett av 27 språk, f.eks. en, zh, es, de, eller multi for å følge den som ringer |
temperature | 0-100 |
max_duration_sec, silence_timeout_sec | Samtalegrenser |
interruptible, end_call_enabled | Boolske verdier |
confirm_details | Boolsk; leser opp tall og navn igjen og får dem bekreftet |
ai_disclosure | Boolsk, standard true; før den første meldingen sier agenten på samtalens språk at den som ringer, snakker med en AI (utelates når den første meldingen allerede sier det) |
voicemail_detection | Boolsk; utgående samtaler lytter først og avsluttes ved en telefonsvarer |
voicemail_message | Legges igjen på en telefonsvarer, kan bruke {{variables}}; ingen for å legge på |
transfer_number | Nummer å stille om til, i internasjonalt format |
transfer_destinations | Opptil 9 numre til, [{name, number, when}]; agenten velger ett ut fra when |
transfer_briefing | Boolsk; den som svarer først, hører agentens sammendrag av samtalen |
pronunciations | Opptil 100 [{word, say, case_sensitive}]; stemmen sier say for word |
idle_messages | Opptil 3 påminnelser som sies etter tur til en taus innringer før samtalen avsluttes |
noise_reduction | Boolsk; innringerens bakgrunnsstøy filtreres før den høres |
recording_enabled | Boolsk; samtaler tas opp i to kanaler (innringeren til venstre, agenten til høyre) |
recording_consent | announce, ask (lagres bare hvis innringeren sier ja) eller none |
recording_notice | Meldingen eller spørsmålet som sies først; tomt for den innebygde teksten på samtalens språk |
handoffs | Opptil 5 [{agent_id, when}]: andre agenter som denne kan overlate en samtale til |
knowledge_base_id | En av kunnskapsbasene dine |
vocabulary_id | Et av ordforrådene dine; termene i det gjenkjennes sikrere når innringeren sier dem |
voice_id | En id for en innebygd EvaSay-stemme, eller en av de klonede stemmene dine (clone:…) |
Innebygde stemmer avhenger av språket: kinesisk har ming-designed-female-clear og ming-designed-female-warm (kvinnelige), ming-designed-male-clear og ming-designed-male-friendly (mannlige), de andre språkene har F1–F5 (kvinnelige) og M1–M5 (mannlige). En innebygd stemme som ikke snakker agentens språk, byttes ut med stemmen av samme kjønn som gjør det. Det eldre feltnavnet tts_voice_id godtas fortsatt. Enhver annen verdi for voice_id, eller en klonet stemme som ikke er klar ennå, avvises.
analysis_config bestemmer hva som utledes av hver samtale når den er slutt: summary (standard true), summaryLanguage, successCriteria (hva en vellykket samtale oppnår), fields (opptil 20 {name, type, description} å hente ut, der type er string, number eller boolean) og scorecard (opptil 10 {name, description, weight}, vekt 1–5). Resultatene ligger i samtalens analysis og i webhooken call.analyzed.
Når du endrer en agents felt, endrer du utkastet. Samtaler fortsetter å bruke den publiserte versjonen til du publiserer utkastet med POST /api/v1/voice/agents/{id}/publish (eventuelt med en note), eller med status: "published" i samme PATCH. Hver publisering lagrer en nummerert versjon; published_version i agenten forteller hvilken samtalene bruker. En samtale blir på versjonen som var aktiv da den startet, så publisering midt i en samtale endrer den ikke. Testsamtaler fra panelet bruker utkastet.
GET /agents/{id}/versions lister versjonene, og POST /agents/{id}/versions/{version}/restore ruller tilbake: nye samtaler bruker den versjonen, og utkastet blir den. Agentens navn, utrulling, widgetens utseende og varsler har ikke versjoner og endres umiddelbart, det samme gjør dokumentene i kunnskapsbasen.