duckduckGO-chat-interface

repo
Created Jun 2025
Original
JavaScript
Stars
5
Forks
0
Size
159 KB
Last Update
8 months ago

A Node.js interface for DuckDuckGo AI Chat Simple and efficient integration with streaming support and session management

README.md

🦆 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


📊 Models and Capabilities

ModelWebSearchImagesStrengthRecommended Usage
GPT-4o miniVersatileGeneral questions, search
Claude 3 HaikuCreativityWriting, explanations
Llama 3.3 70BTechnicalCode, programming
Mistral SmallLogicAnalysis, reasoning
o4-miniSpeedQuick 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:


🛡️ 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


📜 License

MIT License - see LICENSE for details.


Repository Topics
#duckduckgo#iachatbot#npm