Démarrage Rapide · Modules Principaux · FAQ
🇬🇧 English · 🇨🇳 中文 · 🇯🇵 日本語 · 🇪🇸 Español · 🇸🇦 العربية · 🇷🇺 Русский · 🇮🇳 हिन्दी · 🇵🇹 Português
| ⚡ Q&A de Connaissance de Documents Massifs | 📈 Visualisation d'Apprentissage Interactive |
| 🧠 Renforcement des Connaissances | 🔬 Recherche Approfondie et Génération d'Idées |
[2026.1.1] Bonne Année ! Rejoignez nos GitHub Discussions — façonnez l'avenir de DeepTutor ! 💬
[2025.12.30] Visitez notre Site Web Officiel pour plus de détails !
[2025.12.29] DeepTutor v0.1 est maintenant disponible ! ✨
• Base de Connaissances Intelligente : Téléchargez des manuels, des articles de recherche, des manuels techniques et des documents spécifiques au domaine. Construisez un référentiel de connaissances complet alimenté par l'IA pour un accès instantané.
• Résolution de Problèmes Multi-Agents : Architecture de raisonnement à double boucle avec RAG, recherche web, recherche d'articles et exécution de code—fournissant des solutions étape par étape avec des citations précises.
• Simplification et Explications des Connaissances : Transformez des concepts complexes, des connaissances et des algorithmes en aides visuelles faciles à comprendre, des décompositions détaillées étape par étape et des démonstrations interactives engageantes.
• Q&R Personnalisé : Conversations conscientes du contexte qui s'adaptent à votre progression d'apprentissage, avec des pages interactives et un suivi des connaissances basé sur les sessions.
• Création d'Exercices Intelligents : Générez des quiz ciblés, des problèmes de pratique et des évaluations personnalisées adaptées à votre niveau actuel de connaissances et à vos objectifs d'apprentissage spécifiques.
• Simulation d'Examen Authentique : Téléchargez des examens de référence pour générer des questions de pratique qui correspondent parfaitement au style, au format et à la difficulté originaux—vous donnant une préparation réaliste pour le test réel.
• Recherche Complète et Revue de Littérature : Menez une exploration approfondie de sujets avec une analyse systématique. Identifiez les modèles, connectez des concepts connexes entre les disciplines et synthétisez les résultats de recherche existants.
• Découverte d'Insights Novateurs : Générez des matériaux d'apprentissage structurés et découvrez les lacunes de connaissances. Identifiez de nouvelles directions de recherche prometteuses grâce à une synthèse intelligente des connaissances inter-domaines.
Résolution de Problèmes Multi-Agents avec Citations Exactes |
Explications Visuelles Étape par Étape avec Q&R Personnalisé |
Questions Personnalisées |
Questions Mimétiques |
Base de Connaissances Personnelle |
Carnet Personnel |
🌙 Utilisez DeepTutor en Mode Sombre !
Suivez-nous pour nos futures mises à jour!
- Support des services LLM locaux (ex. ollama)
- Refactorisation du module RAG (voir Discussions)
- Codage profond à partir de la génération d'idées
- Interaction personnalisée avec le carnet
① Cloner le Référentiel
git clone https://github.com/HKUDS/DeepTutor.git
cd DeepTutor② Configurer les Variables d'Environnement
cp .env.example .env
# Éditez le fichier .env avec vos clés API📋 Référence des Variables d'Environnement
| Variable | Requis | Description |
|---|---|---|
LLM_MODEL |
Oui | Nom du modèle (ex: gpt-4o) |
LLM_BINDING_API_KEY |
Oui | Votre clé API LLM |
LLM_BINDING_HOST |
Oui | URL du point de terminaison API |
EMBEDDING_MODEL |
Oui | Nom du modèle d'intégration |
EMBEDDING_BINDING_API_KEY |
Oui | Clé API d'intégration |
EMBEDDING_BINDING_HOST |
Oui | Point de terminaison API d'intégration |
BACKEND_PORT |
Non | Port backend (par défaut: 8001) |
FRONTEND_PORT |
Non | Port frontend (par défaut: 3782) |
TTS_* |
Non | Paramètres de synthèse vocale |
PERPLEXITY_API_KEY |
Non | Pour la recherche web |
③ Configurer les Ports et LLM (Optionnel)
- Ports: Éditez
config/main.yaml→server.backend_port/server.frontend_port - LLM: Éditez
config/agents.yaml→temperature/max_tokenspar module - Voir Documentation de Configuration pour plus de détails
④ Essayer les Bases de Connaissances Démo (Optionnel)
📚 Démos Disponibles
- Articles de Recherche — 5 articles de notre laboratoire (AI-Researcher, LightRAG, etc.)
- Manuel de Science des Données — 8 chapitres, 296 pages (Lien du Livre)
- Télécharger depuis Google Drive
- Extraire dans le répertoire
data/
Les KBs démo utilisent
text-embedding-3-largeavecdimensions = 3072
⑤ Créer Votre Propre Base de Connaissances (Après le Démarrage)
- Aller à http://localhost:3782/knowledge
- Cliquer sur "New Knowledge Base" → Entrer le nom → Télécharger les fichiers PDF/TXT/MD
- Surveiller la progression dans le terminal
|
Recommandé — Pas de configuration Python/Node.js Prérequis: Docker et Docker Compose 🚀 Option A: Image Pré-construite (Plus Rapide)# Télécharger et exécuter l'image pré-construite (~30 secondes)
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:latestOu utiliser le fichier 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🔨 Option B: Construire depuis le Code Source# Construire et démarrer (~5-10 min première exécution)
docker compose up --build -d
# Voir les logs
docker compose logs -fCommandes: docker compose up -d # Démarrer
docker compose logs -f # Logs
docker compose down # Arrêter
docker compose up --build # Reconstruire
docker pull ghcr.io/hkuds/deeptutor:latest # Mettre à jour l'image
|
Pour le développement ou les environnements non Docker Prérequis: Python 3.10+, Node.js 18+ Configurer l'Environnement: # Utiliser conda (Recommandé)
conda create -n deeptutor python=3.10
conda activate deeptutor
# Ou utiliser venv
python -m venv venv
source venv/bin/activateInstaller les Dépendances: bash scripts/install_all.sh
# Ou manuellement:
pip install -r requirements.txt
npm install --prefix webLancer: # Démarrer l'interface web
python scripts/start_web.py
# Ou CLI uniquement
python scripts/start.py
# Arrêter: Ctrl+C |
| Service | URL | Description |
|---|---|---|
| Frontend | http://localhost:3782 | Interface web principale |
| Documentation API | http://localhost:8001/docs | Documentation API interactive |
Tout le contenu généré par l'utilisateur et les données du système sont stockés dans le dossier data/:
data/
├── knowledge_bases/ # Stockage de la base de connaissances
└── user/ # Données d'activité de l'utilisateur
├── solve/ # Résultats de résolution de problèmes et artefacts
├── question/ # Questions générées
├── research/ # Rapports de recherche et cache
├── co-writer/ # Documents Co-Writer et fichiers audio
├── notebook/ # Enregistrements de carnet et métadonnées
├── guide/ # Sessions d'apprentissage guidé
├── logs/ # Journaux système
└── run_code_workspace/ # Espace de travail d'exécution de code
Tous les résultats sont automatiquement enregistrés lorsque vous effectuez n'importe quelle activité. Les dossiers sont créés automatiquement s'ils n'existent pas.
Le backend ne démarre pas?
Liste de Vérification
- Confirmez que la version Python >= 3.10
- Confirmez que toutes les dépendances sont installées:
pip install -r requirements.txt - Vérifiez si le port 8001 est utilisé (configurable dans
config/main.yaml) - Vérifiez la configuration du fichier
.env
Solutions
- Changer le port: Modifiez
config/main.yamlserver.backend_port - Vérifier les journaux: Vérifiez les messages d'erreur du terminal
Port occupé après Ctrl+C?
Problème
Après avoir appuyé sur Ctrl+C pendant une tâche en cours (par exemple, recherche profonde), le redémarrage affiche une erreur "port déjà en utilisation".
Cause
Ctrl+C ne termine parfois que le processus frontend tandis que le backend continue de s'exécuter en arrière-plan.
Solution
# macOS/Linux: Trouver et tuer le processus
lsof -i :8001
kill -9 <PID>
# Windows: Trouver et tuer le processus
netstat -ano | findstr :8001
taskkill /PID <PID> /FPuis redémarrez le service avec python scripts/start_web.py.
Erreur "npm: command not found"?
Problème
L'exécution de scripts/start_web.py affiche npm: command not found ou le code de sortie 127.
Liste de Vérification
- Vérifiez si npm est installé:
npm --version - Vérifiez si Node.js est installé:
node --version - Confirmez que l'environnement conda est activé (si vous utilisez conda)
Solutions
# Option A: Utiliser Conda (Recommandé)
conda install -c conda-forge nodejs
# Option B: Utiliser l'installateur officiel
# Télécharger depuis https://nodejs.org/
# Option C: Utiliser nvm
nvm install 18
nvm use 18Vérifier l'Installation
node --version # Devrait afficher v18.x.x ou supérieur
npm --version # Devrait afficher le numéro de versionLe frontend ne peut pas se connecter au backend?
Liste de Vérification
- Confirmez que le backend est en cours d'exécution (visitez http://localhost:8001/docs)
- Vérifiez la console du navigateur pour les messages d'erreur
Solution
Créez .env.local dans le répertoire web:
NEXT_PUBLIC_API_BASE=http://localhost:8001Échec de la connexion WebSocket?
Liste de Vérification
- Confirmez que le backend est en cours d'exécution
- Vérifiez les paramètres du pare-feu
- Confirmez que l'URL WebSocket est correcte
Solution
- Vérifiez les journaux du backend
- Confirmez le format de l'URL:
ws://localhost:8001/api/v1/...
Où les sorties du module sont-elles stockées?
| Module | Chemin de Sortie |
|---|---|
| Résoudre | data/user/solve/solve_YYYYMMDD_HHMMSS/ |
| Question | data/user/question/question_YYYYMMDD_HHMMSS/ |
| Recherche | data/user/research/reports/ |
| Co-Writer | data/user/co-writer/ |
| Carnet | data/user/notebook/ |
| Guide | data/user/guide/session_{session_id}.json |
| Journaux | data/user/logs/ |
Comment ajouter une nouvelle base de connaissances?
Interface Web
- Visitez http://localhost:{frontend_port}/knowledge
- Cliquez sur "New Knowledge Base"
- Entrez le nom de la base de connaissances
- Téléchargez des documents PDF/TXT/MD
- Le système traitera les documents en arrière-plan
CLI
python -m src.knowledge.start_kb init <kb_name> --docs <pdf_path>Comment ajouter des documents de manière incrémentale à une BC existante?
CLI (Recommandé)
python -m src.knowledge.add_documents <kb_name> --docs <new_document.pdf>Avantages
- Traite uniquement les nouveaux documents, économise le temps et le coût de l'API
- Fusion automatique avec le graphique de connaissances existant
- Préserve toutes les données existantes
Erreur uvloop.Loop lors de l'extraction d'éléments numérotés?
Problème
Lors de l'initialisation d'une base de connaissances, vous pouvez rencontrer cette erreur:
ValueError: Can't patch loop of type <class 'uvloop.Loop'>
Ceci se produit car Uvicorn utilise la boucle d'événements uvloop par défaut, qui est incompatible avec nest_asyncio.
Solution
Utilisez l'une des méthodes suivantes pour extraire les éléments numérotés:
# Option 1: Utiliser le script shell (recommandé)
./scripts/extract_numbered_items.sh <kb_name>
# Option 2: Commande Python directe
python src/knowledge/extract_numbered_items.py --kb <kb_name> --base-dir ./data/knowledge_basesCeci extraira les éléments numérotés (Définitions, Théorèmes, Équations, etc.) de votre base de connaissances sans la réinitialiser.
Ce projet est sous licence AGPL-3.0.
Nous accueillons les contributions de la communauté! Pour assurer la qualité et la cohérence du code, veuillez suivre les directives ci-dessous.
Configuration de Développement
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-filesChaque 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
| 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.
# 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"- Fork et Clone: Fork le référentiel et clonez-le
- Créer une Branche: Créer une branche de fonction à partir de
main - Installer Pre-commit: Suivre les étapes de configuration ci-dessus
- Apporter des Modifications: Écrire du code suivant le style du projet
- Tester: Assurez-vous que vos modifications fonctionnent correctement
- Commit: Pre-commit hooks formatera automatiquement votre code
- Pousser et PR: Pousser vers votre fork et créer une Pull Request
- 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.
| ⚡ LightRAG | 🎨 RAG-Anything | 💻 DeepCode | 🔬 AI-Researcher |
|---|---|---|---|
| RAG Simple et Rapide | RAG Multimodal | Assistant de Code IA | Automatisation de la Recherche |
Laboratoire d'Intelligence des Données @ HKU
⭐ Suivez-nous · 🐛 Signaler un bogue · 💬 Discussions
✨ Merci de visiter DeepTutor!
