duckduckgo-chat-interface
v1.1.5
Published
A powerful Node.js interface for DuckDuckGo AI Chat with advanced configuration, rate limiting, and image support
Downloads
333
Maintainers
Readme
🦆 DuckDuckGo AI Chat Interface
✨ Key Features
🧠 5 Advanced AI Models
- GPT-4o mini - Versatile + WebSearch + Image Support
- Claude 3 Haiku - Excellent for creative writing
- Llama 3.3 70B - Optimized for programming
- Mistral Small - Advanced analysis and reasoning
- o4-mini - Ultra-fast for quick responses
🔧 Advanced Configuration
- Intelligent rate limiting - Automatic protection
- Configurable tools - WebSearch, news, weather, local search
- Logging system - Debugging and monitoring
- Automatic retry - Robust error recovery
- Optimized presets - Ready-to-use configurations
📱 Flexible Interfaces
- Simple messages - Intuitive API
- Real-time streaming - Progressive responses
- Multimodal support - Images with GPT-4o mini
- Persistent sessions - Conversation history
- Complete TypeScript - IntelliSense and validation
📦 Installation
npm install duckduckgo-chat-interface🚀 Quick Usage
Basic Example
import { DuckDuckGoChat, Models } from 'duckduckgo-chat-interface';
const chat = new DuckDuckGoChat(Models.GPT4Mini);
await chat.initialize();
const response = await chat.sendMessage("Hello, how are you?");
console.log(response);With WebSearch (GPT-4o mini)
import { DuckDuckGoChat, ChatConfig, Models } from 'duckduckgo-chat-interface';
const config = ChatConfig.webSearchMode();
const chat = new DuckDuckGoChat(Models.GPT4Mini, config);
await chat.initialize();
chat.enableWebSearch();
const response = await chat.sendMessage("Latest AI news?");
console.log(response);Image Support
const images = [{
base64: imageBase64String,
mimeType: 'image/jpeg'
}];
const response = await chat.sendMessage("Describe this image", images);
console.log(response);Real-time Streaming
const response = await chat.sendMessageStream(
"Tell me a story",
(chunk) => process.stdout.write(chunk)
);📚 Documentation
- 🚀 Quick Start - Get started in 5 minutes
- 📋 API Reference - Complete API documentation
- 💡 Examples - Practical usage examples
📊 Models and Capabilities
| Model | WebSearch | Images | Strength | Recommended Usage | |--------|:---------:|:------:|-------|------------------| | GPT-4o mini | ✅ | ✅ | Versatile | General questions, search | | Claude 3 Haiku | ❌ | ❌ | Creativity | Writing, explanations | | Llama 3.3 70B | ❌ | ❌ | Technical | Code, programming | | Mistral Small | ❌ | ❌ | Logic | Analysis, reasoning | | o4-mini | ❌ | ❌ | Speed | Quick responses |
🔧 Configuration Presets
// WebSearch mode (GPT-4o mini)
const config = ChatConfig.webSearchMode();
// News mode
const config = ChatConfig.newsMode();
// Local mode (weather + local search)
const config = ChatConfig.localMode();
// High performance mode
const config = ChatConfig.highVolumeMode();📈 Examples
Explore detailed examples in the examples/ folder:
test.js- Basic examples and configurationtest-advanced.js- Advanced featurestest-simple.js- Simple tests and validation
🛡️ Compatibility
- Node.js : >= 14.0.0
- TypeScript : Full support with types
- ES Modules : Native ESM format
- Backward compatibility : 100% with 1.x versions
🚨 Important Notes
- WebSearch and images only with GPT-4o mini
- Rate limiting enabled by default to protect API
initialize()required before sending messages- Automatic retry on temporary errors
📞 Support and Community
- 📚 Documentation : docs/
- 💻 Examples : examples/
- 🐛 Issues : GitHub Issues
- 💬 Discussions : GitHub Discussions
📜 License
MIT License - see LICENSE for details.
