Gesprekseinde detectie
Twee onafhankelijke mechanismen om een gesprek te beëindigen vanuit de agentkant: het end_call-hulpmiddel voor de beslissing van het model, en deterministische trigger_phrases en stilteherkenning.
Een Audact-spraakagent kan een gesprek zelf beëindigen. Er zijn twee onafhankelijke
mechanismen, die op verschillende plaatsen worden geconfigureerd. Beide convergeren op
dezelfde afsluiting-choreografie (openbaarmakingspoort → idempotentie → optionele
afsluitzin → ophangen → bewijsmateriaal + call_end_detected-webhook), zodat een
agent-geïnitieerd ophangen exact dezelfde neveneffecten heeft, ongeacht hoe het werd
geactiveerd.
1. Het end_call-hulpmiddel (beslissing van het model)
Wanneer u een end_call-hulpmiddel aan een agent koppelt, beschikt het model over een
functie die het kan aanroepen wanneer het oordeelt dat het gesprek is afgerond (de beller
heeft gedag gezegd, de taak is voltooid, er is niets meer te doen).
- Wat het model ziet. Een function-calling-hulpmiddel waarvan de naam de naam is die u
hebt opgegeven bij het koppelen — het heet niet automatisch
end_callofhangup.end_call(provider) enhangup(provider-hulpmiddel) zijn Audact-interne identificatoren die het hulpmiddel aan het ophanggedrag koppelen; het LLM ziet alleen de geconfigureerdenameen de bijbehorende beschrijving. Als uw agentprompt het hulpmiddel bij naam noemt, gebruik dan de naam die u hebt geconfigureerd. - Argumenten. Het hulpmiddel accepteert één optioneel vrij-tekstveld
reason(een eigen notitie van het model, bijv. "beller heeft gedag gezegd"); dit is nooit verplicht en het model wordt aangestuurd om er nooit naar te vragen aan de beller. - Wanneer het wordt geactiveerd. Volledig naar eigen inzicht van het model. De beschrijving van het hulpmiddel instrueert het om het alleen aan te roepen wanneer het gesprek klaar is en nooit voordat de verplichte openbaarmaking is gedaan — de openbaarmakingspoort hieronder handhaaft dit ongeacht wat het model doet.
- Dit hulpmiddel is onafhankelijk van het
end_call-configuratieobject hieronder: het werkt ook zonder geconfigureerdetrigger_phrases.
2. De end_call-configuratie (deterministische detectie)
Het end_call-object in de configuratie van een agent beëindigt het gesprek zonder het
model, door de spraak van de beller te bewaken:
trigger_phrases— afscheidsfrases die worden herkend aan het einde van de uiting van de beller (terminale positie). "dag" aan het einde van een beurt beëindigt het gesprek; "dag en nog één ding…" niet. Herkenning is hoofdletterongevoelig, negeert afsluitende leestekens en heeft een fallback met verwijderde diakritische tekens.silence— beëindigt het gesprek nadat de beller stil is geworden, met maximaalmax_repromptsherhalingen perwindow_msstilte.
Minimale configuratie om het in te schakelen
Een puur niet-leeg end_call-object is niet voldoende. Deterministische detectie doet
alleen iets wanneer:
trigger_phrasesminstens één frase heeft voor de taal van het gesprek (schakelt afscheidsfrase-detectie in), en/ofsilence.window_msgroter is dan 0 (schakelt de stilte-time-out in).
closing_line alleen doet niets — het wordt alleen uitgesproken zodra een trigger (of
het end_call-hulpmiddel) wordt geactiveerd. Het nul/leeg object betekent dat het
deterministische beleid is uitgeschakeld.
Aanbevolen trigger_phrases voor een receptionist (nl): dag, doei, tot ziens,
dat is alles, dat was het, dat was alles, verder niets, nee dat was het,
bedankt dag.
3. Taalsleutels
Alle taalgebonden maps in end_call (trigger_phrases, closing_line,
silence.reprompt_text) gebruiken tolerante sleutelresolutie:
- exacte overeenkomst op de taaltag van het gesprek (
en-GB), dan - overeenkomst op primaire subtag (
en-GB↔en↔en-IE), dan - als de map precies één item heeft, wordt dat item gebruikt ongeacht de taal.
Gebruik dus en — u hebt geen aparte en-GB/en-IE-sleutels nodig. De voorbeelden
in deze specificatie gebruiken en en nl om die reden.
4. closing_line versus het eigen afscheid van het model
closing_line is een vaste zin die de agent uitspreekt naast wat het model al heeft
gezegd — een aparte gescripte TTS-zin, geen vervanging. Als uw agentprompt al een afscheid
scrijft (bijv. "Bedankt voor uw gesprek. Dag.") en u een closing_line instelt, hoort
de beller twee afscheidswoorden.
Kies één optie:
- laat
closing_lineleeg en laat het model afscheid nemen, of - stel
closing_linein en instrueer de prompt om geen eigen afscheid te zeggen.
5. Timing van het ophangen
- Openbaarmakingspoort. Beëindiging wordt tegengehouden totdat de verplichte openbaarmaking
voor het gesprek is gedaan (de enige uitzondering is voicemail). Totdat die is gedaan, is
een aanroep van het
end_call-hulpmiddel of een triggerfrase een no-op en gaat het gesprek door. - Idempotentie. Alleen de eerste beëindiging voor een gesprek wordt doorgezet; dubbele of gelijktijdige triggers (het model roept het hulpmiddel tweemaal aan, een frase wordt recht na het hulpmiddel geactiveerd) zijn no-ops.
- Afsluitzin wordt afgewacht. Wanneer een
closing_lineis ingesteld, wacht Audact tot het uitspelen is voltooid en houdt daarna een korte extra draintijd aan voordat de mediaruimte wordt verwijderd, zodat de zin niet halverwege wordt afgebroken. Eenclosing_lineis dus de betrouwbare manier om een volledig uitgesproken afscheid vóór het ophangen te garanderen. - Zonder
closing_lineverloopt de afsluiting zodra de trigger wordt geactiveerd; de eigen laatste zin van het model is gewoon gespreksspeech en wordt niet speciaal afgewacht, dus als u afhankelijk bent van het gescripte afscheid van het model, zorg dan dat het klaar is vóór de hulpmiddelaanroep — of gebruikclosing_linein plaats daarvan.
