Skip to content

benoitpetit/duckduckGO-chat-interface

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ¦† DuckDuckGo AI Chat Interface

DuckDuckGo AI Chat Interface Logo
πŸš€ Powerful Node.js Interface for DuckDuckGo AI Chat
Advanced Configuration β€’ Intelligent Rate Limiting β€’ Image Support β€’ WebSearch

Node.js Version NPM Package License TypeScript

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


πŸ“Š 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:


πŸ›‘οΈ 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.


🏁 Ready to start?
Follow the Quick Start Guide!

About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published