⚠️ Development Notice: This project is actively under development. Some features may be incomplete or subject to change.
DeepMed Search is a comprehensive AI-powered medical research platform built with Next.js, providing unified access to multiple search capabilities through an intelligent interface. It combines web search, large language models, knowledge base management, and autonomous research agents to accelerate medical literature discovery and research workflows.
The platform emphasizes user privacy and flexibility by allowing each user to configure their own API keys for various services, with all credentials encrypted and securely stored.
- 🌐 Multi-Engine Web Search - Tavily, Jina, and DuckDuckGo integration
- 🤖 LLM Q&A - Support for OpenAI, DeepSeek, and Google Gemini
- 📚 Knowledge Base Management - Vector-based semantic search with Milvus
- 🔬 Deep Research Agent - Autonomous multi-step research with citation tracking
- 🔄 Asynchronous Processing - BullMQ queue system for background tasks
- 📊 Real-Time Progress - Server-Sent Events (SSE) for live updates
- 🔒 User Isolation - Each user's API keys securely encrypted and isolated
- 🎨 Modern UI - Responsive design with dark mode support
- 🌍 Internationalization - Multi-language support (EN, ZH, JA, KO, FR, AR)
Frontend: Next.js 15.2.4 (App Router), TypeScript 5.x, React 19.0.0, Tailwind CSS 4.x, shadcn/ui
Runtime: Node.js 20.x (Bookworm)
Backend: Next.js Server Actions, Prisma ORM, NextAuth.js v5, BullMQ + Redis
Databases: PostgreSQL (structured data), Milvus (vector search), MinIO (file storage)
AI/ML: Vercel AI SDK, OpenAI provider, multiple LLM integrations
Document Processing: MarkItDown (multi-format), MinerU (PDF with GPU support)
- Node.js 20.x (recommended: 20.12.0 or later)
- React 19.0.0
- Next.js 15.2.4
- Docker and Docker Compose
- Git
git clone https://github.com/hint-lab/deepmed-search.git
cd deepmed-search
npm install
cp .env.example .env.localEdit .env.local with your infrastructure settings:
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/deepmed"
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-secret-key"
ENCRYPTION_KEY="your-encryption-key-32-chars"
REDIS_URL="redis://localhost:6379"💡 User API Keys: LLM and search API keys are configured per-user in the web interface at
/settings/*, not in environment variables.
# Start all infrastructure services
docker-compose up -d
# Run database migrations
npx prisma migrate dev
# Create test user
npm run create:user# Terminal 1: Start the web application
npm run dev
# Terminal 2: Start queue worker (required for document processing and research)
npm run build:worker
node dist/index.cjsVisit http://localhost:3000 and login with:
- Email:
test@example.com - Password:
password123
After login, visit Settings to configure your personal API keys:
/settings/llm- LLM providers (OpenAI, DeepSeek, Google)/settings/search- Search APIs (Tavily, Jina, NCBI)/settings/document- Document parsers (MarkItDown, MinerU)
For detailed guides, visit our Documentation Center:
- Quick Deployment - Deploy in 5-10 minutes
- Production Guide - Complete production setup
- CI/CD Setup - Automated deployment with GitHub Actions
- OAuth Configuration - Google/GitHub authentication
- Document Parsers - MarkItDown and MinerU setup
- Troubleshooting - Common issues and solutions
graph TD
Frontend[Next.js Frontend] --> Backend[Server Actions]
Backend --> Queue[BullMQ Queue System]
Backend --> PG[PostgreSQL]
Backend --> Milvus[Milvus Vector DB]
Queue --> Worker[Queue Worker]
Worker --> External[External APIs]
External --> LLM[LLM Providers]
External --> Search[Search APIs]
External --> Parser[Document Parsers]
We welcome contributions! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License.
- MinerU - High-quality PDF document parsing
- Next.js - The React framework for production
- Milvus - Vector database for AI applications
- BullMQ - Premium message queue for NodeJS
- 💬 Issues: GitHub Issues
- 📧 Email: wang-hao@shu.edu.cn
- 💼 Organization: H!NT Lab
Powered by Next.js, TypeScript, and AI
© 2025 DeepMed Search. All rights reserved.
