hume 0.13.5 → 0.13.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/.mock/definition/api.yml +12 -0
  2. package/.mock/definition/empathic-voice/__package__.yml +2976 -0
  3. package/.mock/definition/empathic-voice/chat.yml +175 -0
  4. package/.mock/definition/empathic-voice/chatGroups.yml +627 -0
  5. package/.mock/definition/empathic-voice/chatWebhooks.yml +30 -0
  6. package/.mock/definition/empathic-voice/chats.yml +506 -0
  7. package/.mock/definition/empathic-voice/configs.yml +842 -0
  8. package/.mock/definition/empathic-voice/prompts.yml +558 -0
  9. package/.mock/definition/empathic-voice/tools.yml +626 -0
  10. package/.mock/definition/expression-measurement/__package__.yml +1 -0
  11. package/.mock/definition/expression-measurement/batch/__package__.yml +1803 -0
  12. package/.mock/definition/expression-measurement/stream/__package__.yml +113 -0
  13. package/.mock/definition/expression-measurement/stream/stream.yml +438 -0
  14. package/.mock/definition/tts/__package__.yml +713 -0
  15. package/.mock/definition/tts/streamInput.yml +84 -0
  16. package/.mock/definition/tts/voices.yml +143 -0
  17. package/.mock/fern.config.json +4 -0
  18. package/Client.js +10 -3
  19. package/api/resources/empathicVoice/types/ReturnConfig.d.ts +2 -2
  20. package/api/resources/index.d.ts +1 -1
  21. package/api/resources/index.js +2 -2
  22. package/dist/Client.js +10 -3
  23. package/dist/api/resources/empathicVoice/types/ReturnConfig.d.ts +2 -2
  24. package/dist/api/resources/index.d.ts +1 -1
  25. package/dist/api/resources/index.js +2 -2
  26. package/dist/serialization/resources/empathicVoice/types/ReturnConfig.d.ts +1 -1
  27. package/dist/serialization/resources/empathicVoice/types/ReturnConfig.js +1 -1
  28. package/dist/serialization/resources/index.d.ts +1 -1
  29. package/dist/serialization/resources/index.js +2 -2
  30. package/dist/version.d.ts +1 -1
  31. package/dist/version.js +1 -1
  32. package/package.json +1 -1
  33. package/reference.md +702 -702
  34. package/serialization/resources/empathicVoice/types/ReturnConfig.d.ts +1 -1
  35. package/serialization/resources/empathicVoice/types/ReturnConfig.js +1 -1
  36. package/serialization/resources/index.d.ts +1 -1
  37. package/serialization/resources/index.js +2 -2
  38. package/version.d.ts +1 -1
  39. package/version.js +1 -1
@@ -0,0 +1,2976 @@
1
+ errors:
2
+ BadRequestError:
3
+ status-code: 400
4
+ type: ErrorResponse
5
+ docs: Bad Request
6
+ examples:
7
+ - value: {}
8
+ types:
9
+ AssistantInput:
10
+ docs: When provided, the input is spoken by EVI.
11
+ properties:
12
+ type:
13
+ type: literal<"assistant_input">
14
+ docs: >-
15
+ The type of message sent through the socket; must be `assistant_input`
16
+ for our server to correctly identify and process it as an Assistant
17
+ Input message.
18
+ custom_session_id:
19
+ type: optional<string>
20
+ docs: >-
21
+ Used to manage conversational state, correlate frontend and backend
22
+ data, and persist conversations across EVI sessions.
23
+ text:
24
+ type: string
25
+ docs: >-
26
+ Assistant text to synthesize into spoken audio and insert into the
27
+ conversation.
28
+
29
+
30
+ EVI uses this text to generate spoken audio using our proprietary
31
+ expressive text-to-speech model. Our model adds appropriate emotional
32
+ inflections and tones to the text based on the user's expressions and
33
+ the context of the conversation. The synthesized audio is streamed
34
+ back to the user as an [Assistant
35
+ Message](/reference/speech-to-speech-evi/chat#receive.AssistantMessage).
36
+ source:
37
+ openapi: evi-asyncapi.json
38
+ AudioConfiguration:
39
+ properties:
40
+ encoding:
41
+ type: Encoding
42
+ docs: Encoding format of the audio input, such as `linear16`.
43
+ channels:
44
+ type: integer
45
+ docs: Number of audio channels.
46
+ sample_rate:
47
+ type: integer
48
+ docs: >-
49
+ Audio sample rate. Number of samples per second in the audio input,
50
+ measured in Hertz.
51
+ source:
52
+ openapi: evi-asyncapi.json
53
+ AudioInput:
54
+ docs: When provided, the input is audio.
55
+ properties:
56
+ type:
57
+ type: literal<"audio_input">
58
+ docs: >-
59
+ The type of message sent through the socket; must be `audio_input` for
60
+ our server to correctly identify and process it as an Audio Input
61
+ message.
62
+
63
+
64
+ This message is used for sending audio input data to EVI for
65
+ processing and expression measurement. Audio data should be sent as a
66
+ continuous stream, encoded in Base64.
67
+ custom_session_id:
68
+ type: optional<string>
69
+ docs: >-
70
+ Used to manage conversational state, correlate frontend and backend
71
+ data, and persist conversations across EVI sessions.
72
+ data:
73
+ type: string
74
+ docs: >-
75
+ Base64 encoded audio input to insert into the conversation.
76
+
77
+
78
+ The content of an Audio Input message is treated as the user's speech
79
+ to EVI and must be streamed continuously. Pre-recorded audio files are
80
+ not supported.
81
+
82
+
83
+ For optimal transcription quality, the audio data should be
84
+ transmitted in small chunks.
85
+
86
+
87
+ Hume recommends streaming audio with a buffer window of 20
88
+ milliseconds (ms), or 100 milliseconds (ms) for web applications.
89
+ source:
90
+ openapi: evi-asyncapi.json
91
+ BuiltInTool:
92
+ enum:
93
+ - web_search
94
+ - hang_up
95
+ docs: >-
96
+ Name of the built-in tool. Set to `web_search` to equip EVI with the
97
+ built-in Web Search tool.
98
+ source:
99
+ openapi: evi-asyncapi.json
100
+ BuiltinToolConfig:
101
+ properties:
102
+ name:
103
+ type: BuiltInTool
104
+ fallback_content:
105
+ type: optional<string>
106
+ docs: >-
107
+ Optional text passed to the supplemental LLM if the tool call fails.
108
+ The LLM then uses this text to generate a response back to the user,
109
+ ensuring continuity in the conversation.
110
+ source:
111
+ openapi: evi-asyncapi.json
112
+ Context:
113
+ properties:
114
+ type:
115
+ type: optional<ContextType>
116
+ docs: >-
117
+ The persistence level of the injected context. Specifies how long the
118
+ injected context will remain active in the session.
119
+
120
+
121
+ - **Temporary**: Context that is only applied to the following
122
+ assistant response.
123
+
124
+
125
+ - **Persistent**: Context that is applied to all subsequent assistant
126
+ responses for the remainder of the Chat.
127
+ text:
128
+ type: string
129
+ docs: >-
130
+ The context to be injected into the conversation. Helps inform the
131
+ LLM's response by providing relevant information about the ongoing
132
+ conversation.
133
+
134
+
135
+ This text will be appended to the end of
136
+ [user_messages](/reference/speech-to-speech-evi/chat#receive.UserMessage.message.content)
137
+ based on the chosen persistence level. For example, if you want to
138
+ remind EVI of its role as a helpful weather assistant, the context you
139
+ insert will be appended to the end of user messages as `{Context: You
140
+ are a helpful weather assistant}`.
141
+ source:
142
+ openapi: evi-asyncapi.json
143
+ ContextType:
144
+ enum:
145
+ - persistent
146
+ - temporary
147
+ source:
148
+ openapi: evi-asyncapi.json
149
+ Encoding:
150
+ type: literal<"linear16">
151
+ ErrorLevel:
152
+ type: literal<"warn">
153
+ PauseAssistantMessage:
154
+ docs: >-
155
+ Pause responses from EVI. Chat history is still saved and sent after
156
+ resuming.
157
+ properties:
158
+ type:
159
+ type: literal<"pause_assistant_message">
160
+ docs: >-
161
+ The type of message sent through the socket; must be
162
+ `pause_assistant_message` for our server to correctly identify and
163
+ process it as a Pause Assistant message.
164
+
165
+
166
+ Once this message is sent, EVI will not respond until a [Resume
167
+ Assistant
168
+ message](/reference/speech-to-speech-evi/chat#send.ResumeAssistantMessage)
169
+ is sent. When paused, EVI won't respond, but transcriptions of your
170
+ audio inputs will still be recorded.
171
+ custom_session_id:
172
+ type: optional<string>
173
+ docs: >-
174
+ Used to manage conversational state, correlate frontend and backend
175
+ data, and persist conversations across EVI sessions.
176
+ source:
177
+ openapi: evi-asyncapi.json
178
+ ResumeAssistantMessage:
179
+ docs: >-
180
+ Resume responses from EVI. Chat history sent while paused will now be
181
+ sent.
182
+ properties:
183
+ type:
184
+ type: literal<"resume_assistant_message">
185
+ docs: >-
186
+ The type of message sent through the socket; must be
187
+ `resume_assistant_message` for our server to correctly identify and
188
+ process it as a Resume Assistant message.
189
+
190
+
191
+ Upon resuming, if any audio input was sent during the pause, EVI will
192
+ retain context from all messages sent but only respond to the last
193
+ user message. (e.g., If you ask EVI two questions while paused and
194
+ then send a `resume_assistant_message`, EVI will respond to the second
195
+ question and have added the first question to its conversation
196
+ context.)
197
+ custom_session_id:
198
+ type: optional<string>
199
+ docs: >-
200
+ Used to manage conversational state, correlate frontend and backend
201
+ data, and persist conversations across EVI sessions.
202
+ source:
203
+ openapi: evi-asyncapi.json
204
+ SessionSettingsVariablesValue:
205
+ discriminated: false
206
+ union:
207
+ - string
208
+ - double
209
+ - boolean
210
+ source:
211
+ openapi: evi-asyncapi.json
212
+ inline: true
213
+ SessionSettings:
214
+ docs: Settings for this chat session.
215
+ properties:
216
+ type:
217
+ type: literal<"session_settings">
218
+ docs: >-
219
+ The type of message sent through the socket; must be
220
+ `session_settings` for our server to correctly identify and process it
221
+ as a Session Settings message.
222
+
223
+
224
+ Session settings are temporary and apply only to the current Chat
225
+ session. These settings can be adjusted dynamically based on the
226
+ requirements of each session to ensure optimal performance and user
227
+ experience.
228
+
229
+
230
+ For more information, please refer to the [Session Settings
231
+ guide](/docs/speech-to-speech-evi/configuration/session-settings).
232
+ custom_session_id:
233
+ type: optional<string>
234
+ docs: >-
235
+ Unique identifier for the session. Used to manage conversational
236
+ state, correlate frontend and backend data, and persist conversations
237
+ across EVI sessions.
238
+
239
+
240
+ If included, the response sent from Hume to your backend will include
241
+ this ID. This allows you to correlate frontend users with their
242
+ incoming messages.
243
+
244
+
245
+ It is recommended to pass a `custom_session_id` if you are using a
246
+ Custom Language Model. Please see our guide to [using a custom
247
+ language
248
+ model](/docs/speech-to-speech-evi/guides/custom-language-model) with
249
+ EVI to learn more.
250
+ system_prompt:
251
+ type: optional<string>
252
+ docs: >-
253
+ Instructions used to shape EVI's behavior, responses, and style for
254
+ the session.
255
+
256
+
257
+ When included in a Session Settings message, the provided Prompt
258
+ overrides the existing one specified in the EVI configuration. If no
259
+ Prompt was defined in the configuration, this Prompt will be the one
260
+ used for the session.
261
+
262
+
263
+ You can use the Prompt to define a specific goal or role for EVI,
264
+ specifying how it should act or what it should focus on during the
265
+ conversation. For example, EVI can be instructed to act as a customer
266
+ support representative, a fitness coach, or a travel advisor, each
267
+ with its own set of behaviors and response styles.
268
+
269
+
270
+ For help writing a system prompt, see our [Prompting
271
+ Guide](/docs/speech-to-speech-evi/guides/prompting).
272
+ context:
273
+ type: optional<Context>
274
+ docs: >-
275
+ Field for injecting additional context into the conversation, which is
276
+ appended to the end of user messages for the session.
277
+
278
+
279
+ When included in a Session Settings message, the provided context can
280
+ be used to remind the LLM of its role in every user message, prevent
281
+ it from forgetting important details, or add new relevant information
282
+ to the conversation.
283
+
284
+
285
+ Set to `null` to clear injected context.
286
+ audio:
287
+ type: optional<AudioConfiguration>
288
+ docs: >-
289
+ Configuration details for the audio input used during the session.
290
+ Ensures the audio is being correctly set up for processing.
291
+
292
+
293
+ This optional field is only required when the audio input is encoded
294
+ in PCM Linear 16 (16-bit, little-endian, signed PCM WAV data). For
295
+ detailed instructions on how to configure session settings for PCM
296
+ Linear 16 audio, please refer to the [Session Settings
297
+ guide](/docs/speech-to-speech-evi/configuration/session-settings).
298
+ language_model_api_key:
299
+ type: optional<string>
300
+ docs: >-
301
+ Third party API key for the supplemental language model.
302
+
303
+
304
+ When provided, EVI will use this key instead of Hume's API key for the
305
+ supplemental LLM. This allows you to bypass rate limits and utilize
306
+ your own API key as needed.
307
+ tools:
308
+ type: optional<list<Tool>>
309
+ docs: >-
310
+ List of user-defined tools to enable for the session.
311
+
312
+
313
+ Tools are resources used by EVI to perform various tasks, such as
314
+ searching the web or calling external APIs. Built-in tools, like web
315
+ search, are natively integrated, while user-defined tools are created
316
+ and invoked by the user. To learn more, see our [Tool Use
317
+ Guide](/docs/speech-to-speech-evi/features/tool-use).
318
+ builtin_tools:
319
+ type: optional<list<BuiltinToolConfig>>
320
+ docs: >-
321
+ List of built-in tools to enable for the session.
322
+
323
+
324
+ Tools are resources used by EVI to perform various tasks, such as
325
+ searching the web or calling external APIs. Built-in tools, like web
326
+ search, are natively integrated, while user-defined tools are created
327
+ and invoked by the user. To learn more, see our [Tool Use
328
+ Guide](/docs/speech-to-speech-evi/features/tool-use).
329
+
330
+
331
+ Currently, the only built-in tool Hume provides is **Web Search**.
332
+ When enabled, Web Search equips EVI with the ability to search the web
333
+ for up-to-date information.
334
+ metadata:
335
+ type: optional<map<string, unknown>>
336
+ variables:
337
+ type: optional<map<string, SessionSettingsVariablesValue>>
338
+ docs: >-
339
+ This field allows you to assign values to dynamic variables referenced
340
+ in your system prompt.
341
+
342
+
343
+ Each key represents the variable name, and the corresponding value is
344
+ the specific content you wish to assign to that variable within the
345
+ session. While the values for variables can be strings, numbers, or
346
+ booleans, the value will ultimately be converted to a string when
347
+ injected into your system prompt.
348
+
349
+
350
+ Using this field, you can personalize responses based on
351
+ session-specific details. For more guidance, see our [guide on using
352
+ dynamic
353
+ variables](/docs/speech-to-speech-evi/features/dynamic-variables).
354
+ voice_id:
355
+ type: optional<string>
356
+ docs: >-
357
+ Allows you to change the voice during an active chat. Updating the
358
+ voice does not affect chat context or conversation history.
359
+ source:
360
+ openapi: evi-asyncapi.json
361
+ Tool:
362
+ properties:
363
+ type:
364
+ type: ToolType
365
+ docs: Type of tool. Set to `function` for user-defined tools.
366
+ name:
367
+ type: string
368
+ docs: Name of the user-defined tool to be enabled.
369
+ parameters:
370
+ type: string
371
+ docs: >-
372
+ Parameters of the tool. Is a stringified JSON schema.
373
+
374
+
375
+ These parameters define the inputs needed for the tool's execution,
376
+ including the expected data type and description for each input field.
377
+ Structured as a JSON schema, this format ensures the tool receives
378
+ data in the expected format.
379
+ description:
380
+ type: optional<string>
381
+ docs: >-
382
+ An optional description of what the tool does, used by the
383
+ supplemental LLM to choose when and how to call the function.
384
+ fallback_content:
385
+ type: optional<string>
386
+ docs: >-
387
+ Optional text passed to the supplemental LLM if the tool call fails.
388
+ The LLM then uses this text to generate a response back to the user,
389
+ ensuring continuity in the conversation.
390
+ source:
391
+ openapi: evi-asyncapi.json
392
+ ToolErrorMessage:
393
+ docs: When provided, the output is a function call error.
394
+ properties:
395
+ type:
396
+ type: literal<"tool_error">
397
+ docs: >-
398
+ The type of message sent through the socket; for a Tool Error message,
399
+ this must be `tool_error`.
400
+
401
+
402
+ Upon receiving a [Tool Call
403
+ message](/reference/speech-to-speech-evi/chat#receive.ToolCallMessage)
404
+ and failing to invoke the function, this message is sent to notify EVI
405
+ of the tool's failure.
406
+ custom_session_id:
407
+ type: optional<string>
408
+ docs: >-
409
+ Used to manage conversational state, correlate frontend and backend
410
+ data, and persist conversations across EVI sessions.
411
+ tool_type:
412
+ type: optional<ToolType>
413
+ docs: >-
414
+ Type of tool called. Either `builtin` for natively implemented tools,
415
+ like web search, or `function` for user-defined tools.
416
+ tool_call_id:
417
+ type: string
418
+ docs: >-
419
+ The unique identifier for a specific tool call instance.
420
+
421
+
422
+ This ID is used to track the request and response of a particular tool
423
+ invocation, ensuring that the Tool Error message is linked to the
424
+ appropriate tool call request. The specified `tool_call_id` must match
425
+ the one received in the [Tool Call
426
+ message](/reference/speech-to-speech-evi/chat#receive.ToolCallMessage).
427
+ content:
428
+ type: optional<string>
429
+ docs: >-
430
+ Optional text passed to the supplemental LLM in place of the tool call
431
+ result. The LLM then uses this text to generate a response back to the
432
+ user, ensuring continuity in the conversation if the tool errors.
433
+ error:
434
+ type: string
435
+ docs: Error message from the tool call, not exposed to the LLM or user.
436
+ code:
437
+ type: optional<string>
438
+ docs: Error code. Identifies the type of error encountered.
439
+ level:
440
+ type: optional<ErrorLevel>
441
+ docs: >-
442
+ Indicates the severity of an error; for a Tool Error message, this
443
+ must be `warn` to signal an unexpected event.
444
+ source:
445
+ openapi: evi-asyncapi.json
446
+ ToolResponseMessage:
447
+ docs: When provided, the output is a function call response.
448
+ properties:
449
+ type:
450
+ type: literal<"tool_response">
451
+ docs: >-
452
+ The type of message sent through the socket; for a Tool Response
453
+ message, this must be `tool_response`.
454
+
455
+
456
+ Upon receiving a [Tool Call
457
+ message](/reference/speech-to-speech-evi/chat#receive.ToolCallMessage)
458
+ and successfully invoking the function, this message is sent to convey
459
+ the result of the function call back to EVI.
460
+ custom_session_id:
461
+ type: optional<string>
462
+ docs: >-
463
+ Used to manage conversational state, correlate frontend and backend
464
+ data, and persist conversations across EVI sessions.
465
+ tool_call_id:
466
+ type: string
467
+ docs: >-
468
+ The unique identifier for a specific tool call instance.
469
+
470
+
471
+ This ID is used to track the request and response of a particular tool
472
+ invocation, ensuring that the correct response is linked to the
473
+ appropriate request. The specified `tool_call_id` must match the one
474
+ received in the [Tool Call
475
+ message](/reference/speech-to-speech-evi/chat#receive.ToolCallMessage.tool_call_id).
476
+ content:
477
+ type: string
478
+ docs: >-
479
+ Return value of the tool call. Contains the output generated by the
480
+ tool to pass back to EVI.
481
+ tool_name:
482
+ type: optional<string>
483
+ docs: >-
484
+ Name of the tool.
485
+
486
+
487
+ Include this optional field to help the supplemental LLM identify
488
+ which tool generated the response. The specified `tool_name` must
489
+ match the one received in the [Tool Call
490
+ message](/reference/speech-to-speech-evi/chat#receive.ToolCallMessage).
491
+ tool_type:
492
+ type: optional<ToolType>
493
+ docs: >-
494
+ Type of tool called. Either `builtin` for natively implemented tools,
495
+ like web search, or `function` for user-defined tools.
496
+ source:
497
+ openapi: evi-asyncapi.json
498
+ ToolType:
499
+ enum:
500
+ - builtin
501
+ - function
502
+ source:
503
+ openapi: evi-asyncapi.json
504
+ UserInput:
505
+ docs: >-
506
+ User text to insert into the conversation. Text sent through a User Input
507
+ message is treated as the user's speech to EVI. EVI processes this input
508
+ and provides a corresponding response.
509
+
510
+
511
+ Expression measurement results are not available for User Input messages,
512
+ as the prosody model relies on audio input and cannot process text alone.
513
+ properties:
514
+ type:
515
+ type: literal<"user_input">
516
+ docs: >-
517
+ The type of message sent through the socket; must be `user_input` for
518
+ our server to correctly identify and process it as a User Input
519
+ message.
520
+ custom_session_id:
521
+ type: optional<string>
522
+ docs: >-
523
+ Used to manage conversational state, correlate frontend and backend
524
+ data, and persist conversations across EVI sessions.
525
+ text:
526
+ type: string
527
+ docs: >-
528
+ User text to insert into the conversation. Text sent through a User
529
+ Input message is treated as the user's speech to EVI. EVI processes
530
+ this input and provides a corresponding response.
531
+
532
+
533
+ Expression measurement results are not available for User Input
534
+ messages, as the prosody model relies on audio input and cannot
535
+ process text alone.
536
+ source:
537
+ openapi: evi-asyncapi.json
538
+ AssistantEnd:
539
+ docs: When provided, the output is an assistant end message.
540
+ properties:
541
+ type:
542
+ type: literal<"assistant_end">
543
+ docs: >-
544
+ The type of message sent through the socket; for an Assistant End
545
+ message, this must be `assistant_end`.
546
+
547
+
548
+ This message indicates the conclusion of the assistant's response,
549
+ signaling that the assistant has finished speaking for the current
550
+ conversational turn.
551
+ custom_session_id:
552
+ type: optional<string>
553
+ docs: >-
554
+ Used to manage conversational state, correlate frontend and backend
555
+ data, and persist conversations across EVI sessions.
556
+ source:
557
+ openapi: evi-asyncapi.json
558
+ AssistantMessage:
559
+ docs: When provided, the output is an assistant message.
560
+ properties:
561
+ type:
562
+ type: literal<"assistant_message">
563
+ docs: >-
564
+ The type of message sent through the socket; for an Assistant Message,
565
+ this must be `assistant_message`.
566
+
567
+
568
+ This message contains both a transcript of the assistant's response
569
+ and the expression measurement predictions of the assistant's audio
570
+ output.
571
+ custom_session_id:
572
+ type: optional<string>
573
+ docs: >-
574
+ Used to manage conversational state, correlate frontend and backend
575
+ data, and persist conversations across EVI sessions.
576
+ id:
577
+ type: optional<string>
578
+ docs: >-
579
+ ID of the assistant message. Allows the Assistant Message to be
580
+ tracked and referenced.
581
+ message:
582
+ type: ChatMessage
583
+ docs: Transcript of the message.
584
+ models:
585
+ type: Inference
586
+ docs: Inference model results.
587
+ from_text:
588
+ type: boolean
589
+ docs: >-
590
+ Indicates if this message was inserted into the conversation as text
591
+ from an [Assistant Input
592
+ message](/reference/speech-to-speech-evi/chat#send.AssistantInput.text).
593
+ source:
594
+ openapi: evi-asyncapi.json
595
+ AssistantProsody:
596
+ docs: When provided, the output is an Assistant Prosody message.
597
+ properties:
598
+ type:
599
+ type: literal<"assistant_prosody">
600
+ docs: >-
601
+ The type of message sent through the socket; for an Assistant Prosody
602
+ message, this must be `assistant_PROSODY`.
603
+
604
+
605
+ This message the expression measurement predictions of the assistant's
606
+ audio output.
607
+ custom_session_id:
608
+ type: optional<string>
609
+ docs: >-
610
+ Used to manage conversational state, correlate frontend and backend
611
+ data, and persist conversations across EVI sessions.
612
+ models:
613
+ type: Inference
614
+ docs: Inference model results.
615
+ id:
616
+ type: optional<string>
617
+ docs: Unique identifier for the segment.
618
+ source:
619
+ openapi: evi-asyncapi.json
620
+ AudioOutput:
621
+ docs: >-
622
+ The type of message sent through the socket; for an Audio Output message,
623
+ this must be `audio_output`.
624
+ properties:
625
+ type:
626
+ type: literal<"audio_output">
627
+ docs: >-
628
+ The type of message sent through the socket; for an Audio Output
629
+ message, this must be `audio_output`.
630
+ custom_session_id:
631
+ type: optional<string>
632
+ docs: >-
633
+ Used to manage conversational state, correlate frontend and backend
634
+ data, and persist conversations across EVI sessions.
635
+ id:
636
+ type: string
637
+ docs: >-
638
+ ID of the audio output. Allows the Audio Output message to be tracked
639
+ and referenced.
640
+ index:
641
+ type: integer
642
+ docs: Index of the chunk of audio relative to the whole audio segment.
643
+ data:
644
+ type: string
645
+ docs: >-
646
+ Base64 encoded audio output. This encoded audio is transmitted to the
647
+ client, where it can be decoded and played back as part of the user
648
+ interaction.
649
+ source:
650
+ openapi: evi-asyncapi.json
651
+ ChatMessageToolResult:
652
+ discriminated: false
653
+ docs: Function call response from client.
654
+ union:
655
+ - type: ToolResponseMessage
656
+ - type: ToolErrorMessage
657
+ source:
658
+ openapi: evi-asyncapi.json
659
+ inline: true
660
+ ChatMessage:
661
+ properties:
662
+ role:
663
+ type: Role
664
+ docs: Role of who is providing the message.
665
+ content:
666
+ type: optional<string>
667
+ docs: Transcript of the message.
668
+ tool_call:
669
+ type: optional<ToolCallMessage>
670
+ docs: Function call name and arguments.
671
+ tool_result:
672
+ type: optional<ChatMessageToolResult>
673
+ docs: Function call response from client.
674
+ source:
675
+ openapi: evi-asyncapi.json
676
+ ChatMetadata:
677
+ docs: When provided, the output is a chat metadata message.
678
+ properties:
679
+ type:
680
+ type: literal<"chat_metadata">
681
+ docs: >-
682
+ The type of message sent through the socket; for a Chat Metadata
683
+ message, this must be `chat_metadata`.
684
+
685
+
686
+ The Chat Metadata message is the first message you receive after
687
+ establishing a connection with EVI and contains important identifiers
688
+ for the current Chat session.
689
+ custom_session_id:
690
+ type: optional<string>
691
+ docs: >-
692
+ Used to manage conversational state, correlate frontend and backend
693
+ data, and persist conversations across EVI sessions.
694
+ chat_group_id:
695
+ type: string
696
+ docs: >-
697
+ ID of the Chat Group.
698
+
699
+
700
+ Used to resume a Chat when passed in the
701
+ [resumed_chat_group_id](/reference/speech-to-speech-evi/chat#request.query.resumed_chat_group_id)
702
+ query parameter of a subsequent connection request. This allows EVI to
703
+ continue the conversation from where it left off within the Chat
704
+ Group.
705
+
706
+
707
+ Learn more about [supporting chat
708
+ resumability](/docs/speech-to-speech-evi/faq#does-evi-support-chat-resumability)
709
+ from the EVI FAQ.
710
+ chat_id:
711
+ type: string
712
+ docs: >-
713
+ ID of the Chat session. Allows the Chat session to be tracked and
714
+ referenced.
715
+ request_id:
716
+ type: optional<string>
717
+ docs: ID of the initiating request.
718
+ source:
719
+ openapi: evi-asyncapi.json
720
+ EmotionScores:
721
+ properties:
722
+ Admiration: double
723
+ Adoration: double
724
+ Aesthetic Appreciation: double
725
+ Amusement: double
726
+ Anger: double
727
+ Anxiety: double
728
+ Awe: double
729
+ Awkwardness: double
730
+ Boredom: double
731
+ Calmness: double
732
+ Concentration: double
733
+ Confusion: double
734
+ Contemplation: double
735
+ Contempt: double
736
+ Contentment: double
737
+ Craving: double
738
+ Desire: double
739
+ Determination: double
740
+ Disappointment: double
741
+ Disgust: double
742
+ Distress: double
743
+ Doubt: double
744
+ Ecstasy: double
745
+ Embarrassment: double
746
+ Empathic Pain: double
747
+ Entrancement: double
748
+ Envy: double
749
+ Excitement: double
750
+ Fear: double
751
+ Guilt: double
752
+ Horror: double
753
+ Interest: double
754
+ Joy: double
755
+ Love: double
756
+ Nostalgia: double
757
+ Pain: double
758
+ Pride: double
759
+ Realization: double
760
+ Relief: double
761
+ Romance: double
762
+ Sadness: double
763
+ Satisfaction: double
764
+ Shame: double
765
+ Surprise (negative): double
766
+ Surprise (positive): double
767
+ Sympathy: double
768
+ Tiredness: double
769
+ Triumph: double
770
+ source:
771
+ openapi: evi-asyncapi.json
772
+ WebSocketError:
773
+ docs: When provided, the output is an error message.
774
+ properties:
775
+ type:
776
+ type: literal<"error">
777
+ docs: >-
778
+ The type of message sent through the socket; for a Web Socket Error
779
+ message, this must be `error`.
780
+
781
+
782
+ This message indicates a disruption in the WebSocket connection, such
783
+ as an unexpected disconnection, protocol error, or data transmission
784
+ issue.
785
+ custom_session_id:
786
+ type: optional<string>
787
+ docs: >-
788
+ Used to manage conversational state, correlate frontend and backend
789
+ data, and persist conversations across EVI sessions.
790
+ code:
791
+ type: string
792
+ docs: Error code. Identifies the type of error encountered.
793
+ slug:
794
+ type: string
795
+ docs: >-
796
+ Short, human-readable identifier and description for the error. See a
797
+ complete list of error slugs on the [Errors
798
+ page](/docs/resources/errors).
799
+ message:
800
+ type: string
801
+ docs: Detailed description of the error.
802
+ request_id:
803
+ type: optional<string>
804
+ docs: ID of the initiating request.
805
+ source:
806
+ openapi: evi-asyncapi.json
807
+ Inference:
808
+ properties:
809
+ prosody:
810
+ type: optional<ProsodyInference>
811
+ docs: >-
812
+ Prosody model inference results.
813
+
814
+
815
+ EVI uses the prosody model to measure 48 emotions related to speech
816
+ and vocal characteristics within a given expression.
817
+ source:
818
+ openapi: evi-asyncapi.json
819
+ MillisecondInterval:
820
+ properties:
821
+ begin:
822
+ type: integer
823
+ docs: Start time of the interval in milliseconds.
824
+ end:
825
+ type: integer
826
+ docs: End time of the interval in milliseconds.
827
+ source:
828
+ openapi: evi-asyncapi.json
829
+ ProsodyInference:
830
+ properties:
831
+ scores:
832
+ type: EmotionScores
833
+ docs: >-
834
+ The confidence scores for 48 emotions within the detected expression
835
+ of an audio sample.
836
+
837
+
838
+ Scores typically range from 0 to 1, with higher values indicating a
839
+ stronger confidence level in the measured attribute.
840
+
841
+
842
+ See our guide on [interpreting expression measurement
843
+ results](/docs/expression-measurement/faq#how-do-i-interpret-my-results)
844
+ to learn more.
845
+ source:
846
+ openapi: evi-asyncapi.json
847
+ Role:
848
+ enum:
849
+ - assistant
850
+ - system
851
+ - user
852
+ - all
853
+ - tool
854
+ source:
855
+ openapi: evi-asyncapi.json
856
+ ToolCallMessage:
857
+ docs: When provided, the output is a tool call.
858
+ properties:
859
+ name:
860
+ type: string
861
+ docs: Name of the tool called.
862
+ parameters:
863
+ type: string
864
+ docs: >-
865
+ Parameters of the tool.
866
+
867
+
868
+ These parameters define the inputs needed for the tool's execution,
869
+ including the expected data type and description for each input field.
870
+ Structured as a stringified JSON schema, this format ensures the tool
871
+ receives data in the expected format.
872
+ tool_call_id:
873
+ type: string
874
+ docs: >-
875
+ The unique identifier for a specific tool call instance.
876
+
877
+
878
+ This ID is used to track the request and response of a particular tool
879
+ invocation, ensuring that the correct response is linked to the
880
+ appropriate request.
881
+ type:
882
+ type: literal<"tool_call">
883
+ docs: >-
884
+ The type of message sent through the socket; for a Tool Call message,
885
+ this must be `tool_call`.
886
+
887
+
888
+ This message indicates that the supplemental LLM has detected a need
889
+ to invoke the specified tool.
890
+ custom_session_id:
891
+ type: optional<string>
892
+ docs: >-
893
+ Used to manage conversational state, correlate frontend and backend
894
+ data, and persist conversations across EVI sessions.
895
+ tool_type:
896
+ type: optional<ToolType>
897
+ docs: >-
898
+ Type of tool called. Either `builtin` for natively implemented tools,
899
+ like web search, or `function` for user-defined tools.
900
+ response_required:
901
+ type: boolean
902
+ docs: >-
903
+ Indicates whether a response to the tool call is required from the
904
+ developer, either in the form of a [Tool Response
905
+ message](/reference/speech-to-speech-evi/chat#send.ToolResponseMessage)
906
+ or a [Tool Error
907
+ message](/reference/speech-to-speech-evi/chat#send.ToolErrorMessage).
908
+ source:
909
+ openapi: evi-asyncapi.json
910
+ UserInterruption:
911
+ docs: When provided, the output is an interruption.
912
+ properties:
913
+ type:
914
+ type: literal<"user_interruption">
915
+ docs: >-
916
+ The type of message sent through the socket; for a User Interruption
917
+ message, this must be `user_interruption`.
918
+
919
+
920
+ This message indicates the user has interrupted the assistant's
921
+ response. EVI detects the interruption in real-time and sends this
922
+ message to signal the interruption event. This message allows the
923
+ system to stop the current audio playback, clear the audio queue, and
924
+ prepare to handle new user input.
925
+ custom_session_id:
926
+ type: optional<string>
927
+ docs: >-
928
+ Used to manage conversational state, correlate frontend and backend
929
+ data, and persist conversations across EVI sessions.
930
+ time:
931
+ type: integer
932
+ docs: Unix timestamp of the detected user interruption.
933
+ source:
934
+ openapi: evi-asyncapi.json
935
+ UserMessage:
936
+ docs: When provided, the output is a user message.
937
+ properties:
938
+ type:
939
+ type: literal<"user_message">
940
+ docs: >-
941
+ The type of message sent through the socket; for a User Message, this
942
+ must be `user_message`.
943
+
944
+
945
+ This message contains both a transcript of the user's input and the
946
+ expression measurement predictions if the input was sent as an [Audio
947
+ Input message](/reference/speech-to-speech-evi/chat#send.AudioInput).
948
+ Expression measurement predictions are not provided for a [User Input
949
+ message](/reference/speech-to-speech-evi/chat#send.UserInput), as the
950
+ prosody model relies on audio input and cannot process text alone.
951
+ custom_session_id:
952
+ type: optional<string>
953
+ docs: >-
954
+ Used to manage conversational state, correlate frontend and backend
955
+ data, and persist conversations across EVI sessions.
956
+ message:
957
+ type: ChatMessage
958
+ docs: Transcript of the message.
959
+ models:
960
+ type: Inference
961
+ docs: Inference model results.
962
+ time:
963
+ type: MillisecondInterval
964
+ docs: Start and End time of user message.
965
+ from_text:
966
+ type: boolean
967
+ docs: >-
968
+ Indicates if this message was inserted into the conversation as text
969
+ from a [User
970
+ Input](/reference/speech-to-speech-evi/chat#send.UserInput.text)
971
+ message.
972
+ interim:
973
+ type: boolean
974
+ docs: >-
975
+ Indicates whether this `UserMessage` contains an interim (unfinalized)
976
+ transcript.
977
+
978
+
979
+ - `true`: the transcript is provisional; words may be repeated or
980
+ refined in subsequent `UserMessage` responses as additional audio is
981
+ processed.
982
+
983
+ - `false`: the transcript is final and complete.
984
+
985
+
986
+ Interim transcripts are only sent when the
987
+ [`verbose_transcription`](/reference/speech-to-speech-evi/chat#request.query.verbose_transcription)
988
+ query parameter is set to `true` in the initial handshake.
989
+ source:
990
+ openapi: evi-asyncapi.json
991
+ JsonMessage:
992
+ discriminated: false
993
+ union:
994
+ - type: AssistantEnd
995
+ - type: AssistantMessage
996
+ - type: AssistantProsody
997
+ - type: ChatMetadata
998
+ - type: WebSocketError
999
+ - type: UserInterruption
1000
+ - type: UserMessage
1001
+ - type: ToolCallMessage
1002
+ - type: ToolResponseMessage
1003
+ - type: ToolErrorMessage
1004
+ source:
1005
+ openapi: evi-asyncapi.json
1006
+ HTTPValidationError:
1007
+ properties:
1008
+ detail:
1009
+ type: optional<list<ValidationError>>
1010
+ source:
1011
+ openapi: evi-openapi.json
1012
+ LanguageModelType:
1013
+ enum:
1014
+ - value: claude-3-7-sonnet-latest
1015
+ name: Claude37SonnetLatest
1016
+ - value: claude-3-5-sonnet-latest
1017
+ name: Claude35SonnetLatest
1018
+ - value: claude-3-5-haiku-latest
1019
+ name: Claude35HaikuLatest
1020
+ - value: claude-3-5-sonnet-20240620
1021
+ name: Claude35Sonnet20240620
1022
+ - value: claude-3-opus-20240229
1023
+ name: Claude3Opus20240229
1024
+ - value: claude-3-sonnet-20240229
1025
+ name: Claude3Sonnet20240229
1026
+ - value: claude-3-haiku-20240307
1027
+ name: Claude3Haiku20240307
1028
+ - value: claude-sonnet-4-20250514
1029
+ name: ClaudeSonnet420250514
1030
+ - value: us.anthropic.claude-3-5-haiku-20241022-v1:0
1031
+ name: UsAnthropicClaude35Haiku20241022V10
1032
+ - value: us.anthropic.claude-3-5-sonnet-20240620-v1:0
1033
+ name: UsAnthropicClaude35Sonnet20240620V10
1034
+ - value: us.anthropic.claude-3-haiku-20240307-v1:0
1035
+ name: UsAnthropicClaude3Haiku20240307V10
1036
+ - value: gpt-oss-120b
1037
+ name: GptOss120B
1038
+ - value: qwen-3-235b-a22b
1039
+ name: Qwen3235BA22B
1040
+ - value: qwen-3-235b-a22b-instruct-2507
1041
+ name: Qwen3235BA22BInstruct2507
1042
+ - value: qwen-3-235b-a22b-thinking-2507
1043
+ name: Qwen3235BA22BThinking2507
1044
+ - value: gemini-1.5-pro
1045
+ name: Gemini15Pro
1046
+ - value: gemini-1.5-flash
1047
+ name: Gemini15Flash
1048
+ - value: gemini-1.5-pro-002
1049
+ name: Gemini15Pro002
1050
+ - value: gemini-1.5-flash-002
1051
+ name: Gemini15Flash002
1052
+ - value: gemini-2.0-flash
1053
+ name: Gemini20Flash
1054
+ - value: gemini-2.5-flash
1055
+ name: Gemini25Flash
1056
+ - value: gemini-2.5-flash-preview-04-17
1057
+ name: Gemini25FlashPreview0417
1058
+ - value: gpt-4-turbo
1059
+ name: Gpt4Turbo
1060
+ - value: gpt-4-turbo-preview
1061
+ name: Gpt4TurboPreview
1062
+ - value: gpt-3.5-turbo-0125
1063
+ name: Gpt35Turbo0125
1064
+ - value: gpt-3.5-turbo
1065
+ name: Gpt35Turbo
1066
+ - value: gpt-4o
1067
+ name: Gpt4O
1068
+ - value: gpt-4o-mini
1069
+ name: Gpt4OMini
1070
+ - value: gpt-4.1
1071
+ name: Gpt41
1072
+ - value: gpt-5
1073
+ name: Gpt5
1074
+ - value: gpt-5-mini
1075
+ name: Gpt5Mini
1076
+ - value: gpt-5-nano
1077
+ name: Gpt5Nano
1078
+ - value: gemma-7b-it
1079
+ name: Gemma7BIt
1080
+ - value: llama3-8b-8192
1081
+ name: Llama38B8192
1082
+ - value: llama3-70b-8192
1083
+ name: Llama370B8192
1084
+ - value: llama-3.1-70b-versatile
1085
+ name: Llama3170BVersatile
1086
+ - value: llama-3.3-70b-versatile
1087
+ name: Llama3370BVersatile
1088
+ - value: llama-3.1-8b-instant
1089
+ name: Llama318BInstant
1090
+ - value: moonshotai/kimi-k2-instruct
1091
+ name: MoonshotaiKimiK2Instruct
1092
+ - value: accounts/fireworks/models/mixtral-8x7b-instruct
1093
+ name: AccountsFireworksModelsMixtral8X7BInstruct
1094
+ - value: accounts/fireworks/models/llama-v3p1-405b-instruct
1095
+ name: AccountsFireworksModelsLlamaV3P1405BInstruct
1096
+ - value: accounts/fireworks/models/llama-v3p1-70b-instruct
1097
+ name: AccountsFireworksModelsLlamaV3P170BInstruct
1098
+ - value: accounts/fireworks/models/llama-v3p1-8b-instruct
1099
+ name: AccountsFireworksModelsLlamaV3P18BInstruct
1100
+ - sonar
1101
+ - value: sonar-pro
1102
+ name: SonarPro
1103
+ - sambanova
1104
+ - value: DeepSeek-R1-Distill-Llama-70B
1105
+ name: DeepSeekR1DistillLlama70B
1106
+ - value: Llama-4-Maverick-17B-128E-Instruct
1107
+ name: Llama4Maverick17B128EInstruct
1108
+ - value: Qwen3-32B
1109
+ name: Qwen332B
1110
+ - ellm
1111
+ - value: custom-language-model
1112
+ name: CustomLanguageModel
1113
+ - value: hume-evi-3-web-search
1114
+ name: HumeEvi3WebSearch
1115
+ source:
1116
+ openapi: evi-openapi.json
1117
+ ModelProviderEnum:
1118
+ enum:
1119
+ - GROQ
1120
+ - OPEN_AI
1121
+ - FIREWORKS
1122
+ - ANTHROPIC
1123
+ - CUSTOM_LANGUAGE_MODEL
1124
+ - GOOGLE
1125
+ - HUME_AI
1126
+ - AMAZON_BEDROCK
1127
+ - PERPLEXITY
1128
+ - SAMBANOVA
1129
+ - CEREBRAS
1130
+ source:
1131
+ openapi: evi-openapi.json
1132
+ ValidationErrorLocItem:
1133
+ discriminated: false
1134
+ union:
1135
+ - string
1136
+ - integer
1137
+ source:
1138
+ openapi: evi-openapi.json
1139
+ inline: true
1140
+ ValidationError:
1141
+ properties:
1142
+ loc:
1143
+ type: list<ValidationErrorLocItem>
1144
+ msg: string
1145
+ type: string
1146
+ source:
1147
+ openapi: evi-openapi.json
1148
+ VoiceId:
1149
+ properties:
1150
+ id:
1151
+ type: string
1152
+ docs: ID of the voice in the `Voice Library`.
1153
+ provider:
1154
+ type: optional<VoiceProvider>
1155
+ docs: Model provider associated with this Voice ID.
1156
+ source:
1157
+ openapi: evi-openapi.json
1158
+ VoiceName:
1159
+ properties:
1160
+ name:
1161
+ type: string
1162
+ docs: Name of the voice in the `Voice Library`.
1163
+ provider:
1164
+ type: optional<VoiceProvider>
1165
+ docs: Model provider associated with this Voice Name.
1166
+ source:
1167
+ openapi: evi-openapi.json
1168
+ WebhookEventChatEnded:
1169
+ properties:
1170
+ event_name:
1171
+ type: optional<literal<"chat_ended">>
1172
+ docs: Always `chat_ended`.
1173
+ end_time:
1174
+ type: integer
1175
+ docs: Unix timestamp (in milliseconds) indicating when the session ended.
1176
+ duration_seconds:
1177
+ type: integer
1178
+ docs: Total duration of the session in seconds.
1179
+ end_reason:
1180
+ type: WebhookEventChatStatus
1181
+ docs: Reason for the session's termination.
1182
+ caller_number:
1183
+ type: optional<string>
1184
+ docs: >-
1185
+ Phone number of the caller in E.164 format (e.g., `+12223333333`).
1186
+ This field is included only if the Chat was created via the [Twilio
1187
+ phone calling](/docs/empathic-voice-interface-evi/phone-calling)
1188
+ integration.
1189
+ custom_session_id:
1190
+ type: optional<string>
1191
+ docs: >-
1192
+ User-defined session ID. Relevant only when employing a [custom
1193
+ language
1194
+ model](/docs/empathic-voice-interface-evi/custom-language-model) in
1195
+ the EVI Config.
1196
+ extends:
1197
+ - WebhookEventBase
1198
+ source:
1199
+ openapi: evi-openapi.json
1200
+ WebhookEventChatStartType:
1201
+ enum:
1202
+ - new_chat_group
1203
+ - resumed_chat_group
1204
+ source:
1205
+ openapi: evi-openapi.json
1206
+ WebhookEventChatStarted:
1207
+ properties:
1208
+ event_name:
1209
+ type: optional<literal<"chat_started">>
1210
+ docs: Always `chat_started`.
1211
+ start_time:
1212
+ type: integer
1213
+ docs: Unix timestamp (in milliseconds) indicating when the session started.
1214
+ chat_start_type:
1215
+ type: WebhookEventChatStartType
1216
+ docs: >-
1217
+ Indicates whether the chat is the first in a new Chat Group
1218
+ (`new_chat_group`) or the continuation of an existing chat group
1219
+ (`resumed_chat_group`).
1220
+ caller_number:
1221
+ type: optional<string>
1222
+ docs: >-
1223
+ Phone number of the caller in E.164 format (e.g., `+12223333333`).
1224
+ This field is included only if the Chat was created via the [Twilio
1225
+ phone calling](/docs/empathic-voice-interface-evi/phone-calling)
1226
+ integration.
1227
+ custom_session_id:
1228
+ type: optional<string>
1229
+ docs: >-
1230
+ User-defined session ID. Relevant only when employing a [custom
1231
+ language
1232
+ model](/docs/empathic-voice-interface-evi/custom-language-model) in
1233
+ the EVI Config.
1234
+ extends:
1235
+ - WebhookEventBase
1236
+ source:
1237
+ openapi: evi-openapi.json
1238
+ WebhookEventChatStatus:
1239
+ enum:
1240
+ - ACTIVE
1241
+ - USER_ENDED
1242
+ - USER_TIMEOUT
1243
+ - INACTIVITY_TIMEOUT
1244
+ - MAX_DURATION_TIMEOUT
1245
+ - SILENCE_TIMEOUT
1246
+ - ERROR
1247
+ source:
1248
+ openapi: evi-openapi.json
1249
+ WebhookEvent:
1250
+ discriminated: false
1251
+ union:
1252
+ - WebhookEventChatStarted
1253
+ - WebhookEventChatEnded
1254
+ source:
1255
+ openapi: evi-openapi.json
1256
+ WebhookEventBase:
1257
+ docs: Represents the fields common to all webhook events.
1258
+ properties:
1259
+ chat_group_id:
1260
+ type: string
1261
+ docs: Unique ID of the **Chat Group** associated with the **Chat** session.
1262
+ chat_id:
1263
+ type: string
1264
+ docs: Unique ID of the **Chat** session.
1265
+ config_id:
1266
+ type: optional<string>
1267
+ docs: Unique ID of the EVI **Config** used for the session.
1268
+ source:
1269
+ openapi: evi-openapi.json
1270
+ ErrorResponse:
1271
+ properties:
1272
+ error: optional<string>
1273
+ message: optional<string>
1274
+ code: optional<string>
1275
+ source:
1276
+ openapi: evi-openapi.json
1277
+ ReturnPagedUserDefinedTools:
1278
+ docs: A paginated list of user defined tool versions returned from the server
1279
+ properties:
1280
+ page_number:
1281
+ type: integer
1282
+ docs: >-
1283
+ The page number of the returned list.
1284
+
1285
+
1286
+ This value corresponds to the `page_number` parameter specified in the
1287
+ request. Pagination uses zero-based indexing.
1288
+ page_size:
1289
+ type: integer
1290
+ docs: >-
1291
+ The maximum number of items returned per page.
1292
+
1293
+
1294
+ This value corresponds to the `page_size` parameter specified in the
1295
+ request.
1296
+ total_pages:
1297
+ type: integer
1298
+ docs: The total number of pages in the collection.
1299
+ tools_page:
1300
+ docs: >-
1301
+ List of tools returned for the specified `page_number` and
1302
+ `page_size`.
1303
+ type: list<optional<ReturnUserDefinedTool>>
1304
+ source:
1305
+ openapi: evi-openapi.json
1306
+ ReturnUserDefinedToolToolType:
1307
+ enum:
1308
+ - BUILTIN
1309
+ - FUNCTION
1310
+ docs: >-
1311
+ Type of Tool. Either `BUILTIN` for natively implemented tools, like web
1312
+ search, or `FUNCTION` for user-defined tools.
1313
+ inline: true
1314
+ source:
1315
+ openapi: evi-openapi.json
1316
+ ReturnUserDefinedToolVersionType:
1317
+ enum:
1318
+ - FIXED
1319
+ - LATEST
1320
+ docs: >-
1321
+ Versioning method for a Tool. Either `FIXED` for using a fixed version
1322
+ number or `LATEST` for auto-updating to the latest version.
1323
+ inline: true
1324
+ source:
1325
+ openapi: evi-openapi.json
1326
+ ReturnUserDefinedTool:
1327
+ docs: A specific tool version returned from the server
1328
+ properties:
1329
+ tool_type:
1330
+ type: ReturnUserDefinedToolToolType
1331
+ docs: >-
1332
+ Type of Tool. Either `BUILTIN` for natively implemented tools, like
1333
+ web search, or `FUNCTION` for user-defined tools.
1334
+ id:
1335
+ type: string
1336
+ docs: Identifier for a Tool. Formatted as a UUID.
1337
+ version:
1338
+ type: integer
1339
+ docs: >-
1340
+ Version number for a Tool.
1341
+
1342
+
1343
+ Tools, Configs, Custom Voices, and Prompts are versioned. This
1344
+ versioning system supports iterative development, allowing you to
1345
+ progressively refine tools and revert to previous versions if needed.
1346
+
1347
+
1348
+ Version numbers are integer values representing different iterations
1349
+ of the Tool. Each update to the Tool increments its version number.
1350
+ version_type:
1351
+ type: ReturnUserDefinedToolVersionType
1352
+ docs: >-
1353
+ Versioning method for a Tool. Either `FIXED` for using a fixed version
1354
+ number or `LATEST` for auto-updating to the latest version.
1355
+ version_description:
1356
+ type: optional<string>
1357
+ docs: An optional description of the Tool version.
1358
+ name:
1359
+ type: string
1360
+ docs: Name applied to all versions of a particular Tool.
1361
+ created_on:
1362
+ type: long
1363
+ docs: >-
1364
+ Time at which the Tool was created. Measured in seconds since the Unix
1365
+ epoch.
1366
+ modified_on:
1367
+ type: long
1368
+ docs: >-
1369
+ Time at which the Tool was last modified. Measured in seconds since
1370
+ the Unix epoch.
1371
+ fallback_content:
1372
+ type: optional<string>
1373
+ docs: >-
1374
+ Optional text passed to the supplemental LLM in place of the tool call
1375
+ result. The LLM then uses this text to generate a response back to the
1376
+ user, ensuring continuity in the conversation if the Tool errors.
1377
+ description:
1378
+ type: optional<string>
1379
+ docs: >-
1380
+ An optional description of what the Tool does, used by the
1381
+ supplemental LLM to choose when and how to call the function.
1382
+ parameters:
1383
+ type: string
1384
+ docs: >-
1385
+ Stringified JSON defining the parameters used by this version of the
1386
+ Tool.
1387
+
1388
+
1389
+ These parameters define the inputs needed for the Tool's execution,
1390
+ including the expected data type and description for each input field.
1391
+ Structured as a stringified JSON schema, this format ensures the tool
1392
+ receives data in the expected format.
1393
+ source:
1394
+ openapi: evi-openapi.json
1395
+ ReturnPagedPrompts:
1396
+ docs: A paginated list of prompt versions returned from the server
1397
+ properties:
1398
+ page_number:
1399
+ type: integer
1400
+ docs: >-
1401
+ The page number of the returned list.
1402
+
1403
+
1404
+ This value corresponds to the `page_number` parameter specified in the
1405
+ request. Pagination uses zero-based indexing.
1406
+ page_size:
1407
+ type: integer
1408
+ docs: >-
1409
+ The maximum number of items returned per page.
1410
+
1411
+
1412
+ This value corresponds to the `page_size` parameter specified in the
1413
+ request.
1414
+ total_pages:
1415
+ type: integer
1416
+ docs: The total number of pages in the collection.
1417
+ prompts_page:
1418
+ docs: >-
1419
+ List of prompts returned for the specified `page_number` and
1420
+ `page_size`.
1421
+ type: list<optional<ReturnPrompt>>
1422
+ source:
1423
+ openapi: evi-openapi.json
1424
+ ReturnPrompt:
1425
+ docs: A Prompt associated with this Config.
1426
+ properties:
1427
+ name:
1428
+ type: string
1429
+ docs: Name applied to all versions of a particular Prompt.
1430
+ id:
1431
+ type: string
1432
+ docs: Identifier for a Prompt. Formatted as a UUID.
1433
+ text:
1434
+ type: string
1435
+ docs: >-
1436
+ Instructions used to shape EVI's behavior, responses, and style.
1437
+
1438
+
1439
+ You can use the Prompt to define a specific goal or role for EVI,
1440
+ specifying how it should act or what it should focus on during the
1441
+ conversation. For example, EVI can be instructed to act as a customer
1442
+ support representative, a fitness coach, or a travel advisor, each
1443
+ with its own set of behaviors and response styles. For help writing a
1444
+ system prompt, see our [Prompting
1445
+ Guide](/docs/speech-to-speech-evi/guides/prompting).
1446
+ version:
1447
+ type: integer
1448
+ docs: >-
1449
+ Version number for a Prompt.
1450
+
1451
+
1452
+ Prompts, Configs, Custom Voices, and Tools are versioned. This
1453
+ versioning system supports iterative development, allowing you to
1454
+ progressively refine prompts and revert to previous versions if
1455
+ needed.
1456
+
1457
+
1458
+ Version numbers are integer values representing different iterations
1459
+ of the Prompt. Each update to the Prompt increments its version
1460
+ number.
1461
+ version_description:
1462
+ type: optional<string>
1463
+ docs: An optional description of the Prompt version.
1464
+ version_type:
1465
+ type: ReturnPromptVersionType
1466
+ docs: >-
1467
+ Versioning method for a Prompt. Either `FIXED` for using a fixed
1468
+ version number or `LATEST` for auto-updating to the latest version.
1469
+ created_on:
1470
+ type: long
1471
+ docs: >-
1472
+ Time at which the Prompt was created. Measured in seconds since the
1473
+ Unix epoch.
1474
+ modified_on:
1475
+ type: long
1476
+ docs: >-
1477
+ Time at which the Prompt was last modified. Measured in seconds since
1478
+ the Unix epoch.
1479
+ source:
1480
+ openapi: evi-openapi.json
1481
+ ReturnPagedConfigs:
1482
+ docs: A paginated list of config versions returned from the server
1483
+ properties:
1484
+ page_number:
1485
+ type: optional<integer>
1486
+ docs: >-
1487
+ The page number of the returned list.
1488
+
1489
+
1490
+ This value corresponds to the `page_number` parameter specified in the
1491
+ request. Pagination uses zero-based indexing.
1492
+ page_size:
1493
+ type: optional<integer>
1494
+ docs: >-
1495
+ The maximum number of items returned per page.
1496
+
1497
+
1498
+ This value corresponds to the `page_size` parameter specified in the
1499
+ request.
1500
+ total_pages:
1501
+ type: integer
1502
+ docs: The total number of pages in the collection.
1503
+ configs_page:
1504
+ type: optional<list<ReturnConfig>>
1505
+ docs: >-
1506
+ List of configs returned for the specified `page_number` and
1507
+ `page_size`.
1508
+ source:
1509
+ openapi: evi-openapi.json
1510
+ ReturnConfig:
1511
+ docs: A specific config version returned from the server
1512
+ properties:
1513
+ name:
1514
+ type: optional<string>
1515
+ docs: Name applied to all versions of a particular Config.
1516
+ id:
1517
+ type: optional<string>
1518
+ docs: Identifier for a Config. Formatted as a UUID.
1519
+ version:
1520
+ type: optional<integer>
1521
+ docs: >-
1522
+ Version number for a Config.
1523
+
1524
+
1525
+ Configs, Prompts, Custom Voices, and Tools are versioned. This
1526
+ versioning system supports iterative development, allowing you to
1527
+ progressively refine configurations and revert to previous versions if
1528
+ needed.
1529
+
1530
+
1531
+ Version numbers are integer values representing different iterations
1532
+ of the Config. Each update to the Config increments its version
1533
+ number.
1534
+ version_description:
1535
+ type: optional<string>
1536
+ docs: An optional description of the Config version.
1537
+ tools:
1538
+ type: optional<list<optional<ReturnUserDefinedTool>>>
1539
+ docs: List of user-defined tools associated with this Config.
1540
+ language_model:
1541
+ type: optional<ReturnLanguageModel>
1542
+ docs: >-
1543
+ The supplemental language model associated with this Config.
1544
+
1545
+
1546
+ This model is used to generate longer, more detailed responses from
1547
+ EVI. Choosing an appropriate supplemental language model for your use
1548
+ case is crucial for generating fast, high-quality responses from EVI.
1549
+ builtin_tools:
1550
+ type: optional<list<optional<ReturnBuiltinTool>>>
1551
+ docs: List of built-in tools associated with this Config.
1552
+ evi_version:
1553
+ type: optional<string>
1554
+ docs: >-
1555
+ Specifies the EVI version to use. See our [EVI Version
1556
+ Guide](/docs/speech-to-speech-evi/configuration/evi-version) for
1557
+ differences between versions.
1558
+
1559
+
1560
+ **We're officially sunsetting EVI versions 1 and 2 on August 30,
1561
+ 2025**. To keep things running smoothly, be sure to [migrate to EVI
1562
+ 3](/docs/speech-to-speech-evi/configuration/evi-version#migrating-to-evi-3)
1563
+ before then.
1564
+ timeouts: optional<ReturnTimeoutSpecs>
1565
+ nudges: optional<ReturnNudgeSpec>
1566
+ event_messages: optional<ReturnEventMessageSpecs>
1567
+ ellm_model:
1568
+ type: optional<ReturnEllmModel>
1569
+ docs: >-
1570
+ The eLLM setup associated with this Config.
1571
+
1572
+
1573
+ Hume's eLLM (empathic Large Language Model) is a multimodal language
1574
+ model that takes into account both expression measures and language.
1575
+ The eLLM generates short, empathic language responses and guides
1576
+ text-to-speech (TTS) prosody.
1577
+ voice:
1578
+ type: optional<ReturnVoice>
1579
+ docs: A voice specification associated with this Config.
1580
+ prompt: optional<ReturnPrompt>
1581
+ webhooks:
1582
+ type: optional<list<optional<ReturnWebhookSpec>>>
1583
+ docs: Map of webhooks associated with this config.
1584
+ created_on:
1585
+ type: optional<long>
1586
+ docs: >-
1587
+ Time at which the Config was created. Measured in seconds since the
1588
+ Unix epoch.
1589
+ modified_on:
1590
+ type: optional<long>
1591
+ docs: >-
1592
+ Time at which the Config was last modified. Measured in seconds since
1593
+ the Unix epoch.
1594
+ source:
1595
+ openapi: evi-openapi.json
1596
+ ReturnPagedChatsPaginationDirection:
1597
+ enum:
1598
+ - ASC
1599
+ - DESC
1600
+ docs: >-
1601
+ Indicates the order in which the paginated results are presented, based on
1602
+ their creation date.
1603
+
1604
+
1605
+ It shows `ASC` for ascending order (chronological, with the oldest records
1606
+ first) or `DESC` for descending order (reverse-chronological, with the
1607
+ newest records first). This value corresponds to the `ascending_order`
1608
+ query parameter used in the request.
1609
+ inline: true
1610
+ source:
1611
+ openapi: evi-openapi.json
1612
+ ReturnPagedChats:
1613
+ docs: A paginated list of chats returned from the server
1614
+ properties:
1615
+ page_number:
1616
+ type: integer
1617
+ docs: >-
1618
+ The page number of the returned list.
1619
+
1620
+
1621
+ This value corresponds to the `page_number` parameter specified in the
1622
+ request. Pagination uses zero-based indexing.
1623
+ page_size:
1624
+ type: integer
1625
+ docs: >-
1626
+ The maximum number of items returned per page.
1627
+
1628
+
1629
+ This value corresponds to the `page_size` parameter specified in the
1630
+ request.
1631
+ total_pages:
1632
+ type: integer
1633
+ docs: The total number of pages in the collection.
1634
+ pagination_direction:
1635
+ type: ReturnPagedChatsPaginationDirection
1636
+ docs: >-
1637
+ Indicates the order in which the paginated results are presented,
1638
+ based on their creation date.
1639
+
1640
+
1641
+ It shows `ASC` for ascending order (chronological, with the oldest
1642
+ records first) or `DESC` for descending order (reverse-chronological,
1643
+ with the newest records first). This value corresponds to the
1644
+ `ascending_order` query parameter used in the request.
1645
+ chats_page:
1646
+ docs: >-
1647
+ List of Chats and their metadata returned for the specified
1648
+ `page_number` and `page_size`.
1649
+ type: list<ReturnChat>
1650
+ source:
1651
+ openapi: evi-openapi.json
1652
+ ReturnChatPagedEventsStatus:
1653
+ enum:
1654
+ - ACTIVE
1655
+ - USER_ENDED
1656
+ - USER_TIMEOUT
1657
+ - MAX_DURATION_TIMEOUT
1658
+ - INACTIVITY_TIMEOUT
1659
+ - ERROR
1660
+ docs: >-
1661
+ Indicates the current state of the chat. There are six possible statuses:
1662
+
1663
+
1664
+ - `ACTIVE`: The chat is currently active and ongoing.
1665
+
1666
+
1667
+ - `USER_ENDED`: The chat was manually ended by the user.
1668
+
1669
+
1670
+ - `USER_TIMEOUT`: The chat ended due to a user-defined timeout.
1671
+
1672
+
1673
+ - `MAX_DURATION_TIMEOUT`: The chat ended because it reached the maximum
1674
+ allowed duration.
1675
+
1676
+
1677
+ - `INACTIVITY_TIMEOUT`: The chat ended due to an inactivity timeout.
1678
+
1679
+
1680
+ - `ERROR`: The chat ended unexpectedly due to an error.
1681
+ inline: true
1682
+ source:
1683
+ openapi: evi-openapi.json
1684
+ ReturnChatPagedEventsPaginationDirection:
1685
+ enum:
1686
+ - ASC
1687
+ - DESC
1688
+ docs: >-
1689
+ Indicates the order in which the paginated results are presented, based on
1690
+ their creation date.
1691
+
1692
+
1693
+ It shows `ASC` for ascending order (chronological, with the oldest records
1694
+ first) or `DESC` for descending order (reverse-chronological, with the
1695
+ newest records first). This value corresponds to the `ascending_order`
1696
+ query parameter used in the request.
1697
+ inline: true
1698
+ source:
1699
+ openapi: evi-openapi.json
1700
+ ReturnChatPagedEvents:
1701
+ docs: >-
1702
+ A description of chat status with a paginated list of chat events returned
1703
+ from the server
1704
+ properties:
1705
+ id:
1706
+ type: string
1707
+ docs: Identifier for a Chat. Formatted as a UUID.
1708
+ chat_group_id:
1709
+ type: string
1710
+ docs: >-
1711
+ Identifier for the Chat Group. Any chat resumed from this Chat will
1712
+ have the same `chat_group_id`. Formatted as a UUID.
1713
+ status:
1714
+ type: ReturnChatPagedEventsStatus
1715
+ docs: >-
1716
+ Indicates the current state of the chat. There are six possible
1717
+ statuses:
1718
+
1719
+
1720
+ - `ACTIVE`: The chat is currently active and ongoing.
1721
+
1722
+
1723
+ - `USER_ENDED`: The chat was manually ended by the user.
1724
+
1725
+
1726
+ - `USER_TIMEOUT`: The chat ended due to a user-defined timeout.
1727
+
1728
+
1729
+ - `MAX_DURATION_TIMEOUT`: The chat ended because it reached the
1730
+ maximum allowed duration.
1731
+
1732
+
1733
+ - `INACTIVITY_TIMEOUT`: The chat ended due to an inactivity timeout.
1734
+
1735
+
1736
+ - `ERROR`: The chat ended unexpectedly due to an error.
1737
+ start_timestamp:
1738
+ type: long
1739
+ docs: >-
1740
+ Time at which the Chat started. Measured in seconds since the Unix
1741
+ epoch.
1742
+ end_timestamp:
1743
+ type: optional<long>
1744
+ docs: >-
1745
+ Time at which the Chat ended. Measured in seconds since the Unix
1746
+ epoch.
1747
+ pagination_direction:
1748
+ type: ReturnChatPagedEventsPaginationDirection
1749
+ docs: >-
1750
+ Indicates the order in which the paginated results are presented,
1751
+ based on their creation date.
1752
+
1753
+
1754
+ It shows `ASC` for ascending order (chronological, with the oldest
1755
+ records first) or `DESC` for descending order (reverse-chronological,
1756
+ with the newest records first). This value corresponds to the
1757
+ `ascending_order` query parameter used in the request.
1758
+ events_page:
1759
+ docs: List of Chat Events for the specified `page_number` and `page_size`.
1760
+ type: list<ReturnChatEvent>
1761
+ metadata:
1762
+ type: optional<string>
1763
+ docs: Stringified JSON with additional metadata about the chat.
1764
+ page_number:
1765
+ type: integer
1766
+ docs: >-
1767
+ The page number of the returned list.
1768
+
1769
+
1770
+ This value corresponds to the `page_number` parameter specified in the
1771
+ request. Pagination uses zero-based indexing.
1772
+ page_size:
1773
+ type: integer
1774
+ docs: >-
1775
+ The maximum number of items returned per page.
1776
+
1777
+
1778
+ This value corresponds to the `page_size` parameter specified in the
1779
+ request.
1780
+ total_pages:
1781
+ type: integer
1782
+ docs: The total number of pages in the collection.
1783
+ config: optional<ReturnConfigSpec>
1784
+ source:
1785
+ openapi: evi-openapi.json
1786
+ ReturnChatAudioReconstructionStatus:
1787
+ enum:
1788
+ - QUEUED
1789
+ - IN_PROGRESS
1790
+ - COMPLETE
1791
+ - ERROR
1792
+ - CANCELLED
1793
+ docs: >-
1794
+ Indicates the current state of the audio reconstruction job. There are
1795
+ five possible statuses:
1796
+
1797
+
1798
+ - `QUEUED`: The reconstruction job is waiting to be processed.
1799
+
1800
+
1801
+ - `IN_PROGRESS`: The reconstruction is currently being processed.
1802
+
1803
+
1804
+ - `COMPLETE`: The audio reconstruction is finished and ready for download.
1805
+
1806
+
1807
+ - `ERROR`: An error occurred during the reconstruction process.
1808
+
1809
+
1810
+ - `CANCELED`: The reconstruction job has been canceled.
1811
+ inline: true
1812
+ source:
1813
+ openapi: evi-openapi.json
1814
+ ReturnChatAudioReconstruction:
1815
+ docs: >-
1816
+ List of chat audio reconstructions returned for the specified page number
1817
+ and page size.
1818
+ properties:
1819
+ id:
1820
+ type: string
1821
+ docs: Identifier for the chat. Formatted as a UUID.
1822
+ user_id:
1823
+ type: string
1824
+ docs: Identifier for the user that owns this chat. Formatted as a UUID.
1825
+ status:
1826
+ type: ReturnChatAudioReconstructionStatus
1827
+ docs: >-
1828
+ Indicates the current state of the audio reconstruction job. There are
1829
+ five possible statuses:
1830
+
1831
+
1832
+ - `QUEUED`: The reconstruction job is waiting to be processed.
1833
+
1834
+
1835
+ - `IN_PROGRESS`: The reconstruction is currently being processed.
1836
+
1837
+
1838
+ - `COMPLETE`: The audio reconstruction is finished and ready for
1839
+ download.
1840
+
1841
+
1842
+ - `ERROR`: An error occurred during the reconstruction process.
1843
+
1844
+
1845
+ - `CANCELED`: The reconstruction job has been canceled.
1846
+ filename:
1847
+ type: optional<string>
1848
+ docs: Name of the chat audio reconstruction file.
1849
+ modified_at:
1850
+ type: optional<long>
1851
+ docs: >-
1852
+ The timestamp of the most recent status change for this audio
1853
+ reconstruction, formatted milliseconds since the Unix epoch.
1854
+ signed_audio_url:
1855
+ type: optional<string>
1856
+ docs: Signed URL used to download the chat audio reconstruction file.
1857
+ signed_url_expiration_timestamp_millis:
1858
+ type: optional<long>
1859
+ docs: >-
1860
+ The timestamp when the signed URL will expire, formatted as a Unix
1861
+ epoch milliseconds.
1862
+ source:
1863
+ openapi: evi-openapi.json
1864
+ ReturnPagedChatGroupsPaginationDirection:
1865
+ enum:
1866
+ - ASC
1867
+ - DESC
1868
+ docs: >-
1869
+ Indicates the order in which the paginated results are presented, based on
1870
+ their creation date.
1871
+
1872
+
1873
+ It shows `ASC` for ascending order (chronological, with the oldest records
1874
+ first) or `DESC` for descending order (reverse-chronological, with the
1875
+ newest records first). This value corresponds to the `ascending_order`
1876
+ query parameter used in the request.
1877
+ inline: true
1878
+ source:
1879
+ openapi: evi-openapi.json
1880
+ ReturnPagedChatGroups:
1881
+ docs: A paginated list of chat_groups returned from the server
1882
+ properties:
1883
+ page_number:
1884
+ type: integer
1885
+ docs: >-
1886
+ The page number of the returned list.
1887
+
1888
+
1889
+ This value corresponds to the `page_number` parameter specified in the
1890
+ request. Pagination uses zero-based indexing.
1891
+ page_size:
1892
+ type: integer
1893
+ docs: >-
1894
+ The maximum number of items returned per page.
1895
+
1896
+
1897
+ This value corresponds to the `page_size` parameter specified in the
1898
+ request.
1899
+ total_pages:
1900
+ type: integer
1901
+ docs: The total number of pages in the collection.
1902
+ pagination_direction:
1903
+ type: ReturnPagedChatGroupsPaginationDirection
1904
+ docs: >-
1905
+ Indicates the order in which the paginated results are presented,
1906
+ based on their creation date.
1907
+
1908
+
1909
+ It shows `ASC` for ascending order (chronological, with the oldest
1910
+ records first) or `DESC` for descending order (reverse-chronological,
1911
+ with the newest records first). This value corresponds to the
1912
+ `ascending_order` query parameter used in the request.
1913
+ chat_groups_page:
1914
+ docs: >-
1915
+ List of Chat Groups and their metadata returned for the specified
1916
+ `page_number` and `page_size`.
1917
+ type: list<ReturnChatGroup>
1918
+ source:
1919
+ openapi: evi-openapi.json
1920
+ ReturnChatGroupPagedChatsPaginationDirection:
1921
+ enum:
1922
+ - ASC
1923
+ - DESC
1924
+ docs: >-
1925
+ Indicates the order in which the paginated results are presented, based on
1926
+ their creation date.
1927
+
1928
+
1929
+ It shows `ASC` for ascending order (chronological, with the oldest records
1930
+ first) or `DESC` for descending order (reverse-chronological, with the
1931
+ newest records first). This value corresponds to the `ascending_order`
1932
+ query parameter used in the request.
1933
+ inline: true
1934
+ source:
1935
+ openapi: evi-openapi.json
1936
+ ReturnChatGroupPagedChats:
1937
+ docs: >-
1938
+ A description of chat_group and its status with a paginated list of each
1939
+ chat in the chat_group
1940
+ properties:
1941
+ id:
1942
+ type: string
1943
+ docs: >-
1944
+ Identifier for the Chat Group. Any Chat resumed from this Chat Group
1945
+ will have the same `chat_group_id`. Formatted as a UUID.
1946
+ first_start_timestamp:
1947
+ type: long
1948
+ docs: >-
1949
+ Time at which the first Chat in this Chat Group was created. Measured
1950
+ in seconds since the Unix epoch.
1951
+ most_recent_start_timestamp:
1952
+ type: long
1953
+ docs: >-
1954
+ Time at which the most recent Chat in this Chat Group was created.
1955
+ Measured in seconds since the Unix epoch.
1956
+ num_chats:
1957
+ type: integer
1958
+ docs: The total number of Chats associated with this Chat Group.
1959
+ page_number:
1960
+ type: integer
1961
+ docs: >-
1962
+ The page number of the returned list.
1963
+
1964
+
1965
+ This value corresponds to the `page_number` parameter specified in the
1966
+ request. Pagination uses zero-based indexing.
1967
+ page_size:
1968
+ type: integer
1969
+ docs: >-
1970
+ The maximum number of items returned per page.
1971
+
1972
+
1973
+ This value corresponds to the `page_size` parameter specified in the
1974
+ request.
1975
+ total_pages:
1976
+ type: integer
1977
+ docs: The total number of pages in the collection.
1978
+ pagination_direction:
1979
+ type: ReturnChatGroupPagedChatsPaginationDirection
1980
+ docs: >-
1981
+ Indicates the order in which the paginated results are presented,
1982
+ based on their creation date.
1983
+
1984
+
1985
+ It shows `ASC` for ascending order (chronological, with the oldest
1986
+ records first) or `DESC` for descending order (reverse-chronological,
1987
+ with the newest records first). This value corresponds to the
1988
+ `ascending_order` query parameter used in the request.
1989
+ chats_page:
1990
+ docs: List of Chats for the specified `page_number` and `page_size`.
1991
+ type: list<ReturnChat>
1992
+ active:
1993
+ type: optional<boolean>
1994
+ docs: >-
1995
+ Denotes whether there is an active Chat associated with this Chat
1996
+ Group.
1997
+ source:
1998
+ openapi: evi-openapi.json
1999
+ ReturnChatGroupPagedEventsPaginationDirection:
2000
+ enum:
2001
+ - ASC
2002
+ - DESC
2003
+ docs: >-
2004
+ Indicates the order in which the paginated results are presented, based on
2005
+ their creation date.
2006
+
2007
+
2008
+ It shows `ASC` for ascending order (chronological, with the oldest records
2009
+ first) or `DESC` for descending order (reverse-chronological, with the
2010
+ newest records first). This value corresponds to the `ascending_order`
2011
+ query parameter used in the request.
2012
+ inline: true
2013
+ source:
2014
+ openapi: evi-openapi.json
2015
+ ReturnChatGroupPagedEvents:
2016
+ docs: >-
2017
+ A paginated list of chat events that occurred across chats in this
2018
+ chat_group from the server
2019
+ properties:
2020
+ id:
2021
+ type: string
2022
+ docs: >-
2023
+ Identifier for the Chat Group. Any Chat resumed from this Chat Group
2024
+ will have the same `chat_group_id`. Formatted as a UUID.
2025
+ page_number:
2026
+ type: integer
2027
+ docs: >-
2028
+ The page number of the returned list.
2029
+
2030
+
2031
+ This value corresponds to the `page_number` parameter specified in the
2032
+ request. Pagination uses zero-based indexing.
2033
+ page_size:
2034
+ type: integer
2035
+ docs: >-
2036
+ The maximum number of items returned per page.
2037
+
2038
+
2039
+ This value corresponds to the `page_size` parameter specified in the
2040
+ request.
2041
+ total_pages:
2042
+ type: integer
2043
+ docs: The total number of pages in the collection.
2044
+ pagination_direction:
2045
+ type: ReturnChatGroupPagedEventsPaginationDirection
2046
+ docs: >-
2047
+ Indicates the order in which the paginated results are presented,
2048
+ based on their creation date.
2049
+
2050
+
2051
+ It shows `ASC` for ascending order (chronological, with the oldest
2052
+ records first) or `DESC` for descending order (reverse-chronological,
2053
+ with the newest records first). This value corresponds to the
2054
+ `ascending_order` query parameter used in the request.
2055
+ events_page:
2056
+ docs: List of Chat Events for the specified `page_number` and `page_size`.
2057
+ type: list<ReturnChatEvent>
2058
+ source:
2059
+ openapi: evi-openapi.json
2060
+ ReturnChatGroupPagedAudioReconstructionsPaginationDirection:
2061
+ enum:
2062
+ - ASC
2063
+ - DESC
2064
+ docs: >-
2065
+ Indicates the order in which the paginated results are presented, based on
2066
+ their creation date.
2067
+
2068
+
2069
+ It shows `ASC` for ascending order (chronological, with the oldest records
2070
+ first) or `DESC` for descending order (reverse-chronological, with the
2071
+ newest records first). This value corresponds to the `ascending_order`
2072
+ query parameter used in the request.
2073
+ inline: true
2074
+ source:
2075
+ openapi: evi-openapi.json
2076
+ ReturnChatGroupPagedAudioReconstructions:
2077
+ docs: A paginated list of chat reconstructions for a particular chatgroup
2078
+ properties:
2079
+ id:
2080
+ type: string
2081
+ docs: Identifier for the chat group. Formatted as a UUID.
2082
+ user_id:
2083
+ type: string
2084
+ docs: Identifier for the user that owns this chat. Formatted as a UUID.
2085
+ num_chats:
2086
+ type: integer
2087
+ docs: Total number of chats in this chatgroup
2088
+ page_number:
2089
+ type: integer
2090
+ docs: >-
2091
+ The page number of the returned list.
2092
+
2093
+
2094
+ This value corresponds to the `page_number` parameter specified in the
2095
+ request. Pagination uses zero-based indexing.
2096
+ page_size:
2097
+ type: integer
2098
+ docs: >-
2099
+ The maximum number of items returned per page.
2100
+
2101
+
2102
+ This value corresponds to the `page_size` parameter specified in the
2103
+ request.
2104
+ total_pages:
2105
+ type: integer
2106
+ docs: The total number of pages in the collection.
2107
+ pagination_direction:
2108
+ type: ReturnChatGroupPagedAudioReconstructionsPaginationDirection
2109
+ docs: >-
2110
+ Indicates the order in which the paginated results are presented,
2111
+ based on their creation date.
2112
+
2113
+
2114
+ It shows `ASC` for ascending order (chronological, with the oldest
2115
+ records first) or `DESC` for descending order (reverse-chronological,
2116
+ with the newest records first). This value corresponds to the
2117
+ `ascending_order` query parameter used in the request.
2118
+ audio_reconstructions_page:
2119
+ docs: >-
2120
+ List of chat audio reconstructions returned for the specified page
2121
+ number and page size.
2122
+ type: list<ReturnChatAudioReconstruction>
2123
+ source:
2124
+ openapi: evi-openapi.json
2125
+ ReturnPromptVersionType:
2126
+ enum:
2127
+ - FIXED
2128
+ - LATEST
2129
+ docs: >-
2130
+ Versioning method for a Prompt. Either `FIXED` for using a fixed version
2131
+ number or `LATEST` for auto-updating to the latest version.
2132
+ inline: true
2133
+ source:
2134
+ openapi: evi-openapi.json
2135
+ PostedConfigPromptSpec:
2136
+ docs: >-
2137
+ Identifies which prompt to use in a a config OR how to create a new prompt
2138
+ to use in the config
2139
+ properties:
2140
+ id:
2141
+ type: optional<string>
2142
+ docs: Identifier for a Prompt. Formatted as a UUID.
2143
+ version:
2144
+ type: optional<integer>
2145
+ docs: >-
2146
+ Version number for a Prompt. Version numbers should be integers. The
2147
+ combination of configId and version number is unique.
2148
+ text:
2149
+ type: optional<string>
2150
+ docs: Text used to create a new prompt for a particular config.
2151
+ source:
2152
+ openapi: evi-openapi.json
2153
+ PostedLanguageModel:
2154
+ docs: A LanguageModel to be posted to the server
2155
+ properties:
2156
+ model_provider:
2157
+ type: optional<ModelProviderEnum>
2158
+ docs: The provider of the supplemental language model.
2159
+ model_resource:
2160
+ type: optional<LanguageModelType>
2161
+ docs: String that specifies the language model to use with `model_provider`.
2162
+ temperature:
2163
+ type: optional<float>
2164
+ docs: >-
2165
+ The model temperature, with values between 0 to 1 (inclusive).
2166
+
2167
+
2168
+ Controls the randomness of the LLM's output, with values closer to 0
2169
+ yielding focused, deterministic responses and values closer to 1
2170
+ producing more creative, diverse responses.
2171
+ source:
2172
+ openapi: evi-openapi.json
2173
+ PostedEllmModel:
2174
+ docs: A eLLM model configuration to be posted to the server
2175
+ properties:
2176
+ allow_short_responses:
2177
+ type: optional<boolean>
2178
+ docs: |-
2179
+ Boolean indicating if the eLLM is allowed to generate short responses.
2180
+
2181
+ If omitted, short responses from the eLLM are enabled by default.
2182
+ source:
2183
+ openapi: evi-openapi.json
2184
+ PostedUserDefinedToolSpec:
2185
+ docs: A specific tool identifier to be posted to the server
2186
+ properties:
2187
+ id:
2188
+ type: string
2189
+ docs: Identifier for a Tool. Formatted as a UUID.
2190
+ version:
2191
+ type: optional<integer>
2192
+ docs: >-
2193
+ Version number for a Tool.
2194
+
2195
+
2196
+ Tools, Configs, Custom Voices, and Prompts are versioned. This
2197
+ versioning system supports iterative development, allowing you to
2198
+ progressively refine tools and revert to previous versions if needed.
2199
+
2200
+
2201
+ Version numbers are integer values representing different iterations
2202
+ of the Tool. Each update to the Tool increments its version number.
2203
+ source:
2204
+ openapi: evi-openapi.json
2205
+ PostedBuiltinToolName:
2206
+ enum:
2207
+ - web_search
2208
+ - hang_up
2209
+ docs: >-
2210
+ Name of the built-in tool to use. Hume supports the following built-in
2211
+ tools:
2212
+
2213
+
2214
+ - **web_search:** enables EVI to search the web for up-to-date information
2215
+ when applicable.
2216
+
2217
+ - **hang_up:** closes the WebSocket connection when appropriate (e.g.,
2218
+ after detecting a farewell in the conversation).
2219
+
2220
+
2221
+ For more information, see our guide on [using built-in
2222
+ tools](/docs/speech-to-speech-evi/features/tool-use#using-built-in-tools).
2223
+ inline: true
2224
+ source:
2225
+ openapi: evi-openapi.json
2226
+ PostedBuiltinTool:
2227
+ docs: A configuration of a built-in tool to be posted to the server
2228
+ properties:
2229
+ name:
2230
+ type: PostedBuiltinToolName
2231
+ docs: >-
2232
+ Name of the built-in tool to use. Hume supports the following built-in
2233
+ tools:
2234
+
2235
+
2236
+ - **web_search:** enables EVI to search the web for up-to-date
2237
+ information when applicable.
2238
+
2239
+ - **hang_up:** closes the WebSocket connection when appropriate (e.g.,
2240
+ after detecting a farewell in the conversation).
2241
+
2242
+
2243
+ For more information, see our guide on [using built-in
2244
+ tools](/docs/speech-to-speech-evi/features/tool-use#using-built-in-tools).
2245
+ fallback_content:
2246
+ type: optional<string>
2247
+ docs: >-
2248
+ Optional text passed to the supplemental LLM in place of the tool call
2249
+ result. The LLM then uses this text to generate a response back to the
2250
+ user, ensuring continuity in the conversation if the Tool errors.
2251
+ source:
2252
+ openapi: evi-openapi.json
2253
+ PostedEventMessageSpecs:
2254
+ docs: >-
2255
+ Collection of event messages returned by the server.
2256
+
2257
+
2258
+ Event messages are sent by the server when specific events occur during a
2259
+ chat session. These messages are used to configure behaviors for EVI, such
2260
+ as controlling how EVI starts a new conversation.
2261
+ properties:
2262
+ on_new_chat:
2263
+ type: optional<PostedEventMessageSpec>
2264
+ docs: >-
2265
+ Specifies the initial message EVI provides when a new chat is started,
2266
+ such as a greeting or welcome message.
2267
+ on_inactivity_timeout:
2268
+ type: optional<PostedEventMessageSpec>
2269
+ docs: >-
2270
+ Specifies the message EVI provides when the chat is about to be
2271
+ disconnected due to a user inactivity timeout, such as a message
2272
+ mentioning a lack of user input for a period of time.
2273
+
2274
+
2275
+ Enabling an inactivity message allows developers to use this message
2276
+ event for "checking in" with the user if they are not responding to
2277
+ see if they are still active.
2278
+
2279
+
2280
+ If the user does not respond in the number of seconds specified in the
2281
+ `inactivity_timeout` field, then EVI will say the message and the user
2282
+ has 15 seconds to respond. If they respond in time, the conversation
2283
+ will continue; if not, the conversation will end.
2284
+
2285
+
2286
+ However, if the inactivity message is not enabled, then reaching the
2287
+ inactivity timeout will immediately end the connection.
2288
+ on_max_duration_timeout:
2289
+ type: optional<PostedEventMessageSpec>
2290
+ docs: >-
2291
+ Specifies the message EVI provides when the chat is disconnected due
2292
+ to reaching the maximum chat duration, such as a message mentioning
2293
+ the time limit for the chat has been reached.
2294
+ source:
2295
+ openapi: evi-openapi.json
2296
+ PostedNudgeSpec:
2297
+ docs: A nudge specification posted to the server
2298
+ properties:
2299
+ enabled:
2300
+ type: optional<boolean>
2301
+ docs: >-
2302
+ If true, EVI will 'nudge' the user to speak after a determined
2303
+ interval of silence.
2304
+ interval_secs:
2305
+ type: optional<integer>
2306
+ docs: The interval of inactivity (in seconds) before a nudge is triggered.
2307
+ source:
2308
+ openapi: evi-openapi.json
2309
+ PostedTimeoutSpecsInactivity:
2310
+ docs: >-
2311
+ Specifies the duration of user inactivity (in seconds) after which the EVI
2312
+ WebSocket connection will be automatically disconnected. Default is 600
2313
+ seconds (10 minutes).
2314
+
2315
+
2316
+ Accepts a minimum value of 30 seconds and a maximum value of 1,800
2317
+ seconds.
2318
+ properties:
2319
+ duration_secs:
2320
+ type: optional<integer>
2321
+ docs: >-
2322
+ Duration in seconds for the timeout (e.g. 600 seconds represents 10
2323
+ minutes).
2324
+ enabled:
2325
+ type: boolean
2326
+ docs: >-
2327
+ Boolean indicating if this timeout is enabled.
2328
+
2329
+
2330
+ If set to false, EVI will not timeout due to a specified duration of
2331
+ user inactivity being reached. However, the conversation will
2332
+ eventually disconnect after 1,800 seconds (30 minutes), which is the
2333
+ maximum WebSocket duration limit for EVI.
2334
+ source:
2335
+ openapi: evi-openapi.json
2336
+ inline: true
2337
+ PostedTimeoutSpecsMaxDuration:
2338
+ docs: >-
2339
+ Specifies the maximum allowed duration (in seconds) for an EVI WebSocket
2340
+ connection before it is automatically disconnected. Default is 1,800
2341
+ seconds (30 minutes).
2342
+
2343
+
2344
+ Accepts a minimum value of 30 seconds and a maximum value of 1,800
2345
+ seconds.
2346
+ properties:
2347
+ duration_secs:
2348
+ type: optional<integer>
2349
+ docs: >-
2350
+ Duration in seconds for the timeout (e.g. 600 seconds represents 10
2351
+ minutes).
2352
+ enabled:
2353
+ type: boolean
2354
+ docs: >-
2355
+ Boolean indicating if this timeout is enabled.
2356
+
2357
+
2358
+ If set to false, EVI will not timeout due to a specified maximum
2359
+ duration being reached. However, the conversation will eventually
2360
+ disconnect after 1,800 seconds (30 minutes), which is the maximum
2361
+ WebSocket duration limit for EVI.
2362
+ source:
2363
+ openapi: evi-openapi.json
2364
+ inline: true
2365
+ PostedTimeoutSpecs:
2366
+ docs: >-
2367
+ Collection of timeout specifications returned by the server.
2368
+
2369
+
2370
+ Timeouts are sent by the server when specific time-based events occur
2371
+ during a chat session. These specifications set the inactivity timeout and
2372
+ the maximum duration an EVI WebSocket connection can stay open before it
2373
+ is automatically disconnected.
2374
+ properties:
2375
+ inactivity:
2376
+ type: optional<PostedTimeoutSpecsInactivity>
2377
+ docs: >-
2378
+ Specifies the duration of user inactivity (in seconds) after which the
2379
+ EVI WebSocket connection will be automatically disconnected. Default
2380
+ is 600 seconds (10 minutes).
2381
+
2382
+
2383
+ Accepts a minimum value of 30 seconds and a maximum value of 1,800
2384
+ seconds.
2385
+ max_duration:
2386
+ type: optional<PostedTimeoutSpecsMaxDuration>
2387
+ docs: >-
2388
+ Specifies the maximum allowed duration (in seconds) for an EVI
2389
+ WebSocket connection before it is automatically disconnected. Default
2390
+ is 1,800 seconds (30 minutes).
2391
+
2392
+
2393
+ Accepts a minimum value of 30 seconds and a maximum value of 1,800
2394
+ seconds.
2395
+ source:
2396
+ openapi: evi-openapi.json
2397
+ PostedWebhookEventType:
2398
+ enum:
2399
+ - chat_started
2400
+ - chat_ended
2401
+ docs: Events this URL is subscribed to
2402
+ inline: true
2403
+ source:
2404
+ openapi: evi-openapi.json
2405
+ PostedWebhookSpec:
2406
+ docs: URL and settings for a specific webhook to be posted to the server
2407
+ properties:
2408
+ url:
2409
+ type: string
2410
+ docs: >-
2411
+ The URL where event payloads will be sent. This must be a valid https
2412
+ URL to ensure secure communication. The server at this URL must accept
2413
+ POST requests with a JSON payload.
2414
+ events:
2415
+ docs: >-
2416
+ The list of events the specified URL is subscribed to.
2417
+
2418
+
2419
+ See our [webhooks
2420
+ guide](/docs/speech-to-speech-evi/configuration/build-a-configuration#supported-events)
2421
+ for more information on supported events.
2422
+ type: list<PostedWebhookEventType>
2423
+ source:
2424
+ openapi: evi-openapi.json
2425
+ ReturnLanguageModel:
2426
+ docs: A specific LanguageModel
2427
+ properties:
2428
+ model_provider:
2429
+ type: optional<ModelProviderEnum>
2430
+ docs: The provider of the supplemental language model.
2431
+ model_resource:
2432
+ type: optional<LanguageModelType>
2433
+ docs: String that specifies the language model to use with `model_provider`.
2434
+ temperature:
2435
+ type: optional<float>
2436
+ docs: >-
2437
+ The model temperature, with values between 0 to 1 (inclusive).
2438
+
2439
+
2440
+ Controls the randomness of the LLM's output, with values closer to 0
2441
+ yielding focused, deterministic responses and values closer to 1
2442
+ producing more creative, diverse responses.
2443
+ source:
2444
+ openapi: evi-openapi.json
2445
+ ReturnEllmModel:
2446
+ docs: A specific eLLM Model configuration
2447
+ properties:
2448
+ allow_short_responses:
2449
+ type: boolean
2450
+ docs: |-
2451
+ Boolean indicating if the eLLM is allowed to generate short responses.
2452
+
2453
+ If omitted, short responses from the eLLM are enabled by default.
2454
+ source:
2455
+ openapi: evi-openapi.json
2456
+ ReturnBuiltinToolToolType:
2457
+ enum:
2458
+ - BUILTIN
2459
+ - FUNCTION
2460
+ docs: >-
2461
+ Type of Tool. Either `BUILTIN` for natively implemented tools, like web
2462
+ search, or `FUNCTION` for user-defined tools.
2463
+ inline: true
2464
+ source:
2465
+ openapi: evi-openapi.json
2466
+ ReturnBuiltinTool:
2467
+ docs: A specific builtin tool version returned from the server
2468
+ properties:
2469
+ tool_type:
2470
+ type: ReturnBuiltinToolToolType
2471
+ docs: >-
2472
+ Type of Tool. Either `BUILTIN` for natively implemented tools, like
2473
+ web search, or `FUNCTION` for user-defined tools.
2474
+ name:
2475
+ type: string
2476
+ docs: Name applied to all versions of a particular Tool.
2477
+ fallback_content:
2478
+ type: optional<string>
2479
+ docs: >-
2480
+ Optional text passed to the supplemental LLM in place of the tool call
2481
+ result. The LLM then uses this text to generate a response back to the
2482
+ user, ensuring continuity in the conversation if the Tool errors.
2483
+ source:
2484
+ openapi: evi-openapi.json
2485
+ ReturnEventMessageSpecs:
2486
+ docs: >-
2487
+ Collection of event messages returned by the server.
2488
+
2489
+
2490
+ Event messages are sent by the server when specific events occur during a
2491
+ chat session. These messages are used to configure behaviors for EVI, such
2492
+ as controlling how EVI starts a new conversation.
2493
+ properties:
2494
+ on_new_chat:
2495
+ type: optional<ReturnEventMessageSpec>
2496
+ docs: >-
2497
+ Specifies the initial message EVI provides when a new chat is started,
2498
+ such as a greeting or welcome message.
2499
+ on_inactivity_timeout:
2500
+ type: optional<ReturnEventMessageSpec>
2501
+ docs: >-
2502
+ Specifies the message EVI provides when the chat is about to be
2503
+ disconnected due to a user inactivity timeout, such as a message
2504
+ mentioning a lack of user input for a period of time.
2505
+
2506
+
2507
+ Enabling an inactivity message allows developers to use this message
2508
+ event for "checking in" with the user if they are not responding to
2509
+ see if they are still active.
2510
+
2511
+
2512
+ If the user does not respond in the number of seconds specified in the
2513
+ `inactivity_timeout` field, then EVI will say the message and the user
2514
+ has 15 seconds to respond. If they respond in time, the conversation
2515
+ will continue; if not, the conversation will end.
2516
+
2517
+
2518
+ However, if the inactivity message is not enabled, then reaching the
2519
+ inactivity timeout will immediately end the connection.
2520
+ on_max_duration_timeout:
2521
+ type: optional<ReturnEventMessageSpec>
2522
+ docs: >-
2523
+ Specifies the message EVI provides when the chat is disconnected due
2524
+ to reaching the maximum chat duration, such as a message mentioning
2525
+ the time limit for the chat has been reached.
2526
+ source:
2527
+ openapi: evi-openapi.json
2528
+ ReturnTimeoutSpecs:
2529
+ docs: >-
2530
+ Collection of timeout specifications returned by the server.
2531
+
2532
+
2533
+ Timeouts are sent by the server when specific time-based events occur
2534
+ during a chat session. These specifications set the inactivity timeout and
2535
+ the maximum duration an EVI WebSocket connection can stay open before it
2536
+ is automatically disconnected.
2537
+ properties:
2538
+ inactivity:
2539
+ type: ReturnTimeoutSpec
2540
+ docs: >-
2541
+ Specifies the duration of user inactivity (in seconds) after which the
2542
+ EVI WebSocket connection will be automatically disconnected. Default
2543
+ is 600 seconds (10 minutes).
2544
+
2545
+
2546
+ Accepts a minimum value of 30 seconds and a maximum value of 1,800
2547
+ seconds.
2548
+ max_duration:
2549
+ type: ReturnTimeoutSpec
2550
+ docs: >-
2551
+ Specifies the maximum allowed duration (in seconds) for an EVI
2552
+ WebSocket connection before it is automatically disconnected. Default
2553
+ is 1,800 seconds (30 minutes).
2554
+
2555
+
2556
+ Accepts a minimum value of 30 seconds and a maximum value of 1,800
2557
+ seconds.
2558
+ source:
2559
+ openapi: evi-openapi.json
2560
+ ReturnNudgeSpec:
2561
+ docs: A specific nudge configuration returned from the server
2562
+ properties:
2563
+ enabled:
2564
+ type: boolean
2565
+ docs: EVI will nudge user after inactivity
2566
+ interval_secs:
2567
+ type: optional<integer>
2568
+ docs: Time interval in seconds after which the nudge will be sent.
2569
+ source:
2570
+ openapi: evi-openapi.json
2571
+ ReturnWebhookEventType:
2572
+ enum:
2573
+ - chat_started
2574
+ - chat_ended
2575
+ docs: Events this URL is subscribed to
2576
+ inline: true
2577
+ source:
2578
+ openapi: evi-openapi.json
2579
+ ReturnWebhookSpec:
2580
+ docs: Collection of webhook URL endpoints to be returned from the server
2581
+ properties:
2582
+ url:
2583
+ type: string
2584
+ docs: >-
2585
+ The URL where event payloads will be sent. This must be a valid https
2586
+ URL to ensure secure communication. The server at this URL must accept
2587
+ POST requests with a JSON payload.
2588
+ events:
2589
+ docs: >-
2590
+ The list of events the specified URL is subscribed to.
2591
+
2592
+
2593
+ See our [webhooks
2594
+ guide](/docs/speech-to-speech-evi/configuration/build-a-configuration#supported-events)
2595
+ for more information on supported events.
2596
+ type: list<ReturnWebhookEventType>
2597
+ source:
2598
+ openapi: evi-openapi.json
2599
+ ReturnChatStatus:
2600
+ enum:
2601
+ - ACTIVE
2602
+ - USER_ENDED
2603
+ - USER_TIMEOUT
2604
+ - MAX_DURATION_TIMEOUT
2605
+ - INACTIVITY_TIMEOUT
2606
+ - ERROR
2607
+ docs: >-
2608
+ Indicates the current state of the chat. There are six possible statuses:
2609
+
2610
+
2611
+ - `ACTIVE`: The chat is currently active and ongoing.
2612
+
2613
+
2614
+ - `USER_ENDED`: The chat was manually ended by the user.
2615
+
2616
+
2617
+ - `USER_TIMEOUT`: The chat ended due to a user-defined timeout.
2618
+
2619
+
2620
+ - `MAX_DURATION_TIMEOUT`: The chat ended because it reached the maximum
2621
+ allowed duration.
2622
+
2623
+
2624
+ - `INACTIVITY_TIMEOUT`: The chat ended due to an inactivity timeout.
2625
+
2626
+
2627
+ - `ERROR`: The chat ended unexpectedly due to an error.
2628
+ inline: true
2629
+ source:
2630
+ openapi: evi-openapi.json
2631
+ ReturnChat:
2632
+ docs: A description of chat and its status
2633
+ properties:
2634
+ id:
2635
+ type: string
2636
+ docs: Identifier for a Chat. Formatted as a UUID.
2637
+ chat_group_id:
2638
+ type: string
2639
+ docs: >-
2640
+ Identifier for the Chat Group. Any chat resumed from this Chat will
2641
+ have the same `chat_group_id`. Formatted as a UUID.
2642
+ status:
2643
+ type: ReturnChatStatus
2644
+ docs: >-
2645
+ Indicates the current state of the chat. There are six possible
2646
+ statuses:
2647
+
2648
+
2649
+ - `ACTIVE`: The chat is currently active and ongoing.
2650
+
2651
+
2652
+ - `USER_ENDED`: The chat was manually ended by the user.
2653
+
2654
+
2655
+ - `USER_TIMEOUT`: The chat ended due to a user-defined timeout.
2656
+
2657
+
2658
+ - `MAX_DURATION_TIMEOUT`: The chat ended because it reached the
2659
+ maximum allowed duration.
2660
+
2661
+
2662
+ - `INACTIVITY_TIMEOUT`: The chat ended due to an inactivity timeout.
2663
+
2664
+
2665
+ - `ERROR`: The chat ended unexpectedly due to an error.
2666
+ start_timestamp:
2667
+ type: long
2668
+ docs: >-
2669
+ Time at which the Chat started. Measured in seconds since the Unix
2670
+ epoch.
2671
+ end_timestamp:
2672
+ type: optional<long>
2673
+ docs: >-
2674
+ Time at which the Chat ended. Measured in seconds since the Unix
2675
+ epoch.
2676
+ event_count:
2677
+ type: optional<long>
2678
+ docs: The total number of events currently in this chat.
2679
+ metadata:
2680
+ type: optional<string>
2681
+ docs: Stringified JSON with additional metadata about the chat.
2682
+ config: optional<ReturnConfigSpec>
2683
+ source:
2684
+ openapi: evi-openapi.json
2685
+ ReturnChatEventRole:
2686
+ enum:
2687
+ - USER
2688
+ - AGENT
2689
+ - SYSTEM
2690
+ - TOOL
2691
+ docs: >-
2692
+ The role of the entity which generated the Chat Event. There are four
2693
+ possible values:
2694
+
2695
+ - `USER`: The user, capable of sending user messages and interruptions.
2696
+
2697
+ - `AGENT`: The assistant, capable of sending agent messages.
2698
+
2699
+ - `SYSTEM`: The backend server, capable of transmitting errors.
2700
+
2701
+ - `TOOL`: The function calling mechanism.
2702
+ inline: true
2703
+ source:
2704
+ openapi: evi-openapi.json
2705
+ ReturnChatEventType:
2706
+ enum:
2707
+ - FUNCTION_CALL
2708
+ - FUNCTION_CALL_RESPONSE
2709
+ - CHAT_END_MESSAGE
2710
+ - AGENT_MESSAGE
2711
+ - SYSTEM_PROMPT
2712
+ - USER_RECORDING_START_MESSAGE
2713
+ - RESUME_ONSET
2714
+ - USER_INTERRUPTION
2715
+ - CHAT_START_MESSAGE
2716
+ - PAUSE_ONSET
2717
+ - USER_MESSAGE
2718
+ docs: >-
2719
+ Type of Chat Event. There are eleven Chat Event types:
2720
+
2721
+ - `SYSTEM_PROMPT`: The system prompt used to initialize the session.
2722
+
2723
+ - `CHAT_START_MESSAGE`: Marks the beginning of the chat session.
2724
+
2725
+ - `USER_RECORDING_START_MESSAGE`: Marks when the client began streaming
2726
+ audio and the start of audio processing.
2727
+
2728
+ - `USER_MESSAGE`: A message sent by the user.
2729
+
2730
+ - `USER_INTERRUPTION`: A user-initiated interruption while the assistant
2731
+ is speaking.
2732
+
2733
+ - `AGENT_MESSAGE`: A response generated by the assistant.
2734
+
2735
+ - `FUNCTION_CALL`: A record of a tool invocation by the assistant.
2736
+
2737
+ - `FUNCTION_CALL_RESPONSE`: The result of a previously invoked function or
2738
+ tool.
2739
+
2740
+ - `PAUSE_ONSET`: Marks when the client sent a `pause_assistant_message` to
2741
+ pause the assistant.
2742
+
2743
+ - `RESUME_ONSET`: Marks when the client sent a `resume_assistant_message`
2744
+ to resume the assistant.
2745
+
2746
+ - `CHAT_END_MESSAGE`: Indicates the end of the chat session.
2747
+ inline: true
2748
+ source:
2749
+ openapi: evi-openapi.json
2750
+ ReturnChatEvent:
2751
+ docs: A description of a single event in a chat returned from the server
2752
+ properties:
2753
+ id:
2754
+ type: string
2755
+ docs: Identifier for a Chat Event. Formatted as a UUID.
2756
+ chat_id:
2757
+ type: string
2758
+ docs: Identifier for the Chat this event occurred in. Formatted as a UUID.
2759
+ timestamp:
2760
+ type: long
2761
+ docs: >-
2762
+ Time at which the Chat Event occurred. Measured in seconds since the
2763
+ Unix epoch.
2764
+ role:
2765
+ type: ReturnChatEventRole
2766
+ docs: >-
2767
+ The role of the entity which generated the Chat Event. There are four
2768
+ possible values:
2769
+
2770
+ - `USER`: The user, capable of sending user messages and
2771
+ interruptions.
2772
+
2773
+ - `AGENT`: The assistant, capable of sending agent messages.
2774
+
2775
+ - `SYSTEM`: The backend server, capable of transmitting errors.
2776
+
2777
+ - `TOOL`: The function calling mechanism.
2778
+ type:
2779
+ type: ReturnChatEventType
2780
+ docs: >-
2781
+ Type of Chat Event. There are eleven Chat Event types:
2782
+
2783
+ - `SYSTEM_PROMPT`: The system prompt used to initialize the session.
2784
+
2785
+ - `CHAT_START_MESSAGE`: Marks the beginning of the chat session.
2786
+
2787
+ - `USER_RECORDING_START_MESSAGE`: Marks when the client began
2788
+ streaming audio and the start of audio processing.
2789
+
2790
+ - `USER_MESSAGE`: A message sent by the user.
2791
+
2792
+ - `USER_INTERRUPTION`: A user-initiated interruption while the
2793
+ assistant is speaking.
2794
+
2795
+ - `AGENT_MESSAGE`: A response generated by the assistant.
2796
+
2797
+ - `FUNCTION_CALL`: A record of a tool invocation by the assistant.
2798
+
2799
+ - `FUNCTION_CALL_RESPONSE`: The result of a previously invoked
2800
+ function or tool.
2801
+
2802
+ - `PAUSE_ONSET`: Marks when the client sent a
2803
+ `pause_assistant_message` to pause the assistant.
2804
+
2805
+ - `RESUME_ONSET`: Marks when the client sent a
2806
+ `resume_assistant_message` to resume the assistant.
2807
+
2808
+ - `CHAT_END_MESSAGE`: Indicates the end of the chat session.
2809
+ message_text:
2810
+ type: optional<string>
2811
+ docs: >-
2812
+ The text of the Chat Event. This field contains the message content
2813
+ for each event type listed in the `type` field.
2814
+ emotion_features:
2815
+ type: optional<string>
2816
+ docs: >-
2817
+ Stringified JSON containing the prosody model inference results.
2818
+
2819
+
2820
+ EVI uses the prosody model to measure 48 expressions related to speech
2821
+ and vocal characteristics. These results contain a detailed emotional
2822
+ and tonal analysis of the audio. Scores typically range from 0 to 1,
2823
+ with higher values indicating a stronger confidence level in the
2824
+ measured attribute.
2825
+ metadata:
2826
+ type: optional<string>
2827
+ docs: Stringified JSON with additional metadata about the chat event.
2828
+ source:
2829
+ openapi: evi-openapi.json
2830
+ ReturnConfigSpec:
2831
+ docs: The Config associated with this Chat.
2832
+ properties:
2833
+ id:
2834
+ type: string
2835
+ docs: Identifier for a Config. Formatted as a UUID.
2836
+ version:
2837
+ type: optional<integer>
2838
+ docs: >-
2839
+ Version number for a Config.
2840
+
2841
+
2842
+ Configs, Prompts, Custom Voices, and Tools are versioned. This
2843
+ versioning system supports iterative development, allowing you to
2844
+ progressively refine configurations and revert to previous versions if
2845
+ needed.
2846
+
2847
+
2848
+ Version numbers are integer values representing different iterations
2849
+ of the Config. Each update to the Config increments its version
2850
+ number.
2851
+ source:
2852
+ openapi: evi-openapi.json
2853
+ ReturnChatGroup:
2854
+ docs: A description of chat_group and its status
2855
+ properties:
2856
+ id:
2857
+ type: string
2858
+ docs: >-
2859
+ Identifier for the Chat Group. Any Chat resumed from this Chat Group
2860
+ will have the same `chat_group_id`. Formatted as a UUID.
2861
+ first_start_timestamp:
2862
+ type: long
2863
+ docs: >-
2864
+ Time at which the first Chat in this Chat Group was created. Measured
2865
+ in seconds since the Unix epoch.
2866
+ most_recent_start_timestamp:
2867
+ type: long
2868
+ docs: >-
2869
+ Time at which the most recent Chat in this Chat Group was created.
2870
+ Measured in seconds since the Unix epoch.
2871
+ most_recent_chat_id:
2872
+ type: optional<string>
2873
+ docs: >-
2874
+ The `chat_id` of the most recent Chat in this Chat Group. Formatted as
2875
+ a UUID.
2876
+ most_recent_config: optional<ReturnConfigSpec>
2877
+ num_chats:
2878
+ type: integer
2879
+ docs: The total number of Chats in this Chat Group.
2880
+ active:
2881
+ type: optional<boolean>
2882
+ docs: >-
2883
+ Denotes whether there is an active Chat associated with this Chat
2884
+ Group.
2885
+ source:
2886
+ openapi: evi-openapi.json
2887
+ PostedEventMessageSpec:
2888
+ docs: Settings for a specific event_message to be posted to the server
2889
+ properties:
2890
+ enabled:
2891
+ type: boolean
2892
+ docs: >-
2893
+ Boolean indicating if this event message is enabled.
2894
+
2895
+
2896
+ If set to `true`, a message will be sent when the circumstances for
2897
+ the specific event are met.
2898
+ text:
2899
+ type: optional<string>
2900
+ docs: >-
2901
+ Text to use as the event message when the corresponding event occurs.
2902
+ If no text is specified, EVI will generate an appropriate message
2903
+ based on its current context and the system prompt.
2904
+ source:
2905
+ openapi: evi-openapi.json
2906
+ PostedTimeoutSpec:
2907
+ docs: Settings for a specific timeout to be posted to the server
2908
+ properties:
2909
+ enabled:
2910
+ type: boolean
2911
+ docs: Boolean indicating if this event message is enabled.
2912
+ duration_secs:
2913
+ type: optional<integer>
2914
+ docs: Duration in seconds for the timeout.
2915
+ source:
2916
+ openapi: evi-openapi.json
2917
+ ReturnEventMessageSpec:
2918
+ docs: A specific event message configuration to be returned from the server
2919
+ properties:
2920
+ enabled:
2921
+ type: boolean
2922
+ docs: >-
2923
+ Boolean indicating if this event message is enabled.
2924
+
2925
+
2926
+ If set to `true`, a message will be sent when the circumstances for
2927
+ the specific event are met.
2928
+ text:
2929
+ type: optional<string>
2930
+ docs: >-
2931
+ Text to use as the event message when the corresponding event occurs.
2932
+ If no text is specified, EVI will generate an appropriate message
2933
+ based on its current context and the system prompt.
2934
+ source:
2935
+ openapi: evi-openapi.json
2936
+ ReturnTimeoutSpec:
2937
+ docs: A specific timeout configuration to be returned from the server
2938
+ properties:
2939
+ enabled:
2940
+ type: boolean
2941
+ docs: >-
2942
+ Boolean indicating if this timeout is enabled.
2943
+
2944
+
2945
+ If set to false, EVI will not timeout due to a specified duration
2946
+ being reached. However, the conversation will eventually disconnect
2947
+ after 1,800 seconds (30 minutes), which is the maximum WebSocket
2948
+ duration limit for EVI.
2949
+ duration_secs:
2950
+ type: optional<integer>
2951
+ docs: >-
2952
+ Duration in seconds for the timeout (e.g. 600 seconds represents 10
2953
+ minutes).
2954
+ source:
2955
+ openapi: evi-openapi.json
2956
+ VoiceRef:
2957
+ discriminated: false
2958
+ union:
2959
+ - type: VoiceId
2960
+ - type: VoiceName
2961
+ source:
2962
+ openapi: evi-openapi.json
2963
+ ReturnVoice:
2964
+ docs: An Octave voice available for text-to-speech
2965
+ properties:
2966
+ id: optional<string>
2967
+ name: optional<string>
2968
+ provider: optional<VoiceProvider>
2969
+ source:
2970
+ openapi: evi-openapi.json
2971
+ VoiceProvider:
2972
+ enum:
2973
+ - HUME_AI
2974
+ - CUSTOM_VOICE
2975
+ source:
2976
+ openapi: evi-openapi.json