Package Exports
- duckduckgo-chat-interface
- duckduckgo-chat-interface/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (duckduckgo-chat-interface) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
🦆 DuckDuckGo AI Chat Interface
🚀 Powerful Node.js Interface for DuckDuckGo AI Chat
Advanced Configuration • Intelligent Rate Limiting • Image Support • WebSearch
Installation • Quick Usage • Documentation • Examples
✨ 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.
🏁 Ready to start?
Follow the Quick Start Guide!