Skip to content

Releases: HKUDS/DeepTutor

ver0.6.0

22 Jan 17:48

Choose a tag to compare

DeepTutor v0.6.0 Release Notes

Release Date: 2026.01.23

Highlights

Frontend State Persistence

Implemented robust session persistence across the application:

  • Solver, Guide, and other sessions now persist across browser refreshes
  • Improved state management with dedicated persistence layer
  • Better user experience with session continuity

Incremental Document Upload

Enhanced knowledge base with incremental document processing:

  • Add new documents to existing knowledge bases without full re-indexing
  • Significant performance improvement for large document collections
  • Smarter document change detection

Flexible RAG Pipeline Import

Refactored RAG initialization for better compatibility:

  • On-demand loading of RAG libraries (RAG-Anything, LlamaIndex)
  • Reduced startup time and memory footprint
  • Graceful fallback when optional dependencies are unavailable

Full Chinese Localization (i18n)

Added complete Chinese language support for the web interface:

  • Comprehensive translation across all pages and components
  • Dynamic language switching without page reload
  • i18n audit tools for translation consistency

Bug Fixes & Improvements

  • Enhanced LLM retry mechanism for complex agent operations
  • Fixed temperature parameter handling issues
  • Docker build optimizations and npm compatibility fixes
  • Added api_version parameter for Azure OpenAI support

Full Changelog: v0.5.2...v0.6.0

ver0.5.2

18 Jan 07:49

Choose a tag to compare

DeepTutor v0.5.2 Release Notes

Release Date: 2026.01.18

Highlights

Docling Support for RAG-Anything

Added alternative RAG-Anything initialization using Docling as the document parser:

  • For users whose local environment is not suitable for MinerU
  • Provides a lightweight alternative for document processing
  • Same multimodal graph capabilities with different backend

Logging System Optimization

Refactored the logging system for better management:

  • Improved log output control across all modules
  • Better structured logging adapters
  • Enhanced console, file, and WebSocket handlers

Bug Fixes & Code Improvements

  • Optimized code structure across multiple modules
  • Fixed several bugs affecting user experience
  • Improved CI/CD workflows with Python 3.10/3.11 matrix testing

Full Changelog: v0.5.1...v0.5.2

ver0.5.1

18 Jan 04:28

Choose a tag to compare

DeepTutor v0.5.1 Release Notes

Release Date: 2026.01.18

Hey everyone! We just released v0.5.1!

Highlights

Docling Support for RAG-Anything

Added alternative RAG-Anything initialization using Docling as the document parser:

  • For users whose local environment is not suitable for MinerU
  • Provides a lightweight alternative for document processing
  • Same multimodal graph capabilities with different backend

Logging System Optimization

Refactored the logging system for better management:

  • Improved log output control across all modules
  • Better structured logging adapters
  • Enhanced console, file, and WebSocket handlers

Bug Fixes & Code Improvements

  • Optimized code structure across multiple modules
  • Fixed several bugs affecting user experience
  • Improved CI/CD workflows with Python 3.10/3.11 matrix testing

Full Changelog: v0.5.0...v0.5.1

What's Changed

New Contributors

Full Changelog: v0.5.0...v0.5.1

ver0.5.0 !

14 Jan 18:57

Choose a tag to compare

DeepTutor v0.5.0 Release Notes

Release Date: 2026.01.15

We're thrilled to announce DeepTutor v0.5.0! This release delivers unified service configuration, flexible RAG pipeline selection, and major UI/UX improvements across multiple modules.

Stability Update: This release fixes multiple environment configuration and stability issues. We recommend all users to pull the latest version! Remember to update your .env file!

Tip

Call for Issues: We welcome your feedback! If you encounter any bugs or have feature requests, please open an issue! If you would like to submit a PR, please check out our Contributing Guide.


Quick Summary

  • Configuration — Refactored config logic for smoother LLM/Embedding setup. Backend secrets stay hidden from frontend. Added more search providers.
  • RAG Pipelines — Select different pipelines per KB: LlamaIndex (direct), LightRAG (graph), RAG-Anything (multimodal graph).
  • Question Gen — Unified BaseAgent architecture with more intuitive UI.
  • Home — Save chat history to notebooks.
  • Sidebar — Drag-and-drop reordering + customizable top-left label.
  • Misc — Various bug fixes and stability improvements.

✨ Highlights

Unified Configuration System

Completely redesigned configuration management for LLM, Embedding, TTS, and Search services:

Key Features:

  • Environment-based secrets: Store sensitive API keys in .env while managing configurations in the UI
  • {"use_env": "VAR_NAME"} syntax: Reference environment variables without exposing them in the frontend
  • Per-service active config: Each service (LLM, Embedding, TTS, Search) maintains its own active configuration
  • Seamless provider switching: Add new providers in the frontend without touching backend secrets

New Search Providers:

Provider Description
Tavily AI-native search API
Exa Neural search engine
Jina Reader-based web search
Serper Google SERP API

RAG Pipeline Selection

Choose the optimal RAG pipeline for each knowledge base based on your speed/quality requirements:

Pipeline Index Type Best For Speed
LlamaIndex Vector (Direct) Quick setup, simple documents Fastest
LightRAG Knowledge Graph General documents, text-heavy Fast
RAG-Anything Multimodal Graph Academic papers, textbooks with figures/equations Thorough

Question Generation Overhaul

Refactored the Question Generation module with unified agent architecture:

Backend Changes:

  • Migrated to BaseAgent pattern consistent with other modules
  • New specialized agents: RetrieveAgent, GenerateAgent, RelevanceAnalyzer
  • Single-pass generation with relevance classification (no iterative validation loops)
  • Improved JSON parsing with markdown code block extraction

Frontend Improvements:

  • Real-time progress dashboard with stage indicators
  • Log drawer for debugging generation process
  • Cleaner question card layout with answer submission
  • "Add to Notebook" integration

Home Page Enhancements

Save Chat to Notebook:

  • New "Save to Notebook" button in chat interface
  • Automatically formats conversation as markdown
  • Preserves user queries and assistant responses with role labels

Sidebar Customization

Drag-and-Drop Navigation:

  • Reorder sidebar items within groups by dragging
  • Visual feedback during drag operations
  • Persistent order saved to user settings

Customizable Description:

  • Click to edit the sidebar description label
  • Personalize your workspace identity

📦 What's Changed

Core Infrastructure

  • Added src/services/config/unified_config.py — Centralized configuration manager
  • Added src/api/routers/config.py — Unified REST API for all service configs
  • Refactored web search to support multiple providers (src/services/search/)
  • Enhanced error handling with LLM error framework

RAG System

  • Implemented LlamaIndexPipeline with custom embedding adapter
  • Implemented pure LightRAGPipeline with complete initialization
  • Added pipeline selection during KB create/upload (PR #129)
  • Factory pattern in src/services/rag/factory.py for pipeline management

Question Generation

  • Refactored AgentCoordinator with specialized agents
  • New RetrieveAgent, GenerateAgent, RelevanceAnalyzer in src/agents/question/agents/
  • Removed iterative validation loops for faster generation
  • Added useQuestionReducer hook for frontend state management

Frontend Updates

  • web/app/settings/page.tsx — Complete rebuild with unified config UI
  • web/app/question/page.tsx — New dashboard with progress tracking
  • web/app/page.tsx — Added "Save to Notebook" functionality
  • web/components/Sidebar.tsx — Drag-and-drop + editable description
  • web/components/AddToNotebookModal.tsx — Reusable notebook integration

What's Changed

New Contributors

Full Changelog: v0.4.1...v0.5.0

Update: ver0.4.1

09 Jan 01:58

Choose a tag to compare

🔧 DeepTutor v0.4.1 Release Notes

Release Date: 2026.01.09

A maintenance release focused on LLM Provider system optimization, Question Generation robustness, and Docker deployment fixes.

✨ Highlights

🔌 LLM Provider System Overhaul

Completely redesigned LLM provider management with persistent configuration:

Three Deployment Modes (LLM_MODE env var):

Mode Description
hybrid (default) Use active provider if available, else env config
api Cloud API providers only (OpenAI, Anthropic, etc.)
local Local/self-hosted only (Ollama, LM Studio, etc.)

Provider Presets for quick setup:

# API Providers
API_PROVIDER_PRESETS = {
    "openai": {"base_url": "https://api.openai.com/v1", "requires_key": True},
    "anthropic": {"base_url": "https://api.anthropic.com/v1", "requires_key": True},
    "deepseek": {"base_url": "https://api.deepseek.com", "requires_key": True},
    "openrouter": {"base_url": "https://openrouter.ai/api/v1", "requires_key": True},
}

# Local Providers
LOCAL_PROVIDER_PRESETS = {
    "ollama": {"base_url": "http://localhost:11434/v1", "requires_key": False},
    "lm_studio": {"base_url": "http://localhost:1234/v1", "requires_key": False},
    "vllm": {"base_url": "http://localhost:8000/v1", "requires_key": False},
    "llama_cpp": {"base_url": "http://localhost:8080/v1", "requires_key": False},
}

New API Endpoints:

  • GET /api/llm-providers/mode/ - Get current LLM mode info
  • GET /api/llm-providers/presets/ - Get provider presets
  • POST /api/llm-providers/test/ - Test provider connection

🛡️ Question Generation Robustness (PR #81)

Enhanced JSON parsing for LLM responses:

  • Added _extract_json_from_markdown() to handle \``json ... ```` wrapped responses
  • Comprehensive error handling with detailed logging
  • Graceful fallbacks when LLM returns invalid JSON

🐳 Docker Deployment Fixes

  • Fixed frontend startup script for proper NEXT_PUBLIC_API_BASE injection
  • Improved supervisor configuration for better service management
  • Environment variable handling improvements

🧹 Codebase Cleanup

Removed src/core module - All functionality migrated to src/services:

Old Import New Import
from src.core.core import load_config_with_main from src.services.config import load_config_with_main
from src.core.llm_factory import llm_complete from src.services.llm import complete
from src.core.prompt_manager import get_prompt_manager from src.services.prompt import get_prompt_manager
from src.core.logging import get_logger from src.logging import get_logger

📦 What's Changed

  • Merge pull request #81 from tusharkhatriofficial/fix/question-generation-json-parsing
  • fix: Add comprehensive error handling and JSON parsing for question generation
  • fix: llm providers, frontend
  • fix: docker deployment

Full Changelog: v0.4.0...v0.4.1

Release ver0.4.0

08 Jan 17:38

Choose a tag to compare

🚀 DeepTutor v0.4.0 Release Notes

Release Date: 2026.01.09

We're excited to announce DeepTutor v0.4.0! This release brings New home page, Expanded provider support for LLM & Embeddings provider, RAG module decoupling, Web improvement, and a bunch of minor improvements.

🚧 Possible Issues: Docker deployment and local LLM/Embeddings setup (Ollama, LM Studio) may still have compatibility issues. We're actively working on improvements. Issues and PRs are welcome!Open an Issue | Contributing Guide

⚠️ Breaking Changes: Environment Configuration

Environment variable names have been updated. Please update your .env file based on .env.example.

Old Variable New Variable Notes
OPENAI_API_KEY LLM_API_KEY Now provider-agnostic
OPENAI_API_BASE LLM_HOST Renamed for clarity
OPENAI_MODEL LLM_MODEL Renamed for clarity
EMBEDDING_DIM EMBEDDING_DIMENSION Full word naming
(hardcoded) BACKEND_PORT Now configurable in .env (default: 8001)
(hardcoded) FRONTEND_PORT Now configurable in .env (default: 3782)

New required variables:

  • LLM_BINDING — Provider type: openai, ollama, azure_openai, anthropic, etc.
  • EMBEDDING_BINDING — Provider type: openai, ollama, jina, cohere, etc.

New optional variables:

  • SEARCH_PROVIDER — Web search provider: perplexity (default) or baidu
  • BAIDU_API_KEY — For Baidu AI Search (百度AI搜索)
  • NEXT_PUBLIC_API_BASE — Frontend API URL for remote/LAN access (e.g., http://192.168.1.100:8001)

💡 Remote Access: If accessing DeepTutor from another device on your network, set NEXT_PUBLIC_API_BASE to your server's IP. If not set, defaults to http://localhost:8001 (local machine only).

📌 Action Required: Copy .env.example to .env and update your configuration before upgrading.

✨ Highlights

🔌 Multi-Provider LLM & Embedding Support

Expanded from local-only to a full provider ecosystem:

LLM Providers Embedding Providers
OpenAI, Anthropic, Azure OpenAI OpenAI, Azure OpenAI, Jina AI
Ollama, Ollama Cloud, LM Studio Cohere, Ollama, LM Studio
Groq, OpenRouter, DeepSeek, Gemini HuggingFace (OpenAI-compatible)

New adapter-based architecture in src/services/embedding/adapters/ enables easy addition of new providers.

🧩 RAG Module Decoupling

New RAGService class provides a unified, provider-agnostic interface:

from src.services.rag import RAGService

service = RAGService()  # Uses RAG_PROVIDER env var (default: raganything)
await service.initialize("my_kb", ["doc.pdf"])
result = await service.search("query", "my_kb")

📌 Currently supports RAG-Anything (MinerU + LightRAG). More backends coming soon!

🌙 Dark Mode & UI Overhaul

  • Theme toggle with system preference detection & localStorage persistence
  • Collapsible sidebar with icon-only compact mode
  • Settings page rebuild: Environment variable management with category-based organization
  • Consistent dark mode styling across all pages

⚙️ Centralized Configuration

New settings.py using pydantic-settings for unified configuration:

Category Environment Variables
LLM LLM_BINDING, LLM_MODEL, LLM_HOST, LLM_API_KEY
Embedding EMBEDDING_BINDING, EMBEDDING_MODEL, EMBEDDING_HOST, EMBEDDING_API_KEY, EMBEDDING_DIMENSION
RAG RAG_PROVIDER
TTS TTS_MODEL, TTS_URL, TTS_API_KEY, TTS_VOICE
Search PERPLEXITY_API_KEY

Runtime updates via /api/settings/env with automatic .env persistence.

📦 What's Changed

Core Infrastructure

  • Added settings.py with pydantic-settings for centralized config management
  • Added src/core/llm_factory.py with unified llm_complete() function
  • Added /api/embedding-providers router for embedding configuration CRUD
  • Added /api/settings/env endpoints for runtime environment management

Services Module Restructure (src/services/)

services/
├── embedding/          # 🆕 Adapter-based embedding providers
│   ├── adapters/       # Provider implementations
│   │   ├── base.py, openai_compatible.py, jina.py, cohere.py, ollama.py
│   ├── client.py       # Unified embedding client
│   ├── provider.py     # Provider manager (singleton)
│   └── provider_config.py  # Multi-provider config persistence
├── llm/                # LLM configuration & client
├── rag/                # 🆕 Decoupled RAG system
│   ├── service.py      # Unified RAGService entry point
│   ├── factory.py      # Pipeline factory
│   ├── pipelines/      # Backend implementations
│   │   └── raganything.py, lightrag.py, llamaindex.py, academic.py
│   └── components/     # Modular RAG components
│       ├── chunkers/   # Text chunking strategies
│       ├── parsers/    # Document parsers (PDF, Markdown, Text)
│       ├── embedders/  # Embedding wrappers
│       ├── indexers/   # Vector & Graph indexers
│       └── retrievers/ # Dense & Hybrid retrieval
├── prompt/             # PromptManager singleton
├── tts/                # TTS configuration
└── setup/              # Initialization utilities

Frontend Updates

  • 🆕 Added Home page (web/app/page.tsx) with feature overview
  • 🆕 Rebuilt History page (web/app/history/page.tsx) with improved activity views
  • Added web/lib/theme.ts with theme utilities (initializeTheme(), setTheme())
  • Added web/hooks/useTheme.ts for React theme hook
  • Added web/components/ThemeScript.tsx for SSR theme hydration
  • Added web/components/ChatSessionDetail.tsx for history page
  • Refactored Sidebar.tsx with collapsible mode
  • Rebuilt settings/page.tsx with environment variable management

IdeaGen Improvements

Enhanced 4-stage workflow: Loose Filter → Explore Ideas → Strict Filter → Generate Statement

🐳 Docker

Streamlined single-container deployment:

docker compose up -d
# Exposes: backend (8001), frontend (3782)
# Volumes: ./config (ro), ./data/user, ./data/knowledge_bases

Cloud deployment supported via NEXT_PUBLIC_API_BASE_EXTERNAL.

⬆️ Upgrade

git pull origin main
docker compose build && docker compose up -d

Migration Notes:

  • Rename EMBEDDING_DIMEMBEDDING_DIMENSION
  • Default RAG provider changed to raganything

What's Changed

🤝 New Contributors

Full Changelog: v0.3.0...v0.4.0

Release ver0.3.0

05 Jan 18:00

Choose a tag to compare

🚀 DeepTutor v0.3.0 Release Notes

Release Date: January 6, 2026

We're excited to announce DeepTutor v0.3.0! This release focuses on developer experience improvements, CI/CD automation, and simplified local deployment.

✨ Highlights

🏗️ Unified PromptManager Architecture

A major refactor consolidates all prompt loading across 10+ agent modules into a centralized PromptManager singleton:

  • Global caching with module-level invalidation for improved performance
  • Language fallback chain (zh → en, en → zh) for seamless i18n support
  • ISO 639-1 compliance — all cn/ prompt directories renamed to zh/
  • Simplified agent code by removing redundant _load_prompts methods and class-level caches

🤖 GitHub Actions & CI/CD

Introducing automated workflows for better code quality and easier deployment:

Workflow Description
dependabot.yml Automatic dependency updates (pip, npm, GitHub Actions, Docker)
tests.yml Automated testing on push/PR
docker-publish.yml Auto-publish Docker images to GHCR

🐳 Pre-built Docker Images

Deploy in ~30 seconds using our pre-built image from GitHub Container Registry:

docker run -d --name deeptutor
-p 8001:8001 -p 3782:3782
--env-file .env
-v $(pwd)/data:/app/data
ghcr.io/hkuds/deeptutor:latest### 🏠 Local-First LLM Configuration

Simplified settings page now focuses exclusively on local LLM providers:

  • Ollama (default)
  • LM Studio
  • ❌ Removed cloud providers (OpenAI, Gemini, Azure, etc.)

This aligns with DeepTutor's vision for privacy-first, self-hosted AI tutoring.

📦 What's Changed

Core Infrastructure

  • Added src/core/prompt_manager.py with singleton PromptManager
  • Export get_prompt_manager() from src/core/__init__.py
  • Added /api/v1/config/agents endpoint for data-driven frontend configuration

Agent Modules Migrated (10 files)

  • research/agents/base_agent.py
  • solve/base_agent.py
  • guide/agents/base_guide_agent.py
  • question/agents/generation_agent.py
  • question/agents/validation_agent.py
  • question/validation_workflow.py
  • ideagen/idea_generation_workflow.py
  • ideagen/material_organizer_agent.py
  • co_writer/edit_agent.py
  • co_writer/narrator_agent.py

Removed Legacy Code

  • Deleted src/agents/solve/utils/prompt_loader.py
  • Removed use_prompt_loader parameter from BaseAgent
  • Cleaned up _PROMPT_CACHE class-level caches across all modules
  • Removed PromptLoader exports from solve/__init__.py

⬆️Upgrade

git pull origin main
docker pull ghcr.io/hkuds/deeptutor:latestCloses #33

What's Changed

  • fix(UI): unrendered markdown in ActivityDetail card by @tusharkhatriofficial in #26
  • chore: transtale readme to ru by @oshliaer in #27
  • fix: improve reload_excludes configuration for uvicorn server and added support for newer models (openai) by @LouisACR in #28
  • feat: Dynamic LLM Provider Support (Local & Cloud) by @ahmedjawedaj in #34

🤝New Contributors

release v0.2.0

02 Jan 20:06

Choose a tag to compare

Release v0.2.0

🚀 New Features

Docker Deployment: Added multi-stage Dockerfile and docker-compose configurations for both development and production environments
Enhanced WebSocket Security: Improved websocket security with comprehensive documentation

🔧 Improvements

Next.js 16 & React 19: Upgraded frontend framework to the latest versions for better performance and features
JSON Parsing: Fixed JSON parsing for triple-quoted Python strings, improving output reliability
UI Enhancements: Fixed knowledge base modal backdrop and positioning issues
Install Scripts: Improved installation scripts with better conda environment detection and session management
SolveAgent: Enhanced code generation by enforcing intent-only planning

🔒 Security

Fixed critical path traversal and injection vulnerabilities
Updated dependencies to address security vulnerabilities
Hardened application attack surface through least privilege principle
Enhanced secure websockets implementation

🐛 Bug Fixes

Fixed DisplayManager attributes initialization before rich availability check
Various UI and core stability improvements


What's Changed

  • avoid false 'Virtual env not detected' warning under conda by @lovingfish in #2
  • fix(ui): knowledge base modal backdrop and positioning by @tusharkhatriofficial in #10
  • Hardened the Application's Attack Surface through Least Privilege Principle by @RinCodeForge927 in #11
  • fix(core): ensure core attributes initialized without rich library by @tusharkhatriofficial in #12
  • Fix JSON parsing failure for triple-quoted Python strings in Smart Solver by @TejasD-13 in #18
  • feat(security): enforce WSS protocol for production websockets by @RinCodeForge927 in #22
  • chore(deps): update core libraries to mitigate known CVEs by @RinCodeForge927 in #21
  • fix(security): patch critical RCE and LFI vulnerabilities by @RinCodeForge927 in #20
  • fix: SolveAgent code generation by enforcing intent-only planning by @tusharkhatriofficial in #23
  • Add Docker infrastructure for DeepTutor, including multi-stage Docker… by @Andres77872 in #14

New Contributors

Full Changelog: https://github.com/HKUDS/DeepTutor/commits/v0.2.0