Skip to content

Latest commit

 

History

History
759 lines (536 loc) · 33.6 KB

File metadata and controls

759 lines (536 loc) · 33.6 KB

| ⚡ बड़े पैमाने पर दस्तावेज़ ज्ञान Q&A | 📈 इंटरैक्टिव सीखने की विज़ुअलाइज़ेशन |
| 🧠 ज्ञान सुदृढ़ीकरण | 🔬 गहन अनुसंधान और विचार उत्पादन |


[2026.1.1] नया साल मुबारक हो! हमारे GitHub Discussions में शामिल हों — DeepTutor के भविष्य को आकार दें! 💬

[2025.12.30] अधिक विवरण के लिए हमारी आधिकारिक वेबसाइट पर जाएं!

[2025.12.29] DeepTutor v0.1 अब उपलब्ध है! ✨


DeepTutor की मुख्य विशेषताएं

📚 बड़े पैमाने पर दस्तावेज़ ज्ञान Q&A

स्मार्ट ज्ञान आधार: पाठ्यपुस्तकें, अनुसंधान पत्र, तकनीकी मैनुअल और डोमेन-विशिष्ट दस्तावेज़ अपलोड करें। तत्काल पहुंच के लिए AI-संचालित व्यापक ज्ञान भंडार बनाएं।
मल्टी-एजेंट समस्या समाधान: RAG, वेब खोज, पेपर खोज और कोड निष्पादन के साथ दोहरी-लूप तर्क वास्तुकला—सटीक उद्धरणों के साथ चरण-दर-चरण समाधान प्रदान करना।

🎨 इंटरैक्टिव सीखने की विज़ुअलाइज़ेशन

ज्ञान सरलीकरण और स्पष्टीकरण: जटिल अवधारणाओं, ज्ञान और एल्गोरिदम को समझने में आसान दृश्य सहायता, विस्तृत चरण-दर-चरण विभाजन और आकर्षक इंटरैक्टिव प्रदर्शन में बदलें।
व्यक्तिगत Q&A: संदर्भ-जागरूक बातचीत जो आपकी सीखने की प्रगति के अनुकूल होती है, इंटरैक्टिव पृष्ठों और सत्र-आधारित ज्ञान ट्रैकिंग के साथ।

🎯 अभ्यास समस्या जनरेटर के साथ ज्ञान सुदृढ़ीकरण

स्मार्ट अभ्यास निर्माण: आपके वर्तमान ज्ञान स्तर और विशिष्ट सीखने के उद्देश्यों के अनुरूप लक्षित क्विज़, अभ्यास समस्याएं और अनुकूलित मूल्यांकन उत्पन्न करें।
प्रामाणिक परीक्षा सिमुलेशन: संदर्भ परीक्षाएं अपलोड करें जो मूल शैली, प्रारूप और कठिनाई से पूरी तरह मेल खाती हैं—वास्तविक परीक्षा के लिए यथार्थवादी तैयारी प्रदान करना।

🔍 गहन अनुसंधान और विचार उत्पादन

व्यापक अनुसंधान और साहित्य समीक्षा: व्यवस्थित विश्लेषण के साथ विषयों की गहन खोज करें। पैटर्न की पहचान करें, अनुशासनों के बीच संबंधित अवधारणाओं को जोड़ें और मौजूदा अनुसंधान निष्कर्षों को संश्लेषित करें।
नवीन अंतर्दृष्टि खोज: संरचित सीखने की सामग्री उत्पन्न करें और ज्ञान अंतराल की खोज करें। बुद्धिमान क्रॉस-डोमेन ज्ञान संश्लेषण के माध्यम से आशाजनक नए अनुसंधान दिशाओं की पहचान करें।


All-in-One Tutoring System

📚 बड़े पैमाने पर दस्तावेज़ ज्ञान Q&A


सटीक उद्धरणों के साथ मल्टी-एजेंट समस्या समाधान

🎨 इंटरैक्टिव सीखने की विज़ुअलाइज़ेशन


व्यक्तिगत Q&A के साथ चरण-दर-चरण दृश्य स्पष्टीकरण

🎯 ज्ञान सुदृढ़ीकरण

व्यक्तिगत प्रश्न
स्वचालित सत्यापित अभ्यास प्रश्न उत्पादन

नकल प्रश्न
प्रामाणिक अभ्यास के लिए परीक्षा शैली क्लोन करना

🔍 गहन अनुसंधान और विचार उत्पादन

गहन अनुसंधान
RAG, वेब और पेपर खोज के साथ पाठ्यपुस्तक से ज्ञान विस्तार

स्वचालित IdeaGen
दोहरे फ़िल्टर वर्कफ़्लो के साथ व्यवस्थित ब्रेनस्टॉर्मिंग और अवधारणा संश्लेषण

इंटरैक्टिव IdeaGen
पॉडकास्ट जनरेशन के साथ RAG और वेब खोज संचालित Co-Writer

🏗️ ऑल-इन-वन ज्ञान प्रणाली

व्यक्तिगत ज्ञान आधार
अपना स्वयं का ज्ञान भंडार बनाएं और व्यवस्थित करें

व्यक्तिगत नोटबुक
सीखने के सत्रों के लिए आपकी संदर्भ स्मृति

🌙 डार्क मोड में DeepTutor का उपयोग करें!

सिस्टम आर्किटेक्चर

DeepTutor Full-Stack Workflow

📋 करने के लिए

हमारे भविष्य के अपडेट के लिए हमें फॉलो करें!

  • स्थानीय LLM सेवाओं का समर्थन (जैसे ollama)
  • RAG मॉड्यूल का रिफैक्टरिंग (Discussions देखें)
  • विचार उत्पादन से गहन कोडिंग
  • नोटबुक के साथ व्यक्तिगत इंटरैक्शन

🚀 त्वरित प्रारंभ

चरण 1: पूर्व-कॉन्फ़िगरेशन

① रिपॉजिटरी क्लोन करें

git clone https://github.com/HKUDS/DeepTutor.git
cd DeepTutor

② पर्यावरण चर सेट करें

cp .env.example .env
# अपने API कुंजियों के साथ .env फ़ाइल संपादित करें
📋 पर्यावरण चर संदर्भ
चर आवश्यक विवरण
LLM_MODEL हाँ मॉडल नाम (उदा: gpt-4o)
LLM_BINDING_API_KEY हाँ आपकी LLM API कुंजी
LLM_BINDING_HOST हाँ API एंडपॉइंट URL
EMBEDDING_MODEL हाँ एम्बेडिंग मॉडल नाम
EMBEDDING_BINDING_API_KEY हाँ एम्बेडिंग API कुंजी
EMBEDDING_BINDING_HOST हाँ एम्बेडिंग API एंडपॉइंट
BACKEND_PORT नहीं बैकएंड पोर्ट (डिफ़ॉल्ट: 8001)
FRONTEND_PORT नहीं फ्रंटएंड पोर्ट (डिफ़ॉल्ट: 3782)
TTS_* नहीं टेक्स्ट-टू-स्पीच सेटिंग्स
PERPLEXITY_API_KEY नहीं वेब खोज के लिए

③ पोर्ट और LLM कॉन्फ़िगर करें (वैकल्पिक)

  • पोर्ट: config/main.yaml संपादित करें → server.backend_port / server.frontend_port
  • LLM: config/agents.yaml संपादित करें → प्रति मॉड्यूल temperature / max_tokens
  • विवरण के लिए कॉन्फ़िगरेशन दस्तावेज़ देखें

④ डेमो ज्ञान आधार आज़माएं (वैकल्पिक)

📚 उपलब्ध डेमो
  • अनुसंधान पत्र — हमारी प्रयोगशाला से 5 पत्र (AI-Researcher, LightRAG, आदि)
  • डेटा साइंस पाठ्यपुस्तक — 8 अध्याय, 296 पृष्ठ (पुस्तक लिंक)
  1. Google Drive से डाउनलोड करें
  2. data/ निर्देशिका में निकालें

डेमो KB text-embedding-3-large का उपयोग करते हैं, dimensions = 3072 के साथ

⑤ अपना स्वयं का ज्ञान आधार बनाएं (लॉन्च के बाद)

  1. http://localhost:3782/knowledge पर जाएं
  2. "New Knowledge Base" पर क्लिक करें → नाम दर्ज करें → PDF/TXT/MD फ़ाइलें अपलोड करें
  3. टर्मिनल में प्रगति की निगरानी करें

चरण 2: अपनी स्थापना विधि चुनें

🐳 Docker तैनाती

अनुशंसित — कोई Python/Node.js सेटअप नहीं


आवश्यकताएं: Docker और Docker Compose

🚀 विकल्प A: पूर्व-निर्मित छवि (सबसे तेज़)
# पूर्व-निर्मित छवि को खींचें और चलाएं (~30 सेकंड)
docker run -d --name deeptutor \
  -p 8001:8001 -p 3782:3782 \
  -e LLM_MODEL=gpt-4o \
  -e LLM_BINDING_API_KEY=your-api-key \
  -e LLM_BINDING_HOST=https://api.openai.com/v1 \
  -e EMBEDDING_MODEL=text-embedding-3-large \
  -e EMBEDDING_BINDING_API_KEY=your-api-key \
  -e EMBEDDING_BINDING_HOST=https://api.openai.com/v1 \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/config:/app/config:ro \
  ghcr.io/hkuds/deeptutor:latest

या .env फ़ाइल का उपयोग करें:

docker run -d --name deeptutor \
  -p 8001:8001 -p 3782:3782 \
  --env-file .env \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/config:/app/config:ro \
  ghcr.io/hkuds/deeptutor:latest
🔨 विकल्प B: स्रोत कोड से निर्माण
# निर्माण और प्रारंभ (पहली बार चलाने पर ~5-10 मिनट)
docker compose up --build -d

# लॉग देखें
docker compose logs -f

आदेश:

docker compose up -d      # प्रारंभ
docker compose logs -f    # लॉग
docker compose down       # रोकें
docker compose up --build # पुनर्निर्माण
docker pull ghcr.io/hkuds/deeptutor:latest  # छवि अपडेट करें

डेव मोड: -f docker-compose.dev.yml जोड़ें

💻 मैन्युअल स्थापना

विकास या गैर-Docker वातावरण के लिए


आवश्यकताएं: Python 3.10+, Node.js 18+

वातावरण सेट करें:

# conda का उपयोग करना (अनुशंसित)
conda create -n deeptutor python=3.10
conda activate deeptutor

# या venv का उपयोग करना
python -m venv venv
source venv/bin/activate

निर्भरताएं स्थापित करें:

bash scripts/install_all.sh

# या मैन्युअल रूप से:
pip install -r requirements.txt
npm install --prefix web

लॉन्च करें:

# वेब इंटरफ़ेस प्रारंभ करें
python scripts/start_web.py

# या केवल CLI
python scripts/start.py

# रोकें: Ctrl+C

पहुंच URLs

सेवा URL विवरण
फ्रंटएंड http://localhost:3782 मुख्य वेब इंटरफ़ेस
API दस्तावेज़ http://localhost:8001/docs इंटरैक्टिव API दस्तावेज़

📂 डेटा भंडारण

उपयोगकर्ता द्वारा उत्पन्न सभी सामग्री और सिस्टम डेटा data/ फ़ोल्डर में संग्रहीत हैं:

data/
├── knowledge_bases/              # ज्ञान आधार भंडारण
└── user/                         # उपयोगकर्ता गतिविधि डेटा
    ├── solve/                    # समस्या समाधान परिणाम और कलाकृतियां
    ├── question/                 # उत्पन्न प्रश्न
    ├── research/                 # अनुसंधान रिपोर्ट और कैश
    ├── co-writer/                # Co-Writer दस्तावेज़ और ऑडियो फ़ाइलें
    ├── notebook/                 # नोटबुक रिकॉर्ड और मेटाडेटा
    ├── guide/                    # निर्देशित सीखने के सत्र
    ├── logs/                     # सिस्टम लॉग
    └── run_code_workspace/       # कोड निष्पादन कार्यक्षेत्र

किसी भी गतिविधि करते समय सभी परिणाम स्वचालित रूप से सहेजे जाते हैं। फ़ोल्डर स्वचालित रूप से बनाए जाते हैं यदि वे मौजूद नहीं हैं।


📖 मॉड्यूल दस्तावेज़

Configuration Répertoire de Données Backend API Utilitaires Principaux
Base de Connaissances Outils Frontend Web Module de Résolution
Module de Question Module de Recherche Module Co-Writer Module de Guide
Module de Génération d'Idées

❓ अक्सर पूछे जाने वाले प्रश्न

Backend शुरू नहीं हो रहा है?

चेकलिस्ट

  • पुष्टि करें कि Python संस्करण >= 3.10
  • पुष्टि करें कि सभी निर्भरताएं स्थापित हैं: pip install -r requirements.txt
  • जांचें कि पोर्ट 8001 उपयोग में है (config/main.yaml में कॉन्फ़िगर करने योग्य)
  • .env फ़ाइल कॉन्फ़िगरेशन जांचें

समाधान

  • पोर्ट बदलें: config/main.yaml server.backend_port संपादित करें
  • लॉग जांचें: टर्मिनल त्रुटि संदेशों की समीक्षा करें
Ctrl+C के बाद पोर्ट व्यस्त है?

समस्या

चल रहे कार्य (उदाहरण के लिए, गहन अनुसंधान) के दौरान Ctrl+C दबाने के बाद, पुनः आरंभ करने पर "पोर्ट पहले से उपयोग में है" त्रुटि दिखाई देती है।

कारण

Ctrl+C कभी-कभी केवल frontend प्रक्रिया को समाप्त करता है जबकि backend पृष्ठभूमि में चलना जारी रखता है।

समाधान

# macOS/Linux: प्रक्रिया खोजें और समाप्त करें
lsof -i :8001
kill -9 <PID>

# Windows: प्रक्रिया खोजें और समाप्त करें
netstat -ano | findstr :8001
taskkill /PID <PID> /F

फिर python scripts/start_web.py के साथ सेवा पुनः आरंभ करें।

त्रुटि "npm: command not found"?

समस्या

scripts/start_web.py चलाने पर npm: command not found या निकास कोड 127 दिखाई देता है।

चेकलिस्ट

  • जांचें कि npm स्थापित है: npm --version
  • जांचें कि Node.js स्थापित है: node --version
  • पुष्टि करें कि conda वातावरण सक्रिय है (यदि conda उपयोग कर रहे हैं)

समाधान

# विकल्प A: Conda का उपयोग करें (अनुशंसित)
conda install -c conda-forge nodejs

# विकल्प B: आधिकारिक इंस्टॉलर का उपयोग करें
# https://nodejs.org/ से डाउनलोड करें

# विकल्प C: nvm का उपयोग करें
nvm install 18
nvm use 18

स्थापना सत्यापित करें

node --version  # v18.x.x या उच्चतर दिखाना चाहिए
npm --version   # संस्करण संख्या दिखाना चाहिए
Frontend backend से कनेक्ट नहीं हो सकता?

चेकलिस्ट

  • पुष्टि करें कि backend चल रहा है (http://localhost:8001/docs पर जाएं)
  • त्रुटि संदेशों के लिए ब्राउज़र कंसोल जांचें

समाधान

web निर्देशिका में .env.local बनाएं:

NEXT_PUBLIC_API_BASE=http://localhost:8001
WebSocket कनेक्शन विफल?

चेकलिस्ट

  • पुष्टि करें कि backend चल रहा है
  • फ़ायरवॉल सेटिंग्स जांचें
  • पुष्टि करें कि WebSocket URL सही है

समाधान

  • Backend लॉग जांचें
  • URL प्रारूप पुष्टि करें: ws://localhost:8001/api/v1/...
मॉड्यूल आउटपुट कहां संग्रहीत हैं?
मॉड्यूल आउटपुट पथ
समाधान data/user/solve/solve_YYYYMMDD_HHMMSS/
प्रश्न data/user/question/question_YYYYMMDD_HHMMSS/
अनुसंधान data/user/research/reports/
Co-Writer data/user/co-writer/
नोटबुक data/user/notebook/
गाइड data/user/guide/session_{session_id}.json
लॉग data/user/logs/
नया ज्ञान आधार कैसे जोड़ें?

वेब इंटरफ़ेस

  1. http://localhost:{frontend_port}/knowledge पर जाएं
  2. "New Knowledge Base" पर क्लिक करें
  3. ज्ञान आधार का नाम दर्ज करें
  4. PDF/TXT/MD दस्तावेज़ अपलोड करें
  5. सिस्टम पृष्ठभूमि में दस्तावेज़ों को संसाधित करेगा

CLI

python -m src.knowledge.start_kb init <kb_name> --docs <pdf_path>
मौजूदा KB में वृद्धिशील रूप से दस्तावेज़ कैसे जोड़ें?

CLI (अनुशंसित)

python -m src.knowledge.add_documents <kb_name> --docs <new_document.pdf>

लाभ

  • केवल नए दस्तावेज़ों को संसाधित करता है, समय और API लागत बचाता है
  • मौजूदा ज्ञान ग्राफ के साथ स्वचालित विलय
  • सभी मौजूदा डेटा संरक्षित करता है
क्रमांकित तत्व निकालते समय uvloop.Loop त्रुटि?

समस्या

ज्ञान आधार को प्रारंभ करते समय, आप इस त्रुटि का सामना कर सकते हैं:

ValueError: Can't patch loop of type <class 'uvloop.Loop'>

यह इसलिए होता है क्योंकि Uvicorn डिफ़ॉल्ट रूप से uvloop इवेंट लूप का उपयोग करता है, जो nest_asyncio के साथ असंगत है।

समाधान

क्रमांकित तत्वों को निकालने के लिए निम्नलिखित विधियों में से एक का उपयोग करें:

# विकल्प 1: shell स्क्रिप्ट का उपयोग करें (अनुशंसित)
./scripts/extract_numbered_items.sh <kb_name>

# विकल्प 2: सीधी Python कमांड
python src/knowledge/extract_numbered_items.py --kb <kb_name> --base-dir ./data/knowledge_bases

यह आपके ज्ञान आधार से क्रमांकित तत्वों (परिभाषाएं, प्रमेय, समीकरण, आदि) को बिना पुनः प्रारंभ किए निकालेगा।



📄 लाइसेंस

यह प्रोजेक्ट AGPL-3.0 लाइसेंस के तहत लाइसेंस प्राप्त है।

⭐ स्टार इतिहास

🤝 योगदान

हम समुदाय से योगदान का स्वागत करते हैं! कोड की गुणवत्ता और स्थिरता सुनिश्चित करने के लिए, कृपया नीचे दिए गए दिशानिर्देशों का पालन करें।

Configuration de Développement

Configuration des Pre-commit Hooks

Ce projet utilise pre-commit hooks pour formater automatiquement le code et vérifier les problèmes avant de valider.

Étape 1: Installer pre-commit

# Utiliser pip
pip install pre-commit

# Ou utiliser conda
conda install -c conda-forge pre-commit

Étape 2: Installer les crochets Git

cd DeepTutor
pre-commit install

Étape 3: (Optionnel) Exécuter des vérifications sur tous les fichiers

pre-commit run --all-files

Chaque fois que vous exécutez git commit, pre-commit hooks exécutera automatiquement:

  • Formater le code Python avec Ruff
  • Formater le code frontend avec Prettier
  • Vérifier les erreurs de syntaxe
  • Valider les fichiers YAML/JSON
  • Détecter les problèmes de sécurité potentiels

Outils de Qualité de Code

Outil Objectif Configuration
Ruff Vérification et formatage du code Python pyproject.toml
Prettier Formatage du code frontend web/.prettierrc.json
detect-secrets Vérification de sécurité .secrets.baseline

Remarque: Le projet utilise Ruff format au lieu de Black pour éviter les conflits de formatage.

Commandes Courantes

# Commit normal (les hooks s'exécutent automatiquement)
git commit -m "Votre message de commit"

# Vérifier manuellement tous les fichiers
pre-commit run --all-files

# Mettre à jour les hooks vers les dernières versions
pre-commit autoupdate

# Ignorer les hooks (non recommandé, seulement pour les urgences)
git commit --no-verify -m "Correction d'urgence"

Directives de Contribution

  1. Fork et Clone: Fork le référentiel et clonez-le
  2. Créer une Branche: Créer une branche de fonction à partir de main
  3. Installer Pre-commit: Suivre les étapes de configuration ci-dessus
  4. Apporter des Modifications: Écrire du code suivant le style du projet
  5. Tester: Assurez-vous que vos modifications fonctionnent correctement
  6. Commit: Pre-commit hooks formatera automatiquement votre code
  7. Pousser et PR: Pousser vers votre fork et créer une Pull Request

Signaler les Problèmes

  • Utiliser GitHub Issues pour signaler des bogues ou suggérer des fonctionnalités
  • Fournir des informations détaillées sur le problème
  • Si c'est un bogue, inclure les étapes pour le reproduire

❤️ Nous remercions tous nos contributeurs pour leurs précieuses contributions.

🔗 Projets Connexes

⚡ LightRAG 🎨 RAG-Anything 💻 DeepCode 🔬 AI-Researcher
RAG Simple et Rapide RAG Multimodal Assistant de Code IA Automatisation de la Recherche

HKU @ डेटा इंटेलिजेंस लैब

⭐ हमें फॉलो करें · 🐛 बग रिपोर्ट करें · 💬 चर्चाएं


DeepTutor पर जाने के लिए धन्यवाद!

Views