Configuring EVI

Guide to configuring the Empathic Voice Interface (EVI).

The Empathic Voice Interface (EVI) is designed to be highly configurable, allowing developers to customize the interface to align with their specific requirements. Configuration of EVI can be managed through two primary methods: an EVI configuration and session settings.

Configuration options

EVI configuration options affect the behavior and capabilities of the interface, and include the following configuration options:

OptionDescription
VoiceSelect a voice from a list of 8 preset options or create a custom voice. For further details, see our guide on creating custom voices.
EVI versionSelect the version of EVI you would like to use. For details on similarities and differences between EVI versions 1 and 2, refer to our feature comparison.
PromptProvide a system prompt to guide how EVI should respond. For details on expressive prompt engineering, refer to our prompting guide.
Language modelSelect a language model that best fits your application’s needs. For details on selecting a supplementary language model to meet your needs, such as optimizing for lowest latency, refer to our EVI FAQ. To incorporate your own language model, refer to our guide on using your own language model.
ToolsChoose user-created or built-in tools for EVI to use during conversations. For details on creating tools and adding them to your configuration, see our tool use guide.
Event messagesConfigure messages that EVI will send in specific situations. For details on configuring event messages, see our API Reference.
TimeoutsDefine limits on a chat with EVI to manage conversation flow. For details on specifying timeouts, see our API Reference.
WebhooksSpecify a webhook URL and subscribe to events, such as when a Chat session is started or ended. For details on subscribing to events, see our webhooks guide.

Configs, Prompts, and Tools are versioned to support iterative development—refine your setup over time and roll back to earlier versions whenever you need.

Default configuration options

EVI is pre-configured with a set of default values, which are automatically applied if not specified in your configuration. The default configuration includes a preset voice, language model, and system prompt. EVI does not include any tools by default.

Defaults vary slightly between EVI versions:

EVI 1EVI 2
VoiceITOITO
Language modelclaude-3-5-sonnet-latesthume-evi-2
System promptHume defaultHume default
ToolsNoneNone

Configuration defaults may change over time. To keep your EVI setup stable, explicitly specify all options when defining your configuration. For reference, see the default system prompt in our Hume API Examples repository.

Creating a configuration

See instructions below for creating an EVI configuration through the Platform.

2

Select a template

Select a template to get started quickly, or create a configuration from scratch. This guide demonstrates creating a configuration from scratch.

Template selection, the second step of EVI configuration
3

Choose EVI version

To learn more about the differences between EVI versions 1 and 2, please see the feature comparison guide.

Version selection, the third step of EVI configuration
4

Choose voice

Select a voice from Hume’s 8 presets, or create your own custom voice. To learn more about voice customization options on the Hume Platform, please visit the Voices page. The system default voice will be used if no voice is selected.

Voice selection, the fourth step of EVI configuration
5

Set up the LLM

Select a supported language model and specify a system prompt. The system prompt is crucial for defining your assistant’s personality, capabilities, and behavior. For guidance on writing effective prompts, visit our Prompting Guide. If no system prompt is provided, the system default prompt will be used.

Supplemental LLM setup, the fifth step of EVI configuration
6

Add tools

EVI comes with built-in tools (Web search and Hang up) that you can enable.

To add custom tools, click the + Add button, which allows you to either select from your existing custom tools or create a new one. For more information about tools and creating custom tools, visit the Tools page.

Tool use addition, the sixth step of EVI configuration
7

Name config

Name your EVI configuration and add an optional description.

Providing a name and description, the seventh and final step of EVI configuration
8

Test the configuration

The newly created configuration can now be tested. From the Config edit page, click Run in playground to test your configuration in the EVI Playground. This allows you to interact with EVI using your custom settings and verify that the configuration works as expected.

The page shown after a successful EVI configuration; the ID and name 
are displayed, and two buttons appear ("Run in playground" and "Edit configuration")
Successful EVI config creation

Once in the EVI Playground, click Start call to begin testing your configuration. You can speak with EVI using your microphone or type messages in the chat interface.

EVI playground
Using an EVI configuration in the Playground
9

Set additional configuration options

Additional configuration options can be set after the initial config creation flow:

  • Event messages and timeouts can be configured through the Platform (either in the Playground or Config edit page)
  • Webhooks can be configured through the API. They are not currently configurable through the Platform. For detailed instructions and code examples, see our webhooks guide.
Event message and timeout options in playground
Event message and timeout options in the Playground
Event message and timeout options on edit page
Event message and timeout options in the Config edit page
10

Apply the configuration

After creating an EVI configuration, you can use it in your conversations with EVI by including the config_id in the query parameters of your connection request. Here’s how to locate your config_id:

  1. Navigate to the Configurations page.
  2. Click the More Options button next to your desired configuration.
  3. Copy the Configuration ID.
Configuration ID

See the code examples below for how to apply your configuration:

1import { Hume, HumeClient } from 'hume';
2// instantiate the HumeClient with credentials
3// avoid hard coding your API key, retrieve from environment variables
4const client = new HumeClient({
5 apiKey: <YOUR_API_KEY>,
6 secretKey: <YOUR_SECRET_KEY>,
7});
8// instantiate WebSocket connection with specified EVI config
9const socket = await client.empathicVoice.chat.connect({
10 configId: <YOUR_CONFIG_ID> // specify config ID here
11});