realtimex-deeptutor 0.5.0.post1__tar.gz → 0.5.0.post3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/PKG-INFO +24 -17
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/README.md +22 -16
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/pyproject.toml +12 -4
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/realtimex_deeptutor.egg-info/PKG-INFO +24 -17
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/realtimex_deeptutor.egg-info/SOURCES.txt +21 -1
- realtimex_deeptutor-0.5.0.post3/realtimex_deeptutor.egg-info/entry_points.txt +4 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/realtimex_deeptutor.egg-info/requires.txt +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/realtimex_deeptutor.egg-info/top_level.txt +1 -0
- realtimex_deeptutor-0.5.0.post3/scripts/__init__.py +1 -0
- realtimex_deeptutor-0.5.0.post3/scripts/audit_prompts.py +179 -0
- realtimex_deeptutor-0.5.0.post3/scripts/check_install.py +460 -0
- realtimex_deeptutor-0.5.0.post3/scripts/generate_roster.py +327 -0
- realtimex_deeptutor-0.5.0.post3/scripts/install_all.py +653 -0
- realtimex_deeptutor-0.5.0.post3/scripts/migrate_kb.py +655 -0
- realtimex_deeptutor-0.5.0.post3/scripts/start.py +807 -0
- realtimex_deeptutor-0.5.0.post3/scripts/start_web.py +632 -0
- realtimex_deeptutor-0.5.0.post3/scripts/sync_prompts_from_en.py +147 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/__init__.py +2 -2
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/ideagen/material_organizer_agent.py +2 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/__init__.py +6 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/main_solver.py +9 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/zh/analysis_loop/investigate_agent.yaml +9 -7
- realtimex_deeptutor-0.5.0.post3/src/agents/solve/session_manager.py +345 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/main.py +14 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/chat.py +3 -3
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/co_writer.py +12 -7
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/config.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/guide.py +3 -1
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/ideagen.py +7 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/knowledge.py +64 -12
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/question.py +2 -0
- realtimex_deeptutor-0.5.0.post3/src/api/routers/realtimex.py +137 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/research.py +9 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/solve.py +120 -2
- realtimex_deeptutor-0.5.0.post3/src/cli/__init__.py +13 -0
- realtimex_deeptutor-0.5.0.post3/src/cli/start.py +209 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/config/constants.py +11 -9
- realtimex_deeptutor-0.5.0.post3/src/knowledge/add_documents.py +846 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/extract_numbered_items.py +9 -10
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/initializer.py +102 -101
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/manager.py +251 -74
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/progress_tracker.py +43 -2
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/start_kb.py +11 -2
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/__init__.py +5 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/adapters/__init__.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/adapters/lightrag.py +25 -18
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/adapters/llamaindex.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/config.py +30 -27
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/handlers/__init__.py +1 -0
- realtimex_deeptutor-0.5.0.post3/src/logging/handlers/console.py +32 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/handlers/file.py +5 -20
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/handlers/websocket.py +23 -19
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/logger.py +161 -126
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/stats/__init__.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/stats/llm_stats.py +37 -17
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/__init__.py +17 -1
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/config/__init__.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/config/knowledge_base_config.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/config/loader.py +1 -1
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/config/unified_config.py +211 -4
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/__init__.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/adapters/__init__.py +3 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/adapters/base.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/adapters/cohere.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/adapters/jina.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/adapters/ollama.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/adapters/openai_compatible.py +1 -0
- realtimex_deeptutor-0.5.0.post3/src/services/embedding/adapters/realtimex.py +125 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/client.py +27 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/config.py +3 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/provider.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/__init__.py +17 -3
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/capabilities.py +47 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/client.py +32 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/cloud_provider.py +21 -4
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/config.py +36 -2
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/error_mapping.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/exceptions.py +30 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/factory.py +55 -16
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/local_provider.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/providers/anthropic.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/providers/base_provider.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/providers/open_ai.py +1 -0
- realtimex_deeptutor-0.5.0.post3/src/services/llm/realtimex_provider.py +240 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/registry.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/telemetry.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/types.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/utils.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/prompt/__init__.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/prompt/manager.py +3 -2
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/__init__.py +27 -5
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/__init__.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/base.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/chunkers/__init__.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/chunkers/base.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/chunkers/fixed.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/chunkers/numbered_item.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/chunkers/semantic.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/embedders/__init__.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/embedders/base.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/embedders/openai.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/indexers/__init__.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/indexers/base.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/indexers/graph.py +5 -44
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/indexers/lightrag.py +5 -44
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/indexers/vector.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/parsers/__init__.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/parsers/base.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/parsers/markdown.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/parsers/pdf.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/parsers/text.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/retrievers/__init__.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/retrievers/base.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/retrievers/dense.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/retrievers/hybrid.py +5 -44
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/retrievers/lightrag.py +5 -44
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/routing.py +48 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/factory.py +112 -46
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/pipeline.py +1 -0
- realtimex_deeptutor-0.5.0.post3/src/services/rag/pipelines/__init__.py +41 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/pipelines/lightrag.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/pipelines/llamaindex.py +99 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/pipelines/raganything.py +67 -100
- realtimex_deeptutor-0.5.0.post3/src/services/rag/pipelines/raganything_docling.py +368 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/service.py +5 -12
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/types.py +1 -0
- realtimex_deeptutor-0.5.0.post3/src/services/rag/utils/__init__.py +17 -0
- realtimex_deeptutor-0.5.0.post3/src/services/rag/utils/image_migration.py +279 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/__init__.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/base.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/consolidation.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/providers/__init__.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/providers/baidu.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/providers/exa.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/providers/jina.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/providers/perplexity.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/providers/serper.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/providers/tavily.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/types.py +1 -0
- realtimex_deeptutor-0.5.0.post3/src/services/settings/__init__.py +1 -0
- realtimex_deeptutor-0.5.0.post3/src/services/settings/interface_settings.py +78 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/setup/__init__.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/tts/__init__.py +1 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/tts/config.py +1 -0
- realtimex_deeptutor-0.5.0.post3/src/utils/realtimex.py +284 -0
- realtimex_deeptutor-0.5.0.post1/realtimex_deeptutor.egg-info/entry_points.txt +0 -2
- realtimex_deeptutor-0.5.0.post1/src/knowledge/add_documents.py +0 -606
- realtimex_deeptutor-0.5.0.post1/src/logging/handlers/console.py +0 -75
- realtimex_deeptutor-0.5.0.post1/src/services/rag/pipelines/__init__.py +0 -32
- realtimex_deeptutor-0.5.0.post1/src/services/rag/pipelines/academic.py +0 -44
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/LICENSE +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/realtimex_deeptutor/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/realtimex_deeptutor.egg-info/dependency_links.txt +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/setup.cfg +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/base_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/chat/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/chat/chat_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/chat/prompts/en/chat_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/chat/prompts/zh/chat_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/chat/session_manager.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/co_writer/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/co_writer/edit_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/co_writer/narrator_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/co_writer/prompts/en/edit_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/co_writer/prompts/en/narrator_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/co_writer/prompts/zh/edit_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/co_writer/prompts/zh/narrator_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/agents/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/agents/chat_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/agents/interactive_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/agents/locate_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/agents/summary_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/guide_manager.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/prompts/en/chat_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/prompts/en/interactive_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/prompts/en/locate_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/prompts/en/summary_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/prompts/zh/chat_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/prompts/zh/interactive_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/prompts/zh/locate_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/prompts/zh/summary_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/ideagen/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/ideagen/idea_generation_workflow.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/ideagen/prompts/en/idea_generation.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/ideagen/prompts/en/material_organizer.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/ideagen/prompts/zh/idea_generation.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/ideagen/prompts/zh/material_organizer.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/agents/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/agents/generate_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/agents/relevance_analyzer.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/agents/retrieve_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/coordinator.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/example.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/prompts/en/coordinator.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/prompts/en/generate_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/prompts/en/relevance_analyzer.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/prompts/en/retrieve_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/prompts/zh/coordinator.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/prompts/zh/generate_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/prompts/zh/relevance_analyzer.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/prompts/zh/retrieve_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/agents/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/agents/decompose_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/agents/manager_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/agents/note_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/agents/rephrase_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/agents/reporting_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/agents/research_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/data_structures.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/main.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/en/decompose_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/en/manager_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/en/note_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/en/rephrase_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/en/reporting_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/en/research_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/zh/decompose_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/zh/manager_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/zh/note_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/zh/rephrase_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/zh/reporting_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/zh/research_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/research_pipeline.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/utils/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/utils/citation_manager.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/utils/json_utils.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/utils/token_tracker.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/analysis_loop/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/analysis_loop/investigate_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/analysis_loop/note_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/memory/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/memory/citation_memory.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/memory/investigate_memory.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/memory/solve_memory.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/en/analysis_loop/investigate_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/en/analysis_loop/note_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/en/solve_loop/manager_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/en/solve_loop/precision_answer_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/en/solve_loop/response_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/en/solve_loop/solve_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/en/solve_loop/tool_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/zh/analysis_loop/note_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/zh/solve_loop/manager_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/zh/solve_loop/precision_answer_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/zh/solve_loop/response_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/zh/solve_loop/solve_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/zh/solve_loop/tool_agent.yaml +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/solve_loop/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/solve_loop/citation_manager.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/solve_loop/manager_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/solve_loop/precision_answer_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/solve_loop/response_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/solve_loop/solve_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/solve_loop/tool_agent.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/utils/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/utils/config_validator.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/utils/display_manager.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/utils/error_handler.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/utils/json_utils.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/utils/performance_monitor.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/utils/token_tracker.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/agent_config.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/dashboard.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/notebook.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/settings.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/system.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/run_server.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/utils/history.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/utils/log_interceptor.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/utils/notebook_manager.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/utils/progress_broadcaster.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/utils/task_id_manager.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/config/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/config/accessors.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/config/defaults.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/config/schema.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/config/settings.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/core/errors.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/config.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/example_add_documents.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/kb.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/setup/init.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/code_executor.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/paper_search_tool.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/query_item_tool.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/question/__init__.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/question/exam_mimic.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/question/pdf_parser.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/question/question_extractor.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/rag_tool.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/tex_chunker.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/tex_downloader.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/web_search.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/utils/config_manager.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/utils/document_validator.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/utils/error_rate_tracker.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/utils/error_utils.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/utils/json_parser.py +0 -0
- {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/utils/network/circuit_breaker.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: realtimex-deeptutor
|
|
3
|
-
Version: 0.5.0.
|
|
3
|
+
Version: 0.5.0.post3
|
|
4
4
|
Summary: RealTimeX DeepTutor - Intelligent learning companion with multi-agent collaboration and LightRAG
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Requires-Python: >=3.10
|
|
@@ -26,6 +26,7 @@ Requires-Dist: lightrag-hku>=1.0.0
|
|
|
26
26
|
Requires-Dist: PyMuPDF>=1.26.0
|
|
27
27
|
Requires-Dist: numpy<2.0.0,>=1.24.0
|
|
28
28
|
Requires-Dist: arxiv>=2.0.0
|
|
29
|
+
Requires-Dist: realtimex-sdk>=1.1.2
|
|
29
30
|
Provides-Extra: anthropic
|
|
30
31
|
Requires-Dist: anthropic>=0.30.0; extra == "anthropic"
|
|
31
32
|
Provides-Extra: dashscope
|
|
@@ -90,8 +91,6 @@ Dynamic: license-file
|
|
|
90
91
|
---
|
|
91
92
|
### 📰 News
|
|
92
93
|
|
|
93
|
-
> **[2026.1.15]** DeepTutor [v0.5.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.0) is out! Fixed multiple environment configuration and stability issues. We recommend everyone to pull the latest version! 🎉
|
|
94
|
-
|
|
95
94
|
> **[2026.1.1]** Happy New Year! Join our [Discord Community](https://discord.gg/zpP9cssj), [Wechat Community](https://github.com/HKUDS/DeepTutor/issues/78), or [Discussions](https://github.com/HKUDS/DeepTutor/discussions) - shape the future of DeepTutor! 💬
|
|
96
95
|
|
|
97
96
|
> **[2025.12.30]** Visit our [Official Website](https://hkuds.github.io/DeepTutor/) for more details!
|
|
@@ -100,10 +99,16 @@ Dynamic: license-file
|
|
|
100
99
|
|
|
101
100
|
### 📦 Releases
|
|
102
101
|
|
|
103
|
-
> **[2026.1.
|
|
102
|
+
> **[2026.1.23]** Release [v0.6.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.6.0) - Frontend session persistence, full Chinese support, Docker deployment updates, and minor bug fixes -- Thanks for all the feedback!
|
|
103
|
+
|
|
104
104
|
<details>
|
|
105
105
|
<summary>History releases</summary>
|
|
106
106
|
|
|
107
|
+
> **[2026.1.18]** Release [v0.5.2](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.1) - Enhance RAG pipeline with Docling support and improve CI/CD workflows with several minor bugs fixed -- Thanks to all the feedbacks!
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
> **[2026.1.15]** Release [v0.5.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.0) - Unified LLM & Embedding services, RAG pipeline selection, and major enhancements to Home, History, QuestionGen & Settings modules -- Thanks to all the contributors!
|
|
111
|
+
|
|
107
112
|
> **[2026.1.9]** Release [v0.4.1](https://github.com/HKUDS/DeepTutor/releases/tag/v0.4.1) with LLM Provider system overhaul, Question Generation robustness improvements, and codebase cleanup - Thanks to all the contributors!
|
|
108
113
|
|
|
109
114
|
> **[2026.1.9]** Release [v0.4.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.4.0) with new code structure, multiple llm & embeddings support - Thanks to all the contributors!
|
|
@@ -390,14 +395,14 @@ cp .env.example .env
|
|
|
390
395
|
**Quick Start** — Build from source:
|
|
391
396
|
|
|
392
397
|
```bash
|
|
393
|
-
docker compose up
|
|
394
|
-
docker compose
|
|
398
|
+
docker compose up # Build and start (~11 min first run on mac mini M4)
|
|
399
|
+
docker compose build --no-cache # Clear cache and rebuild after pull the newest repo
|
|
395
400
|
```
|
|
396
401
|
|
|
397
402
|
**Or use pre-built image** (faster):
|
|
398
403
|
|
|
399
404
|
```bash
|
|
400
|
-
#
|
|
405
|
+
# Works on all platforms - Docker auto-detects your architecture
|
|
401
406
|
docker run -d --name deeptutor \
|
|
402
407
|
-p 8001:8001 -p 3782:3782 \
|
|
403
408
|
--env-file .env \
|
|
@@ -405,7 +410,6 @@ docker run -d --name deeptutor \
|
|
|
405
410
|
-v $(pwd)/config:/app/config:ro \
|
|
406
411
|
ghcr.io/hkuds/deeptutor:latest
|
|
407
412
|
|
|
408
|
-
# Apple Silicon (ARM64): use ghcr.io/hkuds/deeptutor:latest-arm64
|
|
409
413
|
# Windows PowerShell: use ${PWD} instead of $(pwd)
|
|
410
414
|
```
|
|
411
415
|
|
|
@@ -421,14 +425,16 @@ docker compose up --build # Rebuild after changes
|
|
|
421
425
|
<details>
|
|
422
426
|
<summary>📋 <b>More Docker Options</b> (Pre-built images, Cloud deployment, Custom ports)</summary>
|
|
423
427
|
|
|
424
|
-
**Pre-built Image
|
|
428
|
+
**Pre-built Image Tags:**
|
|
425
429
|
|
|
426
|
-
|
|
|
427
|
-
|
|
428
|
-
|
|
|
429
|
-
|
|
|
430
|
+
| Tag | Architectures | Description |
|
|
431
|
+
|:----|:--------------|:------------|
|
|
432
|
+
| `:latest` | AMD64 + ARM64 | Latest stable release (auto-detects your architecture) |
|
|
433
|
+
| `:v0.5.x` | AMD64 + ARM64 | Specific version (auto-detects your architecture) |
|
|
434
|
+
| `:v0.5.x-amd64` | AMD64 only | Explicit AMD64 image |
|
|
435
|
+
| `:v0.5.x-arm64` | ARM64 only | Explicit ARM64 image |
|
|
430
436
|
|
|
431
|
-
> 💡
|
|
437
|
+
> 💡 The `:latest` tag is a **multi-architecture image** — Docker automatically pulls the correct version for your system (Intel/AMD or Apple Silicon/ARM)
|
|
432
438
|
|
|
433
439
|
**Cloud Deployment** — Must set external API URL:
|
|
434
440
|
|
|
@@ -1605,8 +1611,9 @@ We hope DeepTutor could become a gift for the community. 🎁
|
|
|
1605
1611
|
|
|
1606
1612
|
This project is licensed under the ***[AGPL-3.0 License](LICENSE)***.
|
|
1607
1613
|
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
<img src="https://visitor-badge.laobi.icu/badge?page_id=HKUDS.DeepTutor&style=for-the-badge&color=00d4ff" alt="Views">
|
|
1614
|
+
<p align="center">
|
|
1615
|
+
<em> Thanks for visiting ✨ DeepTutor!</em><br><br>
|
|
1616
|
+
<img src="https://visitor-badge.laobi.icu/badge?page_id=HKUDS.DeepTutor&style=for-the-badge&color=00d4ff" alt="Views">
|
|
1617
|
+
</p>
|
|
1611
1618
|
|
|
1612
1619
|
</div>
|
|
@@ -37,8 +37,6 @@
|
|
|
37
37
|
---
|
|
38
38
|
### 📰 News
|
|
39
39
|
|
|
40
|
-
> **[2026.1.15]** DeepTutor [v0.5.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.0) is out! Fixed multiple environment configuration and stability issues. We recommend everyone to pull the latest version! 🎉
|
|
41
|
-
|
|
42
40
|
> **[2026.1.1]** Happy New Year! Join our [Discord Community](https://discord.gg/zpP9cssj), [Wechat Community](https://github.com/HKUDS/DeepTutor/issues/78), or [Discussions](https://github.com/HKUDS/DeepTutor/discussions) - shape the future of DeepTutor! 💬
|
|
43
41
|
|
|
44
42
|
> **[2025.12.30]** Visit our [Official Website](https://hkuds.github.io/DeepTutor/) for more details!
|
|
@@ -47,10 +45,16 @@
|
|
|
47
45
|
|
|
48
46
|
### 📦 Releases
|
|
49
47
|
|
|
50
|
-
> **[2026.1.
|
|
48
|
+
> **[2026.1.23]** Release [v0.6.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.6.0) - Frontend session persistence, full Chinese support, Docker deployment updates, and minor bug fixes -- Thanks for all the feedback!
|
|
49
|
+
|
|
51
50
|
<details>
|
|
52
51
|
<summary>History releases</summary>
|
|
53
52
|
|
|
53
|
+
> **[2026.1.18]** Release [v0.5.2](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.1) - Enhance RAG pipeline with Docling support and improve CI/CD workflows with several minor bugs fixed -- Thanks to all the feedbacks!
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
> **[2026.1.15]** Release [v0.5.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.0) - Unified LLM & Embedding services, RAG pipeline selection, and major enhancements to Home, History, QuestionGen & Settings modules -- Thanks to all the contributors!
|
|
57
|
+
|
|
54
58
|
> **[2026.1.9]** Release [v0.4.1](https://github.com/HKUDS/DeepTutor/releases/tag/v0.4.1) with LLM Provider system overhaul, Question Generation robustness improvements, and codebase cleanup - Thanks to all the contributors!
|
|
55
59
|
|
|
56
60
|
> **[2026.1.9]** Release [v0.4.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.4.0) with new code structure, multiple llm & embeddings support - Thanks to all the contributors!
|
|
@@ -337,14 +341,14 @@ cp .env.example .env
|
|
|
337
341
|
**Quick Start** — Build from source:
|
|
338
342
|
|
|
339
343
|
```bash
|
|
340
|
-
docker compose up
|
|
341
|
-
docker compose
|
|
344
|
+
docker compose up # Build and start (~11 min first run on mac mini M4)
|
|
345
|
+
docker compose build --no-cache # Clear cache and rebuild after pull the newest repo
|
|
342
346
|
```
|
|
343
347
|
|
|
344
348
|
**Or use pre-built image** (faster):
|
|
345
349
|
|
|
346
350
|
```bash
|
|
347
|
-
#
|
|
351
|
+
# Works on all platforms - Docker auto-detects your architecture
|
|
348
352
|
docker run -d --name deeptutor \
|
|
349
353
|
-p 8001:8001 -p 3782:3782 \
|
|
350
354
|
--env-file .env \
|
|
@@ -352,7 +356,6 @@ docker run -d --name deeptutor \
|
|
|
352
356
|
-v $(pwd)/config:/app/config:ro \
|
|
353
357
|
ghcr.io/hkuds/deeptutor:latest
|
|
354
358
|
|
|
355
|
-
# Apple Silicon (ARM64): use ghcr.io/hkuds/deeptutor:latest-arm64
|
|
356
359
|
# Windows PowerShell: use ${PWD} instead of $(pwd)
|
|
357
360
|
```
|
|
358
361
|
|
|
@@ -368,14 +371,16 @@ docker compose up --build # Rebuild after changes
|
|
|
368
371
|
<details>
|
|
369
372
|
<summary>📋 <b>More Docker Options</b> (Pre-built images, Cloud deployment, Custom ports)</summary>
|
|
370
373
|
|
|
371
|
-
**Pre-built Image
|
|
374
|
+
**Pre-built Image Tags:**
|
|
372
375
|
|
|
373
|
-
|
|
|
374
|
-
|
|
375
|
-
|
|
|
376
|
-
|
|
|
376
|
+
| Tag | Architectures | Description |
|
|
377
|
+
|:----|:--------------|:------------|
|
|
378
|
+
| `:latest` | AMD64 + ARM64 | Latest stable release (auto-detects your architecture) |
|
|
379
|
+
| `:v0.5.x` | AMD64 + ARM64 | Specific version (auto-detects your architecture) |
|
|
380
|
+
| `:v0.5.x-amd64` | AMD64 only | Explicit AMD64 image |
|
|
381
|
+
| `:v0.5.x-arm64` | ARM64 only | Explicit ARM64 image |
|
|
377
382
|
|
|
378
|
-
> 💡
|
|
383
|
+
> 💡 The `:latest` tag is a **multi-architecture image** — Docker automatically pulls the correct version for your system (Intel/AMD or Apple Silicon/ARM)
|
|
379
384
|
|
|
380
385
|
**Cloud Deployment** — Must set external API URL:
|
|
381
386
|
|
|
@@ -1552,8 +1557,9 @@ We hope DeepTutor could become a gift for the community. 🎁
|
|
|
1552
1557
|
|
|
1553
1558
|
This project is licensed under the ***[AGPL-3.0 License](LICENSE)***.
|
|
1554
1559
|
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
<img src="https://visitor-badge.laobi.icu/badge?page_id=HKUDS.DeepTutor&style=for-the-badge&color=00d4ff" alt="Views">
|
|
1560
|
+
<p align="center">
|
|
1561
|
+
<em> Thanks for visiting ✨ DeepTutor!</em><br><br>
|
|
1562
|
+
<img src="https://visitor-badge.laobi.icu/badge?page_id=HKUDS.DeepTutor&style=for-the-badge&color=00d4ff" alt="Views">
|
|
1563
|
+
</p>
|
|
1558
1564
|
|
|
1559
1565
|
</div>
|
|
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
|
|
|
7
7
|
|
|
8
8
|
[project]
|
|
9
9
|
name = "realtimex-deeptutor"
|
|
10
|
-
version = "0.5.0.
|
|
10
|
+
version = "0.5.0.post3"
|
|
11
11
|
description = "RealTimeX DeepTutor - Intelligent learning companion with multi-agent collaboration and LightRAG"
|
|
12
12
|
requires-python = ">=3.10"
|
|
13
13
|
readme = "README.md"
|
|
@@ -43,6 +43,8 @@ dependencies = [
|
|
|
43
43
|
"numpy>=1.24.0,<2.0.0",
|
|
44
44
|
# Academic and research tools
|
|
45
45
|
"arxiv>=2.0.0",
|
|
46
|
+
# RealTimeX SDK
|
|
47
|
+
"realtimex-sdk>=1.1.2",
|
|
46
48
|
]
|
|
47
49
|
|
|
48
50
|
# Optional dependencies for different providers and features
|
|
@@ -79,11 +81,16 @@ dev = [
|
|
|
79
81
|
]
|
|
80
82
|
|
|
81
83
|
[project.scripts]
|
|
82
|
-
|
|
84
|
+
# Main entry point for full-stack startup (uvx realtimex-deeptutor)
|
|
85
|
+
realtimex-deeptutor = "src.cli.start:main"
|
|
86
|
+
deeptutor = "src.cli.start:main" # Shorter alias
|
|
87
|
+
|
|
88
|
+
# Backend-only mode (existing, for advanced users)
|
|
89
|
+
deeptutor-backend = "src.api.run_server:main"
|
|
83
90
|
|
|
84
91
|
[tool.setuptools.packages.find]
|
|
85
92
|
where = ["."]
|
|
86
|
-
include = ["src*", "realtimex_deeptutor*"]
|
|
93
|
+
include = ["src*", "realtimex_deeptutor*", "scripts*"]
|
|
87
94
|
|
|
88
95
|
[tool.setuptools.package-data]
|
|
89
96
|
# Include non-Python files in the package distribution
|
|
@@ -231,7 +238,8 @@ split-on-trailing-comma = true
|
|
|
231
238
|
# ============================================
|
|
232
239
|
[tool.ruff.lint.per-file-ignores]
|
|
233
240
|
# Allow longer lines in test files
|
|
234
|
-
|
|
241
|
+
# F401: Allow unused imports for availability checks in tests
|
|
242
|
+
"**/test_*.py" = ["E501", "PLR2004", "F401"]
|
|
235
243
|
"**/__init__.py" = ["F401"] # Allow unused imports in __init__.py
|
|
236
244
|
|
|
237
245
|
# ============================================
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: realtimex-deeptutor
|
|
3
|
-
Version: 0.5.0.
|
|
3
|
+
Version: 0.5.0.post3
|
|
4
4
|
Summary: RealTimeX DeepTutor - Intelligent learning companion with multi-agent collaboration and LightRAG
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Requires-Python: >=3.10
|
|
@@ -26,6 +26,7 @@ Requires-Dist: lightrag-hku>=1.0.0
|
|
|
26
26
|
Requires-Dist: PyMuPDF>=1.26.0
|
|
27
27
|
Requires-Dist: numpy<2.0.0,>=1.24.0
|
|
28
28
|
Requires-Dist: arxiv>=2.0.0
|
|
29
|
+
Requires-Dist: realtimex-sdk>=1.1.2
|
|
29
30
|
Provides-Extra: anthropic
|
|
30
31
|
Requires-Dist: anthropic>=0.30.0; extra == "anthropic"
|
|
31
32
|
Provides-Extra: dashscope
|
|
@@ -90,8 +91,6 @@ Dynamic: license-file
|
|
|
90
91
|
---
|
|
91
92
|
### 📰 News
|
|
92
93
|
|
|
93
|
-
> **[2026.1.15]** DeepTutor [v0.5.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.0) is out! Fixed multiple environment configuration and stability issues. We recommend everyone to pull the latest version! 🎉
|
|
94
|
-
|
|
95
94
|
> **[2026.1.1]** Happy New Year! Join our [Discord Community](https://discord.gg/zpP9cssj), [Wechat Community](https://github.com/HKUDS/DeepTutor/issues/78), or [Discussions](https://github.com/HKUDS/DeepTutor/discussions) - shape the future of DeepTutor! 💬
|
|
96
95
|
|
|
97
96
|
> **[2025.12.30]** Visit our [Official Website](https://hkuds.github.io/DeepTutor/) for more details!
|
|
@@ -100,10 +99,16 @@ Dynamic: license-file
|
|
|
100
99
|
|
|
101
100
|
### 📦 Releases
|
|
102
101
|
|
|
103
|
-
> **[2026.1.
|
|
102
|
+
> **[2026.1.23]** Release [v0.6.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.6.0) - Frontend session persistence, full Chinese support, Docker deployment updates, and minor bug fixes -- Thanks for all the feedback!
|
|
103
|
+
|
|
104
104
|
<details>
|
|
105
105
|
<summary>History releases</summary>
|
|
106
106
|
|
|
107
|
+
> **[2026.1.18]** Release [v0.5.2](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.1) - Enhance RAG pipeline with Docling support and improve CI/CD workflows with several minor bugs fixed -- Thanks to all the feedbacks!
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
> **[2026.1.15]** Release [v0.5.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.0) - Unified LLM & Embedding services, RAG pipeline selection, and major enhancements to Home, History, QuestionGen & Settings modules -- Thanks to all the contributors!
|
|
111
|
+
|
|
107
112
|
> **[2026.1.9]** Release [v0.4.1](https://github.com/HKUDS/DeepTutor/releases/tag/v0.4.1) with LLM Provider system overhaul, Question Generation robustness improvements, and codebase cleanup - Thanks to all the contributors!
|
|
108
113
|
|
|
109
114
|
> **[2026.1.9]** Release [v0.4.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.4.0) with new code structure, multiple llm & embeddings support - Thanks to all the contributors!
|
|
@@ -390,14 +395,14 @@ cp .env.example .env
|
|
|
390
395
|
**Quick Start** — Build from source:
|
|
391
396
|
|
|
392
397
|
```bash
|
|
393
|
-
docker compose up
|
|
394
|
-
docker compose
|
|
398
|
+
docker compose up # Build and start (~11 min first run on mac mini M4)
|
|
399
|
+
docker compose build --no-cache # Clear cache and rebuild after pull the newest repo
|
|
395
400
|
```
|
|
396
401
|
|
|
397
402
|
**Or use pre-built image** (faster):
|
|
398
403
|
|
|
399
404
|
```bash
|
|
400
|
-
#
|
|
405
|
+
# Works on all platforms - Docker auto-detects your architecture
|
|
401
406
|
docker run -d --name deeptutor \
|
|
402
407
|
-p 8001:8001 -p 3782:3782 \
|
|
403
408
|
--env-file .env \
|
|
@@ -405,7 +410,6 @@ docker run -d --name deeptutor \
|
|
|
405
410
|
-v $(pwd)/config:/app/config:ro \
|
|
406
411
|
ghcr.io/hkuds/deeptutor:latest
|
|
407
412
|
|
|
408
|
-
# Apple Silicon (ARM64): use ghcr.io/hkuds/deeptutor:latest-arm64
|
|
409
413
|
# Windows PowerShell: use ${PWD} instead of $(pwd)
|
|
410
414
|
```
|
|
411
415
|
|
|
@@ -421,14 +425,16 @@ docker compose up --build # Rebuild after changes
|
|
|
421
425
|
<details>
|
|
422
426
|
<summary>📋 <b>More Docker Options</b> (Pre-built images, Cloud deployment, Custom ports)</summary>
|
|
423
427
|
|
|
424
|
-
**Pre-built Image
|
|
428
|
+
**Pre-built Image Tags:**
|
|
425
429
|
|
|
426
|
-
|
|
|
427
|
-
|
|
428
|
-
|
|
|
429
|
-
|
|
|
430
|
+
| Tag | Architectures | Description |
|
|
431
|
+
|:----|:--------------|:------------|
|
|
432
|
+
| `:latest` | AMD64 + ARM64 | Latest stable release (auto-detects your architecture) |
|
|
433
|
+
| `:v0.5.x` | AMD64 + ARM64 | Specific version (auto-detects your architecture) |
|
|
434
|
+
| `:v0.5.x-amd64` | AMD64 only | Explicit AMD64 image |
|
|
435
|
+
| `:v0.5.x-arm64` | ARM64 only | Explicit ARM64 image |
|
|
430
436
|
|
|
431
|
-
> 💡
|
|
437
|
+
> 💡 The `:latest` tag is a **multi-architecture image** — Docker automatically pulls the correct version for your system (Intel/AMD or Apple Silicon/ARM)
|
|
432
438
|
|
|
433
439
|
**Cloud Deployment** — Must set external API URL:
|
|
434
440
|
|
|
@@ -1605,8 +1611,9 @@ We hope DeepTutor could become a gift for the community. 🎁
|
|
|
1605
1611
|
|
|
1606
1612
|
This project is licensed under the ***[AGPL-3.0 License](LICENSE)***.
|
|
1607
1613
|
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
<img src="https://visitor-badge.laobi.icu/badge?page_id=HKUDS.DeepTutor&style=for-the-badge&color=00d4ff" alt="Views">
|
|
1614
|
+
<p align="center">
|
|
1615
|
+
<em> Thanks for visiting ✨ DeepTutor!</em><br><br>
|
|
1616
|
+
<img src="https://visitor-badge.laobi.icu/badge?page_id=HKUDS.DeepTutor&style=for-the-badge&color=00d4ff" alt="Views">
|
|
1617
|
+
</p>
|
|
1611
1618
|
|
|
1612
1619
|
</div>
|
|
@@ -8,6 +8,15 @@ realtimex_deeptutor.egg-info/dependency_links.txt
|
|
|
8
8
|
realtimex_deeptutor.egg-info/entry_points.txt
|
|
9
9
|
realtimex_deeptutor.egg-info/requires.txt
|
|
10
10
|
realtimex_deeptutor.egg-info/top_level.txt
|
|
11
|
+
scripts/__init__.py
|
|
12
|
+
scripts/audit_prompts.py
|
|
13
|
+
scripts/check_install.py
|
|
14
|
+
scripts/generate_roster.py
|
|
15
|
+
scripts/install_all.py
|
|
16
|
+
scripts/migrate_kb.py
|
|
17
|
+
scripts/start.py
|
|
18
|
+
scripts/start_web.py
|
|
19
|
+
scripts/sync_prompts_from_en.py
|
|
11
20
|
src/__init__.py
|
|
12
21
|
src/agents/__init__.py
|
|
13
22
|
src/agents/base_agent.py
|
|
@@ -88,6 +97,7 @@ src/agents/research/utils/json_utils.py
|
|
|
88
97
|
src/agents/research/utils/token_tracker.py
|
|
89
98
|
src/agents/solve/__init__.py
|
|
90
99
|
src/agents/solve/main_solver.py
|
|
100
|
+
src/agents/solve/session_manager.py
|
|
91
101
|
src/agents/solve/analysis_loop/__init__.py
|
|
92
102
|
src/agents/solve/analysis_loop/investigate_agent.py
|
|
93
103
|
src/agents/solve/analysis_loop/note_agent.py
|
|
@@ -137,6 +147,7 @@ src/api/routers/ideagen.py
|
|
|
137
147
|
src/api/routers/knowledge.py
|
|
138
148
|
src/api/routers/notebook.py
|
|
139
149
|
src/api/routers/question.py
|
|
150
|
+
src/api/routers/realtimex.py
|
|
140
151
|
src/api/routers/research.py
|
|
141
152
|
src/api/routers/settings.py
|
|
142
153
|
src/api/routers/solve.py
|
|
@@ -146,6 +157,8 @@ src/api/utils/log_interceptor.py
|
|
|
146
157
|
src/api/utils/notebook_manager.py
|
|
147
158
|
src/api/utils/progress_broadcaster.py
|
|
148
159
|
src/api/utils/task_id_manager.py
|
|
160
|
+
src/cli/__init__.py
|
|
161
|
+
src/cli/start.py
|
|
149
162
|
src/config/__init__.py
|
|
150
163
|
src/config/accessors.py
|
|
151
164
|
src/config/constants.py
|
|
@@ -190,6 +203,7 @@ src/services/embedding/adapters/cohere.py
|
|
|
190
203
|
src/services/embedding/adapters/jina.py
|
|
191
204
|
src/services/embedding/adapters/ollama.py
|
|
192
205
|
src/services/embedding/adapters/openai_compatible.py
|
|
206
|
+
src/services/embedding/adapters/realtimex.py
|
|
193
207
|
src/services/llm/__init__.py
|
|
194
208
|
src/services/llm/capabilities.py
|
|
195
209
|
src/services/llm/client.py
|
|
@@ -199,6 +213,7 @@ src/services/llm/error_mapping.py
|
|
|
199
213
|
src/services/llm/exceptions.py
|
|
200
214
|
src/services/llm/factory.py
|
|
201
215
|
src/services/llm/local_provider.py
|
|
216
|
+
src/services/llm/realtimex_provider.py
|
|
202
217
|
src/services/llm/registry.py
|
|
203
218
|
src/services/llm/telemetry.py
|
|
204
219
|
src/services/llm/types.py
|
|
@@ -240,10 +255,12 @@ src/services/rag/components/retrievers/dense.py
|
|
|
240
255
|
src/services/rag/components/retrievers/hybrid.py
|
|
241
256
|
src/services/rag/components/retrievers/lightrag.py
|
|
242
257
|
src/services/rag/pipelines/__init__.py
|
|
243
|
-
src/services/rag/pipelines/academic.py
|
|
244
258
|
src/services/rag/pipelines/lightrag.py
|
|
245
259
|
src/services/rag/pipelines/llamaindex.py
|
|
246
260
|
src/services/rag/pipelines/raganything.py
|
|
261
|
+
src/services/rag/pipelines/raganything_docling.py
|
|
262
|
+
src/services/rag/utils/__init__.py
|
|
263
|
+
src/services/rag/utils/image_migration.py
|
|
247
264
|
src/services/search/__init__.py
|
|
248
265
|
src/services/search/base.py
|
|
249
266
|
src/services/search/consolidation.py
|
|
@@ -255,6 +272,8 @@ src/services/search/providers/jina.py
|
|
|
255
272
|
src/services/search/providers/perplexity.py
|
|
256
273
|
src/services/search/providers/serper.py
|
|
257
274
|
src/services/search/providers/tavily.py
|
|
275
|
+
src/services/settings/__init__.py
|
|
276
|
+
src/services/settings/interface_settings.py
|
|
258
277
|
src/services/setup/__init__.py
|
|
259
278
|
src/services/setup/init.py
|
|
260
279
|
src/services/tts/__init__.py
|
|
@@ -276,4 +295,5 @@ src/utils/document_validator.py
|
|
|
276
295
|
src/utils/error_rate_tracker.py
|
|
277
296
|
src/utils/error_utils.py
|
|
278
297
|
src/utils/json_parser.py
|
|
298
|
+
src/utils/realtimex.py
|
|
279
299
|
src/utils/network/circuit_breaker.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Scripts package - included for package distribution
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
Audit prompt parity between prompts/en and prompts/zh|prompts/cn.
|
|
6
|
+
|
|
7
|
+
Checks:
|
|
8
|
+
- Missing/extra keys (recursive)
|
|
9
|
+
- Placeholder drift in string templates (e.g. {question}, {context})
|
|
10
|
+
|
|
11
|
+
Usage:
|
|
12
|
+
python scripts/audit_prompts.py
|
|
13
|
+
python scripts/audit_prompts.py --fail
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
|
|
18
|
+
import argparse
|
|
19
|
+
from dataclasses import dataclass
|
|
20
|
+
from pathlib import Path
|
|
21
|
+
import re
|
|
22
|
+
import sys
|
|
23
|
+
from typing import Any, Iterable
|
|
24
|
+
|
|
25
|
+
import yaml
|
|
26
|
+
|
|
27
|
+
PROJECT_ROOT = Path(__file__).resolve().parents[1]
|
|
28
|
+
AGENTS_DIR = PROJECT_ROOT / "src" / "agents"
|
|
29
|
+
|
|
30
|
+
# Template placeholders are expected to be like {topic}, {knowledge_title}, etc.
|
|
31
|
+
# Avoid false positives from LaTeX (\frac{1}{3}) and Mermaid (B{{Processing}}).
|
|
32
|
+
PLACEHOLDER_RE = re.compile(r"(?<!\{)\{[A-Za-z_][A-Za-z0-9_]*\}(?!\})")
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def _load_yaml(path: Path) -> Any:
|
|
36
|
+
with open(path, encoding="utf-8") as f:
|
|
37
|
+
return yaml.safe_load(f) or {}
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def _iter_yaml_files(root: Path) -> Iterable[Path]:
|
|
41
|
+
if not root.exists():
|
|
42
|
+
return []
|
|
43
|
+
return sorted([p for p in root.rglob("*.yaml") if p.is_file()])
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def _get_placeholders(value: Any) -> set[str]:
|
|
47
|
+
found: set[str] = set()
|
|
48
|
+
if isinstance(value, str):
|
|
49
|
+
found |= set(PLACEHOLDER_RE.findall(value))
|
|
50
|
+
elif isinstance(value, dict):
|
|
51
|
+
for v in value.values():
|
|
52
|
+
found |= _get_placeholders(v)
|
|
53
|
+
elif isinstance(value, list):
|
|
54
|
+
for v in value:
|
|
55
|
+
found |= _get_placeholders(v)
|
|
56
|
+
return found
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def _collect_keys(value: Any, prefix: str = "") -> set[str]:
|
|
60
|
+
"""
|
|
61
|
+
Collect dotted key paths for all dict nodes.
|
|
62
|
+
Leaves (non-dict) are also included as paths.
|
|
63
|
+
"""
|
|
64
|
+
keys: set[str] = set()
|
|
65
|
+
if isinstance(value, dict):
|
|
66
|
+
for k, v in value.items():
|
|
67
|
+
path = f"{prefix}.{k}" if prefix else str(k)
|
|
68
|
+
keys.add(path)
|
|
69
|
+
keys |= _collect_keys(v, path)
|
|
70
|
+
elif isinstance(value, list):
|
|
71
|
+
# Lists: we don't expand indices; still consider it a leaf container.
|
|
72
|
+
if prefix:
|
|
73
|
+
keys.add(prefix)
|
|
74
|
+
else:
|
|
75
|
+
if prefix:
|
|
76
|
+
keys.add(prefix)
|
|
77
|
+
return keys
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
@dataclass
|
|
81
|
+
class Diff:
|
|
82
|
+
missing_zh: list[str]
|
|
83
|
+
extra_zh: list[str]
|
|
84
|
+
placeholder_missing_zh: list[str]
|
|
85
|
+
placeholder_extra_zh: list[str]
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def _diff(en_obj: Any, zh_obj: Any) -> Diff:
|
|
89
|
+
en_keys = _collect_keys(en_obj)
|
|
90
|
+
zh_keys = _collect_keys(zh_obj)
|
|
91
|
+
|
|
92
|
+
en_ph = _get_placeholders(en_obj)
|
|
93
|
+
zh_ph = _get_placeholders(zh_obj)
|
|
94
|
+
|
|
95
|
+
return Diff(
|
|
96
|
+
missing_zh=sorted(en_keys - zh_keys),
|
|
97
|
+
extra_zh=sorted(zh_keys - en_keys),
|
|
98
|
+
placeholder_missing_zh=sorted(en_ph - zh_ph),
|
|
99
|
+
placeholder_extra_zh=sorted(zh_ph - en_ph),
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def main() -> int:
|
|
104
|
+
parser = argparse.ArgumentParser()
|
|
105
|
+
parser.add_argument("--fail", action="store_true", help="exit non-zero on any issue")
|
|
106
|
+
args = parser.parse_args()
|
|
107
|
+
|
|
108
|
+
if not AGENTS_DIR.exists():
|
|
109
|
+
print(f"Agents directory not found: {AGENTS_DIR}", file=sys.stderr)
|
|
110
|
+
return 2
|
|
111
|
+
|
|
112
|
+
issues = 0
|
|
113
|
+
|
|
114
|
+
for module_dir in sorted([p for p in AGENTS_DIR.iterdir() if p.is_dir()]):
|
|
115
|
+
prompts_dir = module_dir / "prompts"
|
|
116
|
+
en_dir = prompts_dir / "en"
|
|
117
|
+
if not en_dir.exists():
|
|
118
|
+
continue
|
|
119
|
+
|
|
120
|
+
# Prefer zh if exists, else cn if exists (but we also compare against cn if present)
|
|
121
|
+
zh_dir = prompts_dir / "zh"
|
|
122
|
+
cn_dir = prompts_dir / "cn"
|
|
123
|
+
|
|
124
|
+
for en_file in _iter_yaml_files(en_dir):
|
|
125
|
+
rel = en_file.relative_to(en_dir)
|
|
126
|
+
candidates = []
|
|
127
|
+
if zh_dir.exists():
|
|
128
|
+
candidates.append(("zh", zh_dir / rel))
|
|
129
|
+
if cn_dir.exists():
|
|
130
|
+
candidates.append(("cn", cn_dir / rel))
|
|
131
|
+
|
|
132
|
+
if not candidates:
|
|
133
|
+
continue
|
|
134
|
+
|
|
135
|
+
en_obj = _load_yaml(en_file)
|
|
136
|
+
|
|
137
|
+
for lang_name, zh_file in candidates:
|
|
138
|
+
if not zh_file.exists():
|
|
139
|
+
issues += 1
|
|
140
|
+
print(f"[MISSING {lang_name}] {module_dir.name}: {rel.as_posix()}")
|
|
141
|
+
continue
|
|
142
|
+
|
|
143
|
+
zh_obj = _load_yaml(zh_file)
|
|
144
|
+
d = _diff(en_obj, zh_obj)
|
|
145
|
+
|
|
146
|
+
if d.missing_zh or d.extra_zh or d.placeholder_missing_zh or d.placeholder_extra_zh:
|
|
147
|
+
issues += 1
|
|
148
|
+
print(f"[DIFF {lang_name}] {module_dir.name}: {rel.as_posix()}")
|
|
149
|
+
if d.missing_zh:
|
|
150
|
+
print(" - missing keys:")
|
|
151
|
+
for k in d.missing_zh[:50]:
|
|
152
|
+
print(f" - {k}")
|
|
153
|
+
if len(d.missing_zh) > 50:
|
|
154
|
+
print(f" ... ({len(d.missing_zh) - 50} more)")
|
|
155
|
+
if d.extra_zh:
|
|
156
|
+
print(" - extra keys:")
|
|
157
|
+
for k in d.extra_zh[:50]:
|
|
158
|
+
print(f" - {k}")
|
|
159
|
+
if len(d.extra_zh) > 50:
|
|
160
|
+
print(f" ... ({len(d.extra_zh) - 50} more)")
|
|
161
|
+
if d.placeholder_missing_zh:
|
|
162
|
+
print(" - missing placeholders:")
|
|
163
|
+
for p in d.placeholder_missing_zh:
|
|
164
|
+
print(f" - {p}")
|
|
165
|
+
if d.placeholder_extra_zh:
|
|
166
|
+
print(" - extra placeholders:")
|
|
167
|
+
for p in d.placeholder_extra_zh:
|
|
168
|
+
print(f" - {p}")
|
|
169
|
+
|
|
170
|
+
if issues == 0:
|
|
171
|
+
print("OK: prompts are structurally aligned (keys/placeholders).")
|
|
172
|
+
return 0
|
|
173
|
+
|
|
174
|
+
print(f"Found {issues} prompt parity issue(s).")
|
|
175
|
+
return 1 if args.fail else 0
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
if __name__ == "__main__":
|
|
179
|
+
raise SystemExit(main())
|