A Zoom Team Chat bot that combines Cerebras' Llama 3.1-8b model with Exa search capabilities to provide intelligent responses. The bot can search for current information when needed and maintain conversation context.
- Integration with Zoom Team Chat for message handling
- Cerebras Llama 3.1-8b model for response generation
- Exa neural search integration for current information
- Per-user conversation history tracking
- Automatic search decision system
- Response streaming for better performance
- Handles incoming webhooks for chat messages
- Supports bot installation/uninstallation events
- Manages OAuth authentication
- Sends formatted responses back to Zoom
- Uses Llama 3.1-8b model
- Maintains conversation context per user
- Streams responses for better performance
- Makes intelligent decisions about when to search
- Neural search with automatic prompt optimization
- Configures for 3 results per search
- Retrieves full text content
- Integrates search results into responses
- Node.js (version 12 or later)
- Zoom Team Chat app credentials
- Cerebras API key
- Exa API key
Create a .env
file with:
ZOOM_CLIENT_ID=your_zoom_client_id
ZOOM_CLIENT_SECRET=your_zoom_client_secret
ZOOM_BOT_JID=your_zoom_bot_jid
ZOOM_WEBHOOK_SECRET_TOKEN=your_zoom_webhook_secret_token
CEREBRAS_API_KEY=your_cerebras_api_key
EXA_API_KEY=your_exa_api_key
BOT_NOTIFICATION_URL=your_custom_endpoint
PORT=4000
- Clone the repository:
git clone https://github.com/zoom/Zoom-Chat-Neural-Search-Assistant-Sample
cd zoom-cerebras-chatbot
- Install dependencies:
npm install
Start the server:
npm start
The server will:
- Run on the specified PORT (default: 4000)
- Listen for webhook events at BOT_NOTIFICATION_URL
- Zoom sends webhook event to server
- System processes incoming message
- Checks if current information is needed
- Performs Exa search if necessary
- Uses Cerebras to generate response
- Maintains conversation context
- Streams response back to Zoom
index.js
- Main server setupsrc/clients/cerebrasClient.js
- Cerebras integration and conversation managementsrc/clients/exaClient.js
- Exa search functionalitysrc/zoom/zoomAuth.js
- Zoom authenticationsrc/zoom/sendChatbotMessage.js
- Message sending to Zoomsrc/zoom/zoomWebhookHandler.js
- Webhook event processing
MIT License - See LICENSE file for details
Ojus Save