Skip to content

hint-lab/deepmed-search

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

128 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ”ฌ DeepMed Search

GitHub stars GitHub forks GitHub issues License Next.js React TypeScript Node.js Docker

English | ็ฎ€ไฝ“ไธญๆ–‡ | ๐Ÿ“š Documentation Center

โš ๏ธ Development Notice: This project is actively under development. Some features may be incomplete or subject to change.

๐Ÿ“– Introduction

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.

๐ŸŽฌ Demo

DeepMed Search Demo

โœจ Key Features

  • ๐ŸŒ 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)

๐Ÿ›  Technology Stack

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)

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 20.x (recommended: 20.12.0 or later)
  • React 19.0.0
  • Next.js 15.2.4
  • Docker and Docker Compose
  • Git

1. Clone & Setup

git clone https://github.com/hint-lab/deepmed-search.git
cd deepmed-search
npm install
cp .env.example .env.local

2. Configure Environment

Edit .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.

3. Start Services

# Start all infrastructure services
docker-compose up -d

# Run database migrations
npx prisma migrate dev

# Create test user
npm run create:user

4. Launch Application

# 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.cjs

Visit http://localhost:3000 and login with:

  • Email: test@example.com
  • Password: password123

5. Configure Your API Keys

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)

๐Ÿ“– Documentation

For detailed guides, visit our Documentation Center:

๐Ÿ“ System Architecture

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]
Loading

๐Ÿค Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License.

๐Ÿ”— Related Projects

  • 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

๐Ÿ“ง Contact & Support


Built with โค๏ธ by the DeepMed Team

Powered by Next.js, TypeScript, and AI

ยฉ 2025 DeepMed Search. All rights reserved.

โฌ† Back to top

About

DeepMed Search is a deep research application for medical domain built with the Next.js App Router, featuring a unified interface for Web Search, LLM Introspection, PubMed, and Knowledge Base (KB) Search.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors