@trillet-ai/web-sdk
v1.5.8
Published
Trillet Web SDK for real-time audio communication with AI agents
Maintainers
Readme
Trillet AI Web Calls SDK
The Trillet AI Web Calls SDK enables seamless integration of AI-powered voice and text interactions into web applications. This SDK provides a simple interface to connect with Trillet AI agents for real-time communication.
Features
- 🎙️ Real-time voice interactions with AI agents
- 💬 Text-based conversations
- 🔒 Secure authentication options
- 📊 Audio visualization capabilities
- 🎯 Event-driven architecture
- 🔄 Real-time transcription
- 🌐 Browser compatibility checks
Installation
npm install @trillet-ai/web-sdk
# or
yarn add @trillet-ai/web-sdkQuick Start
import { TrilletAgent } from '@trillet-ai/web-sdk';
// Initialize the agent with API Key (Standard Method)
const agent = new TrilletAgent({
apiKey: 'your-api-key',
workspaceId: 'your-workspace-id',
agentId: 'your-agent-id',
mode: 'voice', // 'voice' or 'text'
// Optional parameters
variables: {
customVar1: 'value1',
customVar2: 'value2'
},
callbackUrl: 'https://your-callback-url.com'
});
// Start a regular call
await agent.startCall();
// Or start a public call
await agent.startPublicCall();
// Listen for events
agent.on('connected', (details) => {
console.log('Connected to call:', details);
});
agent.on('transcriptionReceived', (transcript) => {
console.log('New voice transcript:', transcript);
});
agent.on('message', (message) => {
console.log('New text message from agent:', message);
});
agent.on('transcriptUpdate', (transcripts) => {
console.log('Transcript updated:', transcripts);
});
// Control the call
agent.toggleMicrophone(true); // Enable/disable microphone in voice mode
agent.sendTextMessage("Hello, agent!"); // Send a text message in text mode
agent.endCall(); // End the callAuthentication
The SDK supports two authentication methods:
API Key Authentication (Standard Method)
const agent = new TrilletAgent({ apiKey: 'your-api-key', workspaceId: 'your-workspace-id', agentId: 'your-agent-id' });Public Access
- For public-facing applications
- Uses
startPublicCall()method
const agent = new TrilletAgent({ workspaceId: 'your-workspace-id', agentId: 'your-agent-id', mode: 'text' // Or 'voice' }); await agent.startPublicCall();
Call Types
The SDK supports two types of calls:
Regular Call - Using
startCall()- Requires full authentication with API Key
- Suitable for authenticated users
Public Call - Using
startPublicCall()- Requires workspace ID and agent ID
- Suitable for public-facing applications
- No API key needed in client-side code
- Example:
const agent = new TrilletAgent({ workspaceId: 'your-workspace-id', agentId: 'your-agent-id', // Required for both public and regular calls mode: 'text' // Or 'voice' }); await agent.startPublicCall();
Events
The SDK emits various events that you can listen to:
agent.on('connected', (details) => {
// Called when successfully connected to a call
});
agent.on('disconnected', () => {
// Called when the call ends
});
agent.on('error', (error) => {
// Called when an error occurs
});
agent.on('transcriptionReceived', (segments, participant) => {
// Called when new transcription is available (voice mode)
});
agent.on('assistantStartedSpeaking', () => {
// Called when the AI agent starts speaking (voice mode)
});
agent.on('assistantStoppedSpeaking', () => {
// Called when the AI agent stops speaking (voice mode)
});
agent.on('audioData', (data) => {
// Raw audio data for visualization (voice mode)
});
agent.on('message', (message) => {
// Called when a text message is received from the agent (text mode)
});
agent.on('transcriptUpdate', (transcripts) => {
// Called whenever the transcript is updated (voice or text)
});Voice Mode Features
When using voice mode, the SDK provides additional audio-related features:
// Check if the assistant is currently speaking
const isSpeaking = agent.isAssistantSpeaking;
// Access transcripts
const allTranscripts = agent.getTranscripts();
const currentTranscript = agent.getCurrentTranscript();Text Mode Features
When using text mode, you can send and receive text messages.
// Send a message to the agent
agent.sendTextMessage("Hello, how are you?");
// Listen for messages from the agent
agent.on('message', (message) => {
console.log('Agent says:', message.text);
});
// The full conversation transcript is available for both modes
const fullConversation = agent.getTranscripts();
console.log(fullConversation);Requirements
- Modern web browser with secure context (HTTPS or localhost)
- WebRTC support
- Microphone access (for voice mode)
Browser Support
The SDK is compatible with modern browsers that support WebRTC:
- Chrome (recommended)
- Firefox
- Safari
- Edge
Error Handling
The SDK includes comprehensive error handling:
agent.on('error', (error) => {
console.error('Trillet SDK Error:', error);
});License
[License details here]
Support
For support, please contact [support contact information].
