คุณสมบัติเด่น · เริ่มต้นใช้งาน · สำรวจความสามารถ · TutorBot · CLI · ชุมชน
🇺🇸 English · 🇨🇳 中文 · 🇯🇵 日本語 · 🇪🇸 Español · 🇫🇷 Français · 🇸🇦 العربية · 🇷🇺 Русский · 🇮🇳 हिन्दी · 🇵🇹 Português · 🇹🇭 ภาษาไทย · 🇵🇱 Polski
🤝 ยินดีรับทุกรูปแบบการมีส่วนร่วม! ดู คู่มือการมีส่วนร่วม สำหรับกลยุทธ์สาขา มาตรฐานโค้ด และจุดเริ่มต้น
[2026.5.10] v1.3.10 — แก้ CORS สำหรับ Docker ระยะไกล,
DISABLE_SSL_VERIFYใน SDK providers, citation ใน code block และแยก Matrix E2EE เป็น add-on
[2026.5.9] v1.3.9 — TutorBot รองรับ Zulip และ NVIDIA NIM, routing ของ thinking-model ปลอดภัยขึ้น,
deeptutor start, tooltip ใน sidebar, และ session-store parity
[2026.5.8] v1.3.8 — deployment แบบ multi-user ที่เปิดได้ตามต้องการ พร้อม workspace แยกผู้ใช้, admin grants, auth routes, และ scoped runtime access
[2026.5.4] v1.3.7 — แก้ไข thinking-model/provider, แสดงประวัติ Knowledge index, และ Co-Writer clear/template editing ปลอดภัยขึ้น
[2026.5.3] v1.3.6 — เลือกโมเดลจากคาตาล็อกสำหรับแชตและ TutorBot, RAG re-indexing ปลอดภัยขึ้น, แก้ token-limit ของ OpenAI Responses, และตรวจสอบ Skills editor
[2026.5.2] v1.3.5 — ตั้งค่าการเปิดใช้งานในเครื่องราบรื่นขึ้น, RAG queries ปลอดภัยขึ้น, local embedding auth ชัดเจนขึ้น, และปรับแต่ง dark-mode ของ Settings
[2026.5.1] v1.3.4 — Chat persistence บนหน้าหนังสือและ rebuild flows, อ้างอิงจากแชตไปหนังสือ, จัดการภาษา/การให้เหตุผลแข็งแกร่งขึ้น, เสริมความแข็งแกร่งการดึงเอกสาร RAG
[2026.4.30] v1.3.3 — รองรับ embedding NVIDIA NIM และ Gemini, Space context รวมสำหรับประวัติแชต / สกิล / หน่วยความจำ, snapshot ของเซสชัน, ความทนทานของการทำดัชนี RAG ใหม่
[2026.4.29] v1.3.2 — URL ปลายทาง embedding โปร่งใส, ความทนทาน re-index RAG เมื่อเวกเตอร์ที่ persist ไม่ถูกต้อง, ทำความสะอาดหน่วยความจำสำหรับเอาต์พุตโมเดล thinking, แก้รันไทม์ Deep Solve
[2026.4.28] v1.3.1 — เสถียรภาพ: RAG routing ปลอดภัยขึ้นและตรวจสอบ embedding, Docker persistence, อินพุตปลอดภัยกับ IME, ความทนทาน Windows/GBK
[2026.4.27] v1.3.0 — ดัชนี KB แบบมีเวอร์ชันพร้อมเวิร์กโฟลว์ re-index, รีบิลด์ Knowledge workspace, embedding auto-discovery กับอะแดปเตอร์ใหม่, Space hub
รุ่นที่ผ่านมา (มากกว่า 2 สัปดาห์ที่แล้ว)
[2026.4.25] v1.2.5 — แนบไฟล์ในแชตถาวรพร้อมลิ้นชักพรีวิว, pipeline ความสามารถที่รับรู้แนบไฟล์, ส่งออก Markdown ของ TutorBot
[2026.4.25] v1.2.4 — แนบข้อความ / โค้ด / SVG, Setup Tour คำสั่งเดียว, ส่งออกแชต Markdown, UI จัดการ KB แบบกะทัดรัด
[2026.4.24] v1.2.3 — แนบเอกสาร (PDF/DOCX/XLSX/PPTX), แสดงบล็อกการคิดของโมเดลให้เหตุผล, ตัวแก้เทมเพลต Soul, บันทึก Co-Writer ลงสมุด
[2026.4.22] v1.2.2 — ระบบ Skills ที่ผู้ใช้สร้าง, ปรับประสิทธิ์อินพุตแชต, TutorBot สตาร์ทอัตโนมัติ, UI ห้องสมุดหนังสือ, โหมดเต็มจอของการแสดงผล
[2026.4.21] v1.2.1 — จำกัดโทเคนต่อขั้นตอน, สร้างคำตอบใหม่ได้ทุกจุดเข้า, แก้ความเข้ากันได้ของ RAG และ Gemma
[2026.4.20] v1.2.0 — คอมไพเลอร์ Book Engine «หนังสือมีชีวิต», Co-Writer หลายเอกสาร, การแสดงผล HTML แบบโต้ตอบ, @-mention ธนาคารคำถามในแชต
[2026.4.18] v1.1.2 — แท็บ Channels แบบ schema-driven, รวม RAG เป็น pipeline เดียว, แยก chat prompts ออกเป็นไฟล์ภายนอก
[2026.4.17] v1.1.1 — ปุ่ม "ตอบเลย" ครอบคลุมทุกความสามารถ, Co-Writer scroll sync, แผงตั้งค่ารวม, ปุ่ม Stop ระหว่างสตรีม
[2026.4.15] v1.1.0 — ปรับปรุงการ parse LaTeX block math, ตั้งค่า LLM probe ผ่าน agents.yaml, forward extra headers ใน LLM factory, แก้ UUID ของ SaveToNotebookModal, คำแนะนำ Docker + local LLM และขยาย test suite
[2026.4.14] v1.1.0-beta — URL-based chat routing พร้อม bookmark ได้, ธีม Snow, WebSocket heartbeat & auto-reconnect พร้อม resume, ปรับ ChatComposer ให้เร็วขึ้น, overhaul embedding provider registry, Serper search provider, streaming idle timeout และขยาย test suite
[2026.4.13] v1.0.3 — Question Notebook สำหรับทบทวนแบบทดสอบรวมศูนย์พร้อม bookmark & หมวดหมู่, รองรับ Mermaid diagram ใน Visualize, ตรวจจับ embedding model ไม่ตรง, รวม system message สำหรับ Qwen/vLLM, รองรับ LM Studio & llama.cpp และธีม Glass
[2026.4.11] v1.0.2 — ปรับโครงสร้าง search consolidation ให้ง่ายขึ้นพร้อม SearXNG fallback, แก้ไข provider switch fix, ตั้ง runtime config ชัดเจนใน test runner และแก้ resource leak ฝั่ง frontend
[2026.4.10] v1.0.1 — เพิ่ม Visualize capability ใหม่พร้อม Chart.js/SVG rendering pipeline, ป้องกัน quiz ซ้ำด้วย generation history, รองรับ o4-mini model และปรับปรุง server logging
[2026.4.10] v1.0.0-beta.4 — แสดงความคืบหน้า Embedding พร้อม retry เมื่อเจอ HTTP 429, จัดการ dependency ข้ามแพลตฟอร์มใน start tour และแก้ MIME validation ให้ case-insensitive
[2026.4.8] v1.0.0-beta.3 — ลบ litellm dependency ใช้ native OpenAI/Anthropic SDK providers แทน, รองรับ Math Animator บน Windows, parse JSON จาก LLM ให้ robust ขึ้น, แก้ KaTeX & navigation ใน Guided Learning และ i18n ภาษาจีนครบ
[2026.4.7] v1.0.0-beta.2 — ล้าง runtime cache สำหรับ hot settings reload, รองรับ MinerU nested output, แก้ mimic WebSocket, กำหนดขั้นต่ำ Python 3.11+ และปรับปรุง CI
[2026.4.4] v1.0.0-beta.1 — เขียนสถาปัตยกรรมใหม่แบบ Agent-native (~200k บรรทัด) พร้อมโมเดลปลั๊กอิน 2 ชั้น (Tools + Capabilities), CLI & SDK entry points, TutorBot มัลติแชนแนล, Co-Writer, Guided Learning และ persistent memory
[2026.1.23] v0.6.0 — Session persistence, อัปโหลดเอกสารเพิ่มทีละไฟล์, import RAG pipeline ที่ยืดหยุ่น และ localization ภาษาจีนครบ
[2026.1.18] v0.5.2 — รองรับ Docling สำหรับ RAG-Anything, ปรับ logging system และแก้บั๊ก
[2026.1.15] v0.5.0 — Unified service configuration, เลือก RAG pipeline ต่อ knowledge base, ปรับ question generation ใหม่ และปรับแต่ง sidebar
[2026.1.9] v0.4.0 — รองรับ Multi-provider LLM & embedding, หน้า home ใหม่, แยก RAG module และ refactor environment variable
[2026.1.5] v0.3.0 — สถาปัตยกรรม PromptManager รวม, GitHub Actions CI/CD และ Docker image สำเร็จรูปบน GHCR
[2026.1.2] v0.2.0 — Docker deployment, อัปเกรด Next.js 16 & React 19, WebSocket security hardening และแก้ช่องโหว่สำคัญ
[2026.4.19] 🎉 ครบ 20k ดาวหลัง 111 วัน! ขอบคุณที่สนับสนุน — เราจะพัฒนาต่อเพื่อติวเตอร์เชิงบุคคลและฉลาดอย่างแท้จริง
[2026.4.10] 📄 งานวิจัยของเราลง arXiv แล้ว! อ่าน พรีปรินต์ เพื่อทำความเข้าใจการออกแบบและแนวคิดของ DeepTutor
[2026.4.4] นานมาแล้ว ✨ DeepTutor v1.0.0 มาถึงแล้ว — วิวัฒนาการแบบ agent-native ที่เขียนสถาปัตยกรรมใหม่ตั้งแต่ต้น พร้อม TutorBot และการสลับโหมดอย่างยืดหยุ่น ภายใต้สัญญาอนุญาต Apache-2.0 บทใหม่เริ่มต้นขึ้น เรื่องราวของเรายังดำเนินต่อไป!
[2026.2.6] 🚀 เราไปถึง 10,000 ดาวภายในเพียง 39 วัน! ขอบคุณชุมชนที่ยอดเยี่ยมของเราสำหรับการสนับสนุน!
[2026.1.1] สวัสดีปีใหม่! มาร่วม Discord, WeChat หรือ Discussions ของเรา — มาร่วมกำหนดอนาคตของ DeepTutor กัน!
[2025.12.29] DeepTutor เปิดตัวอย่างเป็นทางการ!
- พื้นที่แชตแบบรวมศูนย์ — 6 โหมดในเธรดเดียว: Chat, Deep Solve, Quiz Generation, Deep Research, Math Animator และ Visualize ใช้บริบทร่วมกัน เริ่มจากถามง่าย ไปสู่การแก้ปัญหาแบบหลายเอเจนต์ สร้างภาพความคิด ออกแบบทดสอบ และเจาะลึกงานวิจัยโดยไม่เสียประวัติ
- AI Co-Writer — พื้นที่ Markdown หลายเอกสาร AI เป็นผู้ร่วมเขียนระดับแรก: Rewrite, Expand, Shorten ดึงบริบทจาก knowledge base และเว็บ
- Book Engine — เปลี่ยนวัสดุของคุณเป็น «หนังสือมีชีวิต» แบบมีโครงสร้างและโต้ตอบได้ ไปป์ไลน์หลายเอเจนต์ 13 ประเภทบล็อก (แบบทดสอบ แฟลชการ์ด ไทม์ไลน์ กราฟแนวคิด ฯลฯ)
- Knowledge Hub — สร้าง knowledge base แบบ RAG-ready สมุดบันทึกสีสัน ธนาคารคำถาม และ Skills กำหนดสไตล์การสอน
- Persistent Memory — DeepTutor สร้างโปรไฟล์ผู้เรียนที่เติบโตอยู่ตลอดเวลา ใช้ร่วมกันข้ามทุกฟีเจอร์และทุก TutorBot ยิ่งใช้ยิ่งแม่นยำ
- TutorBot ส่วนตัว — ไม่ใช่แค่ chatbot แต่เป็นติวเตอร์อัตโนมัติที่มี workspace, memory, บุคลิก และทักษะของตัวเอง ขับเคลื่อนโดย nanobot
- Agent-Native CLI — ทุกความสามารถ, knowledge base, session และ TutorBot ผ่านคำสั่งเดียว Rich และ JSON มอบ
SKILL.mdให้ agent
ก่อนเริ่ม ตรวจสอบว่ามีเครื่องมือต่อไปนี้ติดตั้งแล้ว:
| ข้อกำหนด | เวอร์ชัน | ตรวจสอบ | หมายเหตุ |
|---|---|---|---|
| Git | ใดก็ได้ | git --version |
สำหรับ clone โปรเจกต์ |
| Python | 3.11+ | python --version |
รัน backend |
| Node.js | 20.9+ | node --version |
frontend runtime สำหรับการติดตั้ง Web ในเครื่อง |
| npm | มากับ Node.js | npm --version |
ติดตั้งพร้อม Node.js |
คุณยังต้องมี API Key จากผู้ให้บริการ LLM อย่างน้อยหนึ่งราย (เช่น OpenAI, DeepSeek, Anthropic) Setup Tour จะนำทางการกรอก
สคริปต์ CLI แบบโต้ตอบเพียงตัวเดียว พาคุณจาก clone สดใหม่ไปจนถึงแอปที่รันได้ — ไม่ต้อง pip install หรือ npm install หรือแก้ data/user/settings/*.json เอง ทุกอย่างถูกตรวจหา ติดตั้ง และตั้งค่าในขั้นแนะนำ 7 ขั้น
git clone https://github.com/HKUDS/DeepTutor.git
cd DeepTutor
# สร้าง Python virtual environment (เลือกอย่างใดอย่างหนึ่ง):
conda create -n deeptutor python=3.11 && conda activate deeptutor # Anaconda/Miniconda
python -m venv .venv && source .venv/bin/activate # macOS/Linux
python -m venv .venv && .venv\Scripts\activate # Windows
# เริ่ม guided tour
python scripts/start_tour.pyเมื่อตัวช่วยจบ:
python scripts/start_web.pyการเปิดใช้งานประจำวัน — โดยทั่วไปรัน Tour แค่ครั้งเดียว หลังจากนั้นใช้
python scripts/start_web.pyเพื่อสตาร์ท backend กับ frontend พร้อมกัน (URL ฝั่ง frontend แสดงในเทอร์มินัล) รันstart_tour.pyอีกครั้งเฉพาะเมื่อต้องตั้งค่า provider ใหม่ เปลี่ยนพอร์ต หรือติดตั้งส่วนเสริมที่ขาด ในหน้า Settings ของเว็บกด Run Tour เพื่อเล่น walkthrough แบบเน้นจุดอีกครั้ง
หากคุณต้องการควบคุมทุกขั้นตอนด้วยตัวเอง ให้ติดตั้งและตั้งค่าตามนี้
1. ติดตั้ง dependency
git clone https://github.com/HKUDS/DeepTutor.git
cd DeepTutor
conda create -n deeptutor python=3.11 && conda activate deeptutor
pip install -e ".[server]"
# Frontend
cd web && npm install && cd ..2. ตั้งค่า runtime settings
python scripts/start_tour.pyแก้ไขไฟล์ data/user/settings/*.json และกรอกค่าที่จำเป็นอย่างน้อยดังนี้:
ผู้ให้บริการ LLM ที่รองรับ
| ผู้ให้บริการ | Binding | Base URL เริ่มต้น |
|---|---|---|
| AiHubMix | aihubmix |
https://aihubmix.com/v1 |
| Anthropic | anthropic |
https://api.anthropic.com/v1 |
| Azure OpenAI | azure_openai |
— |
| BytePlus | byteplus |
https://ark.ap-southeast.bytepluses.com/api/v3 |
| BytePlus Coding Plan | byteplus_coding_plan |
https://ark.ap-southeast.bytepluses.com/api/coding/v3 |
| Custom | custom |
— |
| Custom (Anthropic API) | custom_anthropic |
— |
| DashScope | dashscope |
https://dashscope.aliyuncs.com/compatible-mode/v1 |
| DeepSeek | deepseek |
https://api.deepseek.com |
| Gemini | gemini |
https://generativelanguage.googleapis.com/v1beta/openai/ |
| GitHub Copilot | github_copilot |
https://api.githubcopilot.com |
| Groq | groq |
https://api.groq.com/openai/v1 |
| llama.cpp | llama_cpp |
http://localhost:8080/v1 |
| LM Studio | lm_studio |
http://localhost:1234/v1 |
| MiniMax | minimax |
https://api.minimaxi.com/v1 |
| MiniMax (Anthropic) | minimax_anthropic |
https://api.minimaxi.com/anthropic |
| Mistral | mistral |
https://api.mistral.ai/v1 |
| Moonshot | moonshot |
https://api.moonshot.cn/v1 |
| Ollama | ollama |
http://localhost:11434/v1 |
| OpenAI | openai |
https://api.openai.com/v1 |
| OpenAI Codex | openai_codex |
https://chatgpt.com/backend-api |
| OpenRouter | openrouter |
https://openrouter.ai/api/v1 |
| OpenVINO Model Server | ovms |
http://localhost:8000/v3 |
| Qianfan | qianfan |
https://qianfan.baidubce.com/v2 |
| SiliconFlow | siliconflow |
https://api.siliconflow.cn/v1 |
| Step Fun | stepfun |
https://api.stepfun.com/v1 |
| vLLM/Local | vllm |
— |
| VolcEngine | volcengine |
https://ark.cn-beijing.volces.com/api/v3 |
| VolcEngine Coding Plan | volcengine_coding_plan |
https://ark.cn-beijing.volces.com/api/coding/v3 |
| Xiaomi MIMO | xiaomi_mimo |
https://api.xiaomimimo.com/v1 |
| Zhipu AI | zhipu |
https://open.bigmodel.cn/api/paas/v4 |
ผู้ให้บริการ Embedding ที่รองรับ
| ผู้ให้บริการ | Binding | ตัวอย่างโมเดล | Dimension เริ่มต้น |
|---|---|---|---|
| OpenAI | openai |
text-embedding-3-large |
3072 |
| Azure OpenAI | azure_openai |
deployment name | — |
| Cohere | cohere |
embed-v4.0 |
1024 |
| Jina | jina |
jina-embeddings-v3 |
1024 |
| Ollama | ollama |
nomic-embed-text |
768 |
| vLLM / LM Studio | vllm |
โมเดล embedding ใดก็ได้ | — |
| OpenAI-compatible | custom |
— | — |
ผู้ให้บริการที่เข้ากันได้กับ OpenAI (DashScope, SiliconFlow ฯลฯ) ใช้ผ่าน binding custom หรือ openai ได้
ผู้ให้บริการ Web Search ที่รองรับ
| ผู้ให้บริการ | Env Key | หมายเหตุ |
|---|---|---|
| Brave | BRAVE_API_KEY |
แนะนำ, มี free tier |
| Tavily | TAVILY_API_KEY |
|
| Serper | SERPER_API_KEY |
ผลการค้นหา Google ผ่าน Serper |
| Jina | JINA_API_KEY |
|
| SearXNG | — | Self-hosted, ไม่ต้องใช้ API key |
| DuckDuckGo | — | ไม่ต้องใช้ API key |
| Perplexity | PERPLEXITY_API_KEY |
ต้องใช้ API key |
3. เริ่มบริการ
วิธีที่เร็วที่สุด:
python scripts/start_web.pyคำสั่งนี้จะสตาร์ททั้ง backend และ frontend พร้อมเปิดเบราว์เซอร์ให้โดยอัตโนมัติ
หรือรันแยกเทอร์มินัล:
# Backend (FastAPI)
python -m deeptutor.api.run_server
# Frontend (Next.js) — เปิดอีกเทอร์มินัลหนึ่ง
cd web && npm run dev -- -p 3782| Service | Port เริ่มต้น |
|---|---|
| Backend | 8001 |
| Frontend | 3782 |
เปิด http://localhost:3782 แล้วพร้อมใช้งาน
Docker ช่วยรวม backend และ frontend ไว้ในคอนเทนเนอร์เดียว จึงไม่จำเป็นต้องติดตั้ง Python หรือ Node.js บนเครื่องโดยตรง
1. สร้าง runtime settings (จำเป็นสำหรับทุกตัวเลือก)
git clone https://github.com/HKUDS/DeepTutor.git
cd DeepTutor
python scripts/start_tour.pyแก้ไข data/user/settings/*.json และกรอกค่าที่จำเป็น (เหมือน ตัวเลือก B ด้านบน)
2a. ดึง image ทางการ (แนะนำ)
Image ทางการเผยแพร่ที่ GitHub Container Registry ทุกครั้งที่ release สำหรับ linux/amd64 และ linux/arm64
python scripts/docker_compose.py -f docker-compose.ghcr.yml up -dหากต้องการ pin เวอร์ชันเฉพาะ ให้แก้ image tag ใน docker-compose.ghcr.yml:
image: ghcr.io/hkuds/deeptutor:1.0.0 # หรือ :latest2b. Build จาก source
python scripts/docker_compose.py up -dคำสั่งนี้จะ build image จาก Dockerfile และเริ่มคอนเทนเนอร์
3. ตรวจสอบและจัดการ
เปิด http://localhost:3782 เมื่อคอนเทนเนอร์พร้อมแล้ว
python scripts/docker_compose.py logs -f # ดู log
python scripts/docker_compose.py down # หยุดและลบคอนเทนเนอร์Deploy บน Cloud / เซิร์ฟเวอร์ระยะไกล
เมื่อ deploy บนเซิร์ฟเวอร์ระยะไกล เบราว์เซอร์ต้องรู้ URL สาธารณะของ backend API เพิ่มตัวแปรอีกหนึ่งตัวใน data/user/settings/*.json:
{
"next_public_api_base_external": "https://your-server.com:8001"
}Frontend startup script จะใช้ค่านี้ตอน runtime — ไม่ต้อง rebuild
การยืนยันตัวตน (สำหรับการ deploy สาธารณะ)
การยืนยันตัวตน ปิดใช้งานโดยค่าเริ่มต้น — ไม่ต้องเข้าสู่ระบบบน localhost สำหรับการ deploy แบบ multi-tenant ดูส่วน มัลติยูเซอร์ ด้านล่าง
ผู้ใช้คนเดียวแบบ headless (ไม่มีขั้นตอน /register): กำหนดค่าล่วงหน้าผ่าน env vars:
python -c "from deeptutor.services.auth import hash_password; print(hash_password('yourpassword'))"// Runtime configuration now lives in data/user/settings/.
// Model/provider credentials: model_catalog.json
// Ports/CORS/attachments: system.json
// Auth settings: auth.json (JWT secret stays in multi-user/_system/auth/auth_secret)
// PocketBase and sidecars: integrations.jsonPocketBase sidecar (ยืนยันตัวตนและจัดเก็บข้อมูลเสริม)
PocketBase เป็น backend เบาแบบ optional ที่แทนที่การยืนยันตัวตน SQLite/JSON ในตัว
⚠️ PocketBase mode ใช้ได้กับผู้ใช้คนเดียวเท่านั้นในปัจจุบัน สคีมาเริ่มต้นไม่มีฟิลด์roleในusersและ queries ไม่ถูกกรองตามuser_idMulti-user: ปล่อยintegrations.pocketbase_urlว่างไว้
python scripts/docker_compose.py up -d
open http://localhost:8090/_/
pip install pocketbase
python scripts/pb_setup.py// Runtime configuration now lives in data/user/settings/.
// Model/provider credentials: model_catalog.json
// Ports/CORS/attachments: system.json
// Auth settings: auth.json (JWT secret stays in multi-user/_system/auth/auth_secret)
// PocketBase and sidecars: integrations.jsonDevelopment mode (hot-reload)
เพิ่ม dev override เพื่อ mount source code และเปิด hot-reload สำหรับทั้งสองบริการ:
python scripts/docker_compose.py -f docker-compose.yml -f docker-compose.dev.yml upการเปลี่ยนแปลงใน deeptutor/, deeptutor_cli/, scripts/ และ web/ จะมีผลทันที
กำหนด Port เอง
แก้ไข port เริ่มต้นใน data/user/settings/*.json:
{
"backend_port": 9001,
"frontend_port": 4000
}จากนั้นรีสตาร์ท:
python scripts/docker_compose.py up -d # หรือ python scripts/docker_compose.py -f docker-compose.ghcr.yml up -dการเก็บข้อมูลถาวร (Data persistence)
ข้อมูลผู้ใช้และ knowledge base เก็บผ่าน Docker volume ที่ map กับ directory ในเครื่อง:
| Container path | Host path | เนื้อหา |
|---|---|---|
/app/data/user |
./data/user |
Settings, workspace, sessions, logs |
/app/data/memory |
./data/memory |
หน่วยความจำระยะยาวที่ใช้ร่วมกัน (SUMMARY.md, PROFILE.md) |
/app/data/knowledge_bases |
./data/knowledge_bases |
เอกสารที่อัปโหลด & vector indices |
Directory เหล่านี้จะอยู่หลังจาก python scripts/docker_compose.py down และถูกนำมาใช้ใหม่เมื่อ python scripts/docker_compose.py up ครั้งต่อไป
Runtime settings / deployment overrides
Runtime settings live in data/user/settings/*.json; model_catalog.json is the source of truth for model, embedding, and search provider credentials. Non-model runtime settings live in system.json, auth.json, and integrations.json.
Docker startup is JSON-driven via scripts/docker_compose.py; use data/user/settings/*.json rather than the project-root .env or legacy BACKEND_PORT / FRONTEND_PORT variables.
หากคุณต้องการเฉพาะ command-line interface โดยไม่ใช้เว็บ frontend:
pip install -e ".[cli]"
deeptutor chat # Interactive REPL
deeptutor run chat "Explain Fourier transform" # เรียกใช้ capability แบบ one-shot
deeptutor run deep_solve "Solve x^2 = 4" # แก้ปัญหาแบบหลายเอเจนต์
deeptutor kb create my-kb --doc textbook.pdf # สร้าง knowledge baseดูรายละเอียดเพิ่มเติมที่ DeepTutor CLI
DeepTutor รวม 6 โหมดหลักไว้ใน workspace เดียว โดยใช้ ระบบจัดการบริบทร่วมกัน ทำให้ประวัติการสนทนา knowledge base และแหล่งอ้างอิงต่อเนื่องข้ามโหมดได้ — สลับไปมาได้อิสระในหัวข้อเดียวกัน
| โหมด | หน้าที่ |
|---|---|
| Chat | สนทนาแบบยืดหยุ่น พร้อมเปิดใช้ RAG, web search, code execution, deep reasoning, brainstorming และ paper search ได้ตามต้องการ |
| Deep Solve | แก้ปัญหาแบบหลายเอเจนต์ โดยวางแผน สืบค้น แก้โจทย์ และตรวจสอบ พร้อม citation อย่างเป็นระบบ |
| Quiz Generation | สร้างแบบทดสอบจาก knowledge base พร้อมตรวจสอบคุณภาพของคำถาม |
| Deep Research | แยกหัวข้อออกเป็นประเด็นย่อย ส่งเอเจนต์ค้นคว้าแบบขนานจาก RAG, เว็บ และงานวิชาการ แล้วสรุปเป็นรายงานที่มีอ้างอิง |
| Math Animator | เปลี่ยนแนวคิดคณิตศาสตร์ให้เป็นภาพเคลื่อนไหวและ storyboard ด้วย Manim |
| Visualize | สร้าง SVG, Chart.js, Mermaid หรือหน้า HTML แบบรวมไฟล์เดียวจากคำอธิบายภาษาธรรมดา |
เครื่องมือ แยกอิสระจาก workflow — ในทุกโหมด คุณเลือกได้ว่าจะเปิดเครื่องมือตัวไหน ใช้กี่ตัว หรือจะไม่ใช้เลย Workflow จัดการเรื่องการให้เหตุผล ส่วนเครื่องมือเป็นของคุณที่จะประกอบเข้าด้วยกัน
เริ่มจากถามคำถามง่าย ๆ ยกระดับเป็น Deep Solve เมื่อยากขึ้น แสดงภาพความคิด สร้างแบบทดสอบเพื่อตรวจสอบตัวเอง จากนั้นเปิด Deep Research เพื่อลงลึก — ทั้งหมดในเธรดเดียว
สร้างและจัดการหลายเอกสาร แต่ละไฟล์ถูกเก็บถาวร — ไม่ใช่แค่ฉบับร่างครั้งเดียว: Markdown เต็มรูปแบบที่ AI เป็นผู้ร่วมเขียนระดับแรก เลือกข้อความแล้วสั่ง Rewrite, Expand หรือ Shorten ดึงบริบทจาก knowledge base หรือเว็บ undo/redo เต็มรูปแบบ บันทึกลง notebook ได้
ระบุหัวข้อชี้ไปที่ knowledge base — ได้หนังสือที่มีโครงสร้างและโต้ตอบได้ ไม่ใช่ไฟล์ส่งออกคงที่ แต่เป็นเอกสารมีชีวิตสำหรับอ่าน ทดสอบตัวเอง และพูดคุยในบริบท
เบื้องหลังเป็นไปป์ไลน์หลายเอเจนต์: เสนอโครงร่าง ดึงแหล่งอ้างอิง รวมต้นไม้บท วางแผนหน้า และคอมไพล์บล็อก คุณยังคุมได้: ตรวจโครงร่าง จัดเรียบบท แชตข้างหน้าใดก็ได้
13 ประเภทบล็อก — ข้อความ callout แบบทดสอบ แฟลชการ์ด โค้ด รูป ดำดิ่งลึก แอนิเมชัน แบบโต้ตอบ ไทม์ไลน์ กราฟแนวคิด ส่วน โน้ตผู้ใช้ — แต่ละแบบมีคอมโพเนนต์โต้ตอบ ไทม์ไลน์ความคืบหน้าแบบเรียลไทม์
คอลเลกชันเอกสาร โน้ต และบุคลิกการสอน
- Knowledge Bases — อัปโหลด PDF, TXT หรือ Markdown เพิ่มทีละไฟล์
- Notebooks — บันทึกจาก Chat, Co-Writer, Book หรือ Deep Research จัดหมวดและสี
- Question Bank — ทบทวนคำถามที่สร้างแล้ว บุ๊กมาร์กและ @ ในแชตเพื่อวิเคราะห์ผลในอดีต
- Skills — สร้างบุคลิกการสอนด้วย
SKILL.md: ชื่อ คำอธิบาย ทริกเกอร์ (ถ้ามี) และ Markdown ที่ฉีดเข้า system prompt เมื่อเปิดใช้
Knowledge base ของคุณไม่ใช่แค่ที่เก็บ — มันมีส่วนร่วมอย่างแข็งขันในทุกการสนทนา ทุกเซสชันวิจัย และทุกเส้นทางการเรียนรู้
DeepTutor มี memory แบบถาวรที่เติบโตอยู่ตลอดเวลาผ่าน 2 มิติ:
- Summary — สรุปว่าคุณเรียนอะไรไปแล้ว สำรวจประเด็นใดบ้าง และความเข้าใจพัฒนาอย่างไร
- Profile — โปรไฟล์ผู้เรียน เช่น ระดับความรู้ เป้าหมาย สไตล์การสื่อสาร และความชอบ — ปรับปรุงอัตโนมัติผ่านทุกการโต้ตอบ
Memory นี้ถูกใช้ร่วมกันข้ามทุกฟีเจอร์และทุก TutorBot ยิ่งคุณใช้ DeepTutor มากเท่าไร มันก็ยิ่งตอบได้เฉพาะตัวและมีประสิทธิภาพมากขึ้น
TutorBot ไม่ใช่ chatbot ธรรมดา แต่เป็น เอเจนต์แบบถาวร หลายอินสแตนซ์ ที่ทำงานบน nanobot โดยแต่ละ TutorBot รัน agent loop เป็นของตัวเองพร้อม workspace, memory และบุคลิกแยกจากกัน คุณสามารถสร้างติวเตอร์คณิตศาสตร์แบบโสเครติส, โค้ชการเขียนที่ใจเย็น หรือผู้ช่วยวิจัยที่เข้มงวดได้พร้อมกันหลายตัว แต่ละตัวเติบโตไปพร้อมกับคุณ
- Soul Templates — กำหนดบุคลิก โทนการสอน และปรัชญาการสอนผ่านไฟล์ Soul ที่แก้ไขได้ เลือกจาก archetype ในตัว (โสเครติส, ให้กำลังใจ, เข้มงวด) หรือออกแบบเอง — soul กำหนดทุกการตอบ
- Independent Workspace — แต่ละบอตมี directory ของตัวเองพร้อม memory, sessions, skills และ config แยกจากกัน — แยกตัวเต็มที่แต่ยังเข้าถึงชั้นความรู้ร่วมของ DeepTutor ได้
- Proactive Heartbeat — บอตไม่ใช่แค่ตอบ — มันริเริ่มเอง ระบบ Heartbeat ในตัวเปิดให้เช็กอินการเรียนซ้ำ เตือนทบทวน และจัดตารางงาน ติวเตอร์ของคุณมาหาแม้คุณไม่เริ่ม
- Full Tool Access — ทุกบอตเข้าถึงเครื่องมือครบชุดของ DeepTutor: RAG retrieval, code execution, web search, academic paper search, deep reasoning และ brainstorming
- Skill Learning — สอนบอตความสามารถใหม่โดยเพิ่มไฟล์ skill ลงใน workspace ของมัน เมื่อความต้องการของคุณเปลี่ยน ความสามารถของติวเตอร์ก็เปลี่ยนตาม
- Multi-Channel Presence — เชื่อมต่อกับ Telegram, Discord, Slack, Feishu, WeChat Work, DingTalk, Email และช่องทางอื่น ๆ ติวเตอร์ไปหาคุณไม่ว่าคุณจะอยู่ที่ไหน
- Team & Sub-Agents — สร้าง sub-agent ทำงานเบื้องหลังหรือจัด multi-agent team ภายในบอตเดียวสำหรับงานซับซ้อนและใช้เวลานาน
deeptutor bot create math-tutor --persona "Socratic math teacher who uses probing questions"
deeptutor bot create writing-coach --persona "Patient, detail-oriented writing mentor"
deeptutor bot list # ดูติวเตอร์ทั้งหมดที่กำลังทำงานDeepTutor รองรับ CLI อย่างเต็มรูปแบบ ทุก capability, knowledge base, session, memory และ TutorBot อยู่ห่างแค่คำสั่งเดียว — ไม่ต้องเปิดเบราว์เซอร์ CLI ให้บริการทั้งมนุษย์ (แสดงผลสวยงามในเทอร์มินัล) และ AI agent (ส่งออกเป็น JSON ที่มีโครงสร้าง)
มอบ SKILL.md ที่ root ของโปรเจกต์ให้ agent ที่ใช้เครื่องมือ (nanobot หรือ LLM ใดก็ตามที่มี tool access) แล้วมันจะตั้งค่าและใช้งาน DeepTutor ได้เอง
One-shot execution — เรียกใช้ capability ใดก็ได้จากเทอร์มินัล:
deeptutor run chat "Explain the Fourier transform" -t rag --kb textbook
deeptutor run deep_solve "Prove that √2 is irrational" -t reason
deeptutor run deep_question "Linear algebra" --config num_questions=5
deeptutor run deep_research "Attention mechanisms in transformers"
deeptutor run visualize "Draw the architecture of a transformer"Interactive REPL — เซสชันแชตแบบถาวรพร้อมสลับโหมดขณะใช้งาน:
deeptutor chat --capability deep_solve --kb my-kb
# ภายใน REPL: /cap, /tool, /kb, /history, /notebook, /config เพื่อสลับขณะใช้งานKnowledge base lifecycle — สร้าง ค้นหา และจัดการคลัง RAG-ready ทั้งหมดจากเทอร์มินัล:
deeptutor kb create my-kb --doc textbook.pdf # สร้างจากเอกสาร
deeptutor kb add my-kb --docs-dir ./papers/ # เพิ่มโฟลเดอร์เอกสาร
deeptutor kb search my-kb "gradient descent" # ค้นหาโดยตรง
deeptutor kb set-default my-kb # ตั้งเป็น KB เริ่มต้นDual output mode — แสดงผลสวยงามสำหรับมนุษย์, JSON สำหรับ pipeline:
deeptutor run chat "Summarize chapter 3" -f rich # แสดงผลสี สวยงาม
deeptutor run chat "Summarize chapter 3" -f json # JSON events แบบ line-delimitedSession continuity — กลับมาทำต่อจากจุดที่ค้างไว้:
deeptutor session list # แสดงรายการเซสชัน
deeptutor session open <id> # กลับมาทำต่อใน REPLตารางอ้างอิงคำสั่ง CLI ทั้งหมด
คำสั่งหลัก
| คำสั่ง | คำอธิบาย |
|---|---|
deeptutor run <capability> <message> |
เรียกใช้ capability แบบ single turn (chat, deep_solve, deep_question, deep_research, math_animator, visualize) |
deeptutor chat |
Interactive REPL พร้อมตัวเลือก --capability, --tool, --kb, --language |
deeptutor serve |
เริ่ม DeepTutor API server |
deeptutor bot
| คำสั่ง | คำอธิบาย |
|---|---|
deeptutor bot list |
แสดงรายการ TutorBot ทั้งหมด |
deeptutor bot create <id> |
สร้างและเริ่มบอตใหม่ (--name, --persona, --model) |
deeptutor bot start <id> |
เริ่มบอต |
deeptutor bot stop <id> |
หยุดบอต |
deeptutor kb
| คำสั่ง | คำอธิบาย |
|---|---|
deeptutor kb list |
แสดงรายการ knowledge base ทั้งหมด |
deeptutor kb info <name> |
แสดงรายละเอียด knowledge base |
deeptutor kb create <name> |
สร้างจากเอกสาร (--doc, --docs-dir) |
deeptutor kb add <name> |
เพิ่มเอกสารทีละไฟล์ |
deeptutor kb search <name> <query> |
ค้นหา knowledge base |
deeptutor kb set-default <name> |
ตั้งเป็น KB เริ่มต้น |
deeptutor kb delete <name> |
ลบ knowledge base (--force) |
deeptutor memory
| คำสั่ง | คำอธิบาย |
|---|---|
deeptutor memory show [file] |
ดู memory (summary, profile หรือ all) |
deeptutor memory clear [file] |
ล้าง memory (--force) |
deeptutor session
| คำสั่ง | คำอธิบาย |
|---|---|
deeptutor session list |
แสดงรายการเซสชัน (--limit) |
deeptutor session show <id> |
ดูข้อความในเซสชัน |
deeptutor session open <id> |
กลับมาทำต่อใน REPL |
deeptutor session rename <id> |
เปลี่ยนชื่อเซสชัน (--title) |
deeptutor session delete <id> |
ลบเซสชัน |
deeptutor notebook
| คำสั่ง | คำอธิบาย |
|---|---|
deeptutor notebook list |
แสดงรายการ notebook |
deeptutor notebook create <name> |
สร้าง notebook (--description) |
deeptutor notebook show <id> |
ดูบันทึกใน notebook |
deeptutor notebook add-md <id> <path> |
นำเข้า markdown เป็นบันทึก |
deeptutor notebook replace-md <id> <rec> <path> |
เปลี่ยนบันทึก markdown |
deeptutor notebook remove-record <id> <rec> |
ลบบันทึก |
deeptutor book
| คำสั่ง | คำอธิบาย |
|---|---|
deeptutor book list |
แสดงรายการหนังสือทั้งหมดใน workspace |
deeptutor book health <book_id> |
ตรวจ KB drift และสุขภาพของหนังสือ |
deeptutor book refresh-fingerprints <book_id> |
รีเฟรช fingerprint ของ KB และล้างหน้าที่ล้าสมัย |
deeptutor config / plugin / provider
| คำสั่ง | คำอธิบาย |
|---|---|
deeptutor config show |
แสดงสรุป configuration ปัจจุบัน |
deeptutor plugin list |
แสดงรายการ tools และ capabilities ที่ลงทะเบียน |
deeptutor plugin info <name> |
แสดงรายละเอียด tool หรือ capability |
deeptutor provider login <provider> |
ยืนยันตัวตนกับผู้ให้บริการ (OAuth กับ openai-codex; github-copilot ตรวจเซสชัน Copilot ที่มีอยู่) |
เปิดใช้การยืนยันตัวตน และ DeepTutor จะกลายเป็น deployment แบบ multi-tenant พร้อม workspace แยกต่อผู้ใช้ และ ทรัพยากรที่ผู้ดูแลจัดการ ผู้ที่ลงทะเบียนคนแรกจะเป็นผู้ดูแล บัญชีถัดไปสร้างโดยผู้ดูแล (แบบ invite-only) แต่ละคนได้รับประวัติแชต/หน่วยความจำ/สมุดบันทึก/ฐานความรู้ของตนเอง
เริ่มต้นด่วน (5 ขั้นตอน):
# 1. เปิดใช้การยืนยันตัวตนใน data/user/settings/*.json ที่ root ของโปรเจกต์
# Set auth.json enabled=true
# JWT secret is stored in multi-user/_system/auth/auth_secret
# 2. รีสตาร์ท web stack
python scripts/start_web.py
# 3. เปิด http://localhost:3782/register และสร้างบัญชีแรก
# การลงทะเบียนครั้งแรกเป็นครั้งเดียวที่เปิดสาธารณะ ผู้ใช้นั้น
# จะเป็นผู้ดูแล และ /register จะถูกปิดอัตโนมัติ
# 4. ในฐานะผู้ดูแล ไปที่ /admin/users → "เพิ่มผู้ใช้"
# 5. สำหรับแต่ละผู้ใช้ คลิกไอคอนสไลเดอร์ → กำหนด LLM profiles,
# knowledge bases, และ skills → บันทึกสิ่งที่ผู้ดูแลเห็น:
- หน้า Settings ครบ ที่
/settings— LLM/embedding/search, API keys, model catalog - จัดการผู้ใช้ ที่
/admin/users— สร้าง เลื่อนตำแหน่ง ลดตำแหน่ง ลบบัญชี - Grant editor — เลือก model profiles, KBs, skills สำหรับผู้ใช้ที่ไม่ใช่ผู้ดูแล; grants มีแค่ logical IDs ไม่มี API key ข้ามขอบเขต
- Audit trail — ทุกการเปลี่ยนแปลง grant บันทึกใน
multi-user/_system/audit/usage.jsonl
สิ่งที่ผู้ใช้ทั่วไปได้รับ:
- Workspace แยก ใต้
multi-user/<uid>/—chat_history.db, หน่วยความจำ, สมุดบันทึก, KB ส่วนตัว - สิทธิ์อ่านอย่างเดียว สำหรับ KBs/skills ที่ผู้ดูแลกำหนด พร้อมป้าย "กำหนดโดยผู้ดูแล"
- หน้า Settings แบบจำกัด — ธีม ภาษา และสรุป models ที่ได้รับ ไม่มี API keys
- LLM ที่กำหนด — การสนทนาผ่าน model ที่ผู้ดูแลกำหนด; ไม่มี grant จะถูกปฏิเสธตั้งแต่ต้น
โครงสร้าง workspace:
multi-user/
├── _system/
│ ├── auth/users.json
│ ├── auth/auth_secret
│ ├── grants/<uid>.json
│ └── audit/usage.jsonl
└── <uid>/
├── user/
│ ├── chat_history.db
│ ├── settings/interface.json
│ └── workspace/{chat,co-writer,book,...}
├── memory/{SUMMARY.md,PROFILE.md}
└── knowledge_bases/...
Configuration reference:
Runtime settings live in data/user/settings/*.json. For headless single-user bootstrap, set username and password_hash in auth.json; for multi-user registration, leave those blank and use the identity store.
⚠️ PocketBase mode (integrations.pocketbase_urlตั้งค่า) ใช้ได้กับผู้ใช้คนเดียวเท่านั้น — ไม่มีฟิลด์role, ไม่มีการกรองตามuser_idMulti-user: ปล่อยintegrations.pocketbase_urlว่างไว้
⚠️ แนะนำ single process การเลื่อนตำแหน่งผู้ดูแลคนแรกป้องกันด้วยthreading.Lockหลาย workers: สร้างผู้ดูแลคนแรกแบบออฟไลน์
| สถานะ | หมุดหมาย |
|---|---|
| 🎯 | Authentication & Login — รองรับหน้าเข้าสู่ระบบแบบเลือกใช้สำหรับการ deploy สาธารณะและผู้ใช้หลายคน |
| 🎯 | Themes & Appearance — ธีมและการปรับแต่งหน้าตา UI ที่หลากหลายขึ้น |
| 🎯 | Interaction Improvement — ปรับปรุง icon และรายละเอียดการโต้ตอบ |
| 🔜 | Better Memories — ยกระดับระบบจัดการ memory |
| 🔜 | LightRAG Integration — รวม LightRAG เป็น knowledge base engine ขั้นสูง |
| 🔜 | Documentation Site — เว็บไซต์เอกสารที่ครบถ้วนขึ้น ทั้งคู่มือ, API reference และ tutorial |
หาก DeepTutor มีประโยชน์สำหรับคุณ ฝากกดดาว — มันช่วยให้เราพัฒนาต่อไปได้!
DeepTutor สร้างขึ้นบนโครงการโอเพนซอร์สคุณภาพหลายตัว:
| โครงการ | บทบาทใน DeepTutor |
|---|---|
| nanobot | เอนจินเอเจนต์น้ำหนักเบาที่ขับเคลื่อน TutorBot |
| LlamaIndex | แกนหลักสำหรับ RAG pipeline และการทำดัชนีเอกสาร |
| ManimCat | ระบบสร้างแอนิเมชันคณิตศาสตร์สำหรับ Math Animator |
จาก ecosystem ของ HKUDS:
| ⚡ LightRAG | 🤖 AutoAgent | 🔬 AI-Researcher | 🧬 nanobot |
|---|---|---|---|
| Simple & Fast RAG | Zero-Code Agent Framework | Automated Research | Ultra-Lightweight AI Agent |
อ่าน CONTRIBUTING.md สำหรับคำแนะนำเกี่ยวกับการตั้งค่าสภาพแวดล้อมสำหรับนักพัฒนา มาตรฐานโค้ด และขั้นตอนการส่ง pull request











