Hamsa Voice Agents Web SDK is a JavaScript library for integrating voice agents from https://dashboard.tryhamsa.com. This SDK provides a seamless way to incorporate voice interactions into your web applications.
Install the SDK via npm:
npm install hamsa-voice-agents
First, import the package in your code:
import { HamsaVoiceAgent } from 'hamsa-voice-agents';
Initialize the SDK with your API key. To obtain your first API key, visit https://dashboard.tryhamsa.com:
const agent = new HamsaVoiceAgent(API_KEY);
Start a conversation with an existing agent by calling the "start" function. You can create and manage agents in our Dashboard or using our API (see: https://docs.tryhamsa.com):
agent.start({
agentId: YOUR_AGENT_ID,
params: {
param1: "NAME",
param2: "NAME2"
}
});
When creating an agent, you can add parameters to your pre-defined values. For example, you can set your Greeting Message to: "Hello {{name}}, how can I help you today?" and pass the "name" as a parameter to use the correct name of the user.
To pause the conversation, call the "pause" function. This will prevent the SDK from sending or receiving new data until you resume the conversation:
agent.pause();
To resume the conversation:
agent.resume();
To end a conversation, simply call the "end" function:
agent.end();
During the conversation, the SDK emits events to update your application about the conversation status.
agent.on("callStarted", () => { console.log("Conversation has started!"); });
agent.on("callEnded", () => { console.log("Conversation has ended!"); });
agent.on("callPaused", () => { console.log("The conversation is paused"); });
agent.on("callResumed", () => { console.log("Conversation has resumed"); });
agent.on("speaking", () => { console.log("The agent is speaking"); });
agent.on("listening", () => { console.log("The agent is listening"); });
agent.on("transcriptionReceived", (text) => { console.log("User speech transcription received", text); });
agent.on("answerReceived", (text) => { console.log("Agent answer received", text); });
agent.on("closed", () => { console.log("Conversation was closed"); });
agent.on("error", (e) => { console.log("Error was received", e); });