@swatle2/ai-legal-widget
v1.0.0
Published
Zolvit AI Legal Assistant Widget - Vanilla JS wrapper for voice chat integration
Maintainers
Readme
@swatle/ai-legal-widget
AI Legal Assistant Widget for voice chat integration with OpenAI Realtime API.
Installation
npm install @swatle/ai-legal-widgetQuick Start
import { LegalAIChat } from '@zolvit/ai-legal-widget';
const widget = new LegalAIChat({
container: '#chat-container',
apiKey: 'sk_user_xxx',
configId: 'config_123',
apiBaseUrl: 'https://dashboard.zolvit.com/api'
});
await widget.init();
widget.start();Usage
Basic Example
<div id="chat-container"></div>
<script type="module">
import { LegalAIChat } from '@swatle/ai-legal-widget';
const widget = new LegalAIChat({
container: '#chat-container',
apiKey: 'your-api-key',
configId: 'your-config-id',
apiBaseUrl: 'https://your-dashboard.vercel.app/api'
});
await widget.init();
</script>With Event Handlers
const widget = new LegalAIChat({
container: '#chat-container',
apiKey: 'sk_user_xxx',
configId: 'config_123',
apiBaseUrl: 'https://dashboard.zolvit.com/api',
handlers: {
onStart: () => {
console.log('Chat started');
},
onStop: () => {
console.log('Chat stopped');
},
onMessage: (message) => {
console.log('Message:', message);
// message = { role: 'user' | 'assistant', text: '...' }
},
onError: (error) => {
console.error('Error:', error);
},
onConfigLoaded: (config) => {
console.log('Config loaded:', config);
},
onFormSubmit: (formData) => {
console.log('Form submitted:', formData);
}
}
});
await widget.init();
widget.start();Manual Control
// Start chat
await widget.start();
// Stop chat
widget.stop();
// Get status
const status = widget.getStatus();
console.log(status); // { isActive: true, isConnecting: false }
// Update config
await widget.updateConfig({
features: {
timerLimit: 300 // 5 minutes
}
});
// Destroy widget
widget.destroy();Configuration
Configuration is loaded from your dashboard API. You can also provide partial config:
const widget = new LegalAIChat({
container: '#chat-container',
apiKey: 'sk_user_xxx',
configId: 'config_123',
config: {
features: {
autoStart: true,
timerLimit: 180
},
ui: {
colors: {
primary: '#667eea'
}
}
}
});Requirements
- OpenAI API key (configured in dashboard)
- Dashboard API endpoint (for config loading)
- Modern browser with WebRTC support
Browser Support
- Chrome/Edge (latest)
- Firefox (latest)
- Safari (latest)
- Mobile browsers (iOS Safari, Chrome Mobile)
License
MIT
Support
For issues and questions, visit: https://github.com/jerrytregno/zolvit-ai-legal-assistant
