UNPKG

@trillet-ai/web-sdk

Version:

Trillet Web SDK for real-time audio communication with AI agents

223 lines (167 loc) 5.33 kB
# 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 ```bash npm install @trillet-ai/web-sdk # or yarn add @trillet-ai/web-sdk ``` ## Quick Start ```typescript 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 call ``` ## Authentication The SDK supports two authentication methods: 1. **API Key Authentication (Standard Method)** ```typescript const agent = new TrilletAgent({ apiKey: 'your-api-key', workspaceId: 'your-workspace-id', agentId: 'your-agent-id' }); ``` 2. **Public Access** - For public-facing applications - Uses `startPublicCall()` method ```typescript 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: 1. **Regular Call** - Using `startCall()` - Requires full authentication with API Key - Suitable for authenticated users 2. **Public Call** - Using `startPublicCall()` - Requires workspace ID and agent ID - Suitable for public-facing applications - No API key needed in client-side code - Example: ```typescript 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: ```typescript 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: ```typescript // 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. ```typescript // 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: ```typescript agent.on('error', (error) => { console.error('Trillet SDK Error:', error); }); ``` ## License [License details here] ## Support For support, please contact [support contact information].