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, videos, 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 | News | Videos | Local | Weather | Images |
---|---|---|---|---|---|---|
GPT-4o mini | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Claude 3 Haiku | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
Llama 3.3 70B | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
Mistral Small | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
o4-mini | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
🔧 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 is only available with GPT-4o mini.
- Images are supported by GPT-4o mini and o4-mini.
- Base tools (News, Videos, Local, Weather) are available for all models.
- Rate limiting is enabled by default to protect the API.
initialize()
is required before sending messages.- Automatic retry is configured for 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!