jarvis-ai-assistant 0.1.219__tar.gz → 0.1.221__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.
Files changed (118) hide show
  1. {jarvis_ai_assistant-0.1.219/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.1.221}/PKG-INFO +90 -8
  2. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/README.md +73 -2
  3. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/pyproject.toml +19 -6
  4. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/setup.py +22 -8
  5. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/__init__.py +1 -1
  6. jarvis_ai_assistant-0.1.221/src/jarvis/jarvis_agent/__init__.py +578 -0
  7. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_agent/edit_file_handler.py +32 -185
  8. jarvis_ai_assistant-0.1.221/src/jarvis/jarvis_agent/prompt_builder.py +57 -0
  9. jarvis_ai_assistant-0.1.221/src/jarvis/jarvis_agent/prompts.py +188 -0
  10. jarvis_ai_assistant-0.1.221/src/jarvis/jarvis_agent/protocols.py +30 -0
  11. jarvis_ai_assistant-0.1.221/src/jarvis/jarvis_agent/session_manager.py +84 -0
  12. jarvis_ai_assistant-0.1.221/src/jarvis/jarvis_agent/tool_executor.py +49 -0
  13. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_agent/code_agent.py +4 -4
  14. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_data/config_schema.json +20 -0
  15. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_platform/yuanbao.py +3 -1
  16. jarvis_ai_assistant-0.1.221/src/jarvis/jarvis_rag/__init__.py +11 -0
  17. jarvis_ai_assistant-0.1.221/src/jarvis/jarvis_rag/cache.py +85 -0
  18. jarvis_ai_assistant-0.1.221/src/jarvis/jarvis_rag/cli.py +386 -0
  19. jarvis_ai_assistant-0.1.221/src/jarvis/jarvis_rag/embedding_manager.py +95 -0
  20. jarvis_ai_assistant-0.1.221/src/jarvis/jarvis_rag/llm_interface.py +128 -0
  21. jarvis_ai_assistant-0.1.221/src/jarvis/jarvis_rag/query_rewriter.py +62 -0
  22. jarvis_ai_assistant-0.1.221/src/jarvis/jarvis_rag/rag_pipeline.py +174 -0
  23. jarvis_ai_assistant-0.1.221/src/jarvis/jarvis_rag/reranker.py +56 -0
  24. jarvis_ai_assistant-0.1.221/src/jarvis/jarvis_rag/retriever.py +201 -0
  25. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_tools/edit_file.py +11 -36
  26. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_utils/config.py +56 -0
  27. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221/src/jarvis_ai_assistant.egg-info}/PKG-INFO +90 -8
  28. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +14 -0
  29. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis_ai_assistant.egg-info/entry_points.txt +1 -0
  30. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis_ai_assistant.egg-info/requires.txt +15 -3
  31. jarvis_ai_assistant-0.1.219/src/jarvis/jarvis_agent/__init__.py +0 -920
  32. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/LICENSE +0 -0
  33. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/MANIFEST.in +0 -0
  34. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/setup.cfg +0 -0
  35. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_agent/builtin_input_handler.py +0 -0
  36. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_agent/jarvis.py +0 -0
  37. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_agent/main.py +0 -0
  38. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_agent/output_handler.py +0 -0
  39. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
  40. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
  41. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_agent/lint.py +0 -0
  42. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
  43. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
  44. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
  45. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
  46. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
  47. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
  48. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
  49. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
  50. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
  51. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
  52. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
  53. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
  54. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
  55. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
  56. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
  57. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
  58. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
  59. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
  60. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
  61. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
  62. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_code_analysis/code_review.py +0 -0
  63. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
  64. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_git_details/__init__.py +0 -0
  65. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_git_details/main.py +0 -0
  66. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
  67. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_git_squash/main.py +0 -0
  68. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_git_utils/git_commiter.py +0 -0
  69. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_mcp/__init__.py +0 -0
  70. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_mcp/sse_mcp_client.py +0 -0
  71. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
  72. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +0 -0
  73. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_methodology/main.py +0 -0
  74. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
  75. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_multi_agent/main.py +0 -0
  76. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_platform/__init__.py +0 -0
  77. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_platform/ai8.py +0 -0
  78. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_platform/base.py +0 -0
  79. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_platform/human.py +0 -0
  80. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_platform/kimi.py +0 -0
  81. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_platform/openai.py +0 -0
  82. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_platform/oyi.py +0 -0
  83. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_platform/registry.py +0 -0
  84. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_platform/tongyi.py +0 -0
  85. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
  86. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_platform_manager/main.py +0 -0
  87. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_platform_manager/service.py +0 -0
  88. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
  89. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_smart_shell/main.py +0 -0
  90. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_tools/__init__.py +0 -0
  91. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_tools/ask_user.py +0 -0
  92. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_tools/base.py +0 -0
  93. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
  94. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_tools/cli/main.py +0 -0
  95. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_tools/execute_script.py +0 -0
  96. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_tools/file_analyzer.py +0 -0
  97. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_tools/generate_new_tool.py +0 -0
  98. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_tools/methodology.py +0 -0
  99. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_tools/read_code.py +0 -0
  100. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
  101. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_tools/registry.py +0 -0
  102. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_tools/rewrite_file.py +0 -0
  103. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_tools/search_web.py +0 -0
  104. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_tools/virtual_tty.py +0 -0
  105. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_utils/__init__.py +0 -0
  106. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
  107. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_utils/embedding.py +0 -0
  108. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_utils/file_processors.py +0 -0
  109. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_utils/git_utils.py +0 -0
  110. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_utils/globals.py +0 -0
  111. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_utils/http.py +0 -0
  112. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_utils/input.py +0 -0
  113. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_utils/methodology.py +0 -0
  114. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_utils/output.py +0 -0
  115. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_utils/tag.py +0 -0
  116. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis/jarvis_utils/utils.py +0 -0
  117. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
  118. {jarvis_ai_assistant-0.1.219 → jarvis_ai_assistant-0.1.221}/src/jarvis_ai_assistant.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.1.219
3
+ Version: 0.1.221
4
4
  Summary: Jarvis: An AI assistant that uses tools to interact with the system
5
5
  Home-page: https://github.com/skyfireitdiy/Jarvis
6
6
  Author: skyfire
@@ -33,11 +33,11 @@ Classifier: Intended Audience :: Developers
33
33
  Classifier: License :: OSI Approved :: MIT License
34
34
  Classifier: Operating System :: POSIX :: Linux
35
35
  Classifier: Programming Language :: Python :: 3
36
- Classifier: Programming Language :: Python :: 3.8
37
36
  Classifier: Programming Language :: Python :: 3.9
38
37
  Classifier: Programming Language :: Python :: 3.10
39
38
  Classifier: Programming Language :: Python :: 3.11
40
- Requires-Python: >=3.8
39
+ Classifier: Programming Language :: Python :: 3.12
40
+ Requires-Python: >=3.9
41
41
  Description-Content-Type: text/markdown
42
42
  License-File: LICENSE
43
43
  Requires-Dist: requests==2.32.3
@@ -56,9 +56,9 @@ Requires-Dist: tabulate==0.9.0
56
56
  Requires-Dist: pyte==0.8.2
57
57
  Requires-Dist: httpx>=0.28.1
58
58
  Requires-Dist: pyyaml>=5.3.1
59
- Requires-Dist: ddgs==6.1.8
60
- Requires-Dist: beautifulsoup4==4.12.3
61
- Requires-Dist: lxml==5.2.2
59
+ Requires-Dist: ddgs==9.0.2
60
+ Requires-Dist: beautifulsoup4==4.13.4
61
+ Requires-Dist: lxml==6.0.0
62
62
  Provides-Extra: dev
63
63
  Requires-Dist: pytest; extra == "dev"
64
64
  Requires-Dist: black; extra == "dev"
@@ -66,6 +66,17 @@ Requires-Dist: isort; extra == "dev"
66
66
  Requires-Dist: mypy; extra == "dev"
67
67
  Requires-Dist: build; extra == "dev"
68
68
  Requires-Dist: twine; extra == "dev"
69
+ Provides-Extra: rag
70
+ Requires-Dist: langchain; extra == "rag"
71
+ Requires-Dist: langchain-community; extra == "rag"
72
+ Requires-Dist: langchain-huggingface; extra == "rag"
73
+ Requires-Dist: chromadb; extra == "rag"
74
+ Requires-Dist: diskcache; extra == "rag"
75
+ Requires-Dist: sentence-transformers==2.7.0; extra == "rag"
76
+ Requires-Dist: torch>=2.6; extra == "rag"
77
+ Requires-Dist: typer; extra == "rag"
78
+ Requires-Dist: unstructured[md]; extra == "rag"
79
+ Requires-Dist: rank-bm25; extra == "rag"
69
80
  Dynamic: author
70
81
  Dynamic: home-page
71
82
  Dynamic: license-file
@@ -536,6 +547,7 @@ OPENAI_API_BASE: https://api.openai.com/v1
536
547
  | `JARVIS_USE_METHODOLOGY` | true | 是否启用方法论功能 |
537
548
  | `JARVIS_USE_ANALYSIS` | true | 是否启用任务分析功能 |
538
549
  | `JARVIS_DATA_PATH` | ~/.jarvis | Jarvis数据存储目录路径 |
550
+ | `JARVIS_RAG` | `{"embedding_model": "BAAI/bge-base-zh-v1.5"}` | RAG框架的配置 |
539
551
 
540
552
  ## 🛠️ 工具说明 <a id="tools"></a>
541
553
 
@@ -553,7 +565,77 @@ OPENAI_API_BASE: https://api.openai.com/v1
553
565
  | search_web | 使用互联网搜索 |
554
566
  | virtual_tty | 控制虚拟终端执行操作 |
555
567
 
556
- ### 2. 命令替换功能
568
+ ### 2. 🧠 RAG增强知识库 (`jarvis-rag`)
569
+
570
+ `jarvis-rag` 是一个强大的命令行工具,用于构建、管理和查询本地化的RAG(检索增强生成)知识库。它允许您将自己的文档(代码、笔记、文章等)作为外部知识源,让AI能够基于这些具体内容进行回答,而不是仅仅依赖其通用训练数据。
571
+
572
+ #### 核心功能
573
+
574
+ - **本地化知识库**:所有文档索引和数据都存储在本地,确保数据隐私和安全。
575
+ - **智能文档加载**:自动识别并加载多种文本文件,无需关心文件后缀。
576
+ - **灵活的查询**:支持使用项目默认的“思考”模型或动态指定任意已注册的LLM进行查询。
577
+ - **配置驱动**:通过 `config.toml` 或 `.jarvis/config.yaml` 进行集中配置。
578
+
579
+ #### 子命令说明
580
+
581
+ ##### 2.1 添加文档到知识库 (`add`)
582
+
583
+ 此命令用于将文件、目录或符合通配符模式的文档添加到知识库中。
584
+
585
+ ```bash
586
+ # 基本用法
587
+ jarvis-rag add <文件路径/目录路径/通配符模式>...
588
+
589
+ # 示例
590
+ # 1. 添加单个文件
591
+ jarvis-rag add ./docs/my_document.md
592
+
593
+ # 2. 添加整个目录(将递归扫描所有文本文件)
594
+ jarvis-rag add ./src/
595
+
596
+ # 3. 使用通配符添加所有Python文件
597
+ jarvis-rag add 'src/**/*.py'
598
+
599
+ # 4. 混合添加
600
+ jarvis-rag add README.md ./docs/ 'src/jarvis/jarvis_rag/*.py'
601
+ ```
602
+
603
+ **参数与选项:**
604
+
605
+ | 参数/选项 | 描述 |
606
+ |---|---|
607
+ | `paths` | **[必需]** 一个或多个文件路径、目录路径或用引号包裹的通配符模式。 |
608
+ | `--collection` | 指定知识库的集合名称(默认为 `jarvis_rag_collection`)。 |
609
+ | `--embedding-model` | 覆盖全局配置,强制使用特定的嵌入模型名称。 |
610
+ | `--db-path` | 覆盖全局配置,指定向量数据库的存储路径。 |
611
+
612
+ ##### 2.2 查询知识库 (`query`)
613
+
614
+ 此命令用于向已建立的知识库提出问题。
615
+
616
+ ```bash
617
+ # 基本用法
618
+ jarvis-rag query "你的问题"
619
+
620
+ # 示例
621
+ # 1. 使用默认配置进行查询
622
+ jarvis-rag query "请总结一下我添加的文档的核心内容"
623
+
624
+ # 2. 指定使用Kimi模型进行查询
625
+ jarvis-rag query "代码中的 'PlatformRegistry' 类是做什么用的?" --platform kimi --model moonshot-v1-8k
626
+ ```
627
+
628
+ **参数与选项:**
629
+
630
+ | 参数/选项 | 描述 |
631
+ |---|---|
632
+ | `question` | **[必需]** 你要向知识库提出的问题。 |
633
+ | `--collection` | 指定要查询的知识库集合名称。 |
634
+ | `--platform` | 指定一个平台名称来回答问题,覆盖默认的“思考”模型。 |
635
+ | `--model` | 指定一个模型名称来回答问题,需要与 `--platform` 同时使用。 |
636
+ | `--embedding-model` | 覆盖全局配置,强制使用特定的嵌入模型名称。 |
637
+
638
+ ### 3. 命令替换功能
557
639
  支持使用特殊标记`'<tag>'`触发命令替换功能:
558
640
 
559
641
  | 标记 | 功能 |
@@ -568,7 +650,7 @@ OPENAI_API_BASE: https://api.openai.com/v1
568
650
  | `'Check'` | 执行静态代码检查,包括错误和风格问题 |
569
651
  | `'SaveSession'` | 保存当前会话并退出 |
570
652
 
571
- ### 3. 自定义替换配置
653
+ ### 4. 自定义替换配置
572
654
  在`~/.jarvis/config.yaml`中添加:
573
655
  ```yaml
574
656
  JARVIS_REPLACE_MAP:
@@ -463,6 +463,7 @@ OPENAI_API_BASE: https://api.openai.com/v1
463
463
  | `JARVIS_USE_METHODOLOGY` | true | 是否启用方法论功能 |
464
464
  | `JARVIS_USE_ANALYSIS` | true | 是否启用任务分析功能 |
465
465
  | `JARVIS_DATA_PATH` | ~/.jarvis | Jarvis数据存储目录路径 |
466
+ | `JARVIS_RAG` | `{"embedding_model": "BAAI/bge-base-zh-v1.5"}` | RAG框架的配置 |
466
467
 
467
468
  ## 🛠️ 工具说明 <a id="tools"></a>
468
469
 
@@ -480,7 +481,77 @@ OPENAI_API_BASE: https://api.openai.com/v1
480
481
  | search_web | 使用互联网搜索 |
481
482
  | virtual_tty | 控制虚拟终端执行操作 |
482
483
 
483
- ### 2. 命令替换功能
484
+ ### 2. 🧠 RAG增强知识库 (`jarvis-rag`)
485
+
486
+ `jarvis-rag` 是一个强大的命令行工具,用于构建、管理和查询本地化的RAG(检索增强生成)知识库。它允许您将自己的文档(代码、笔记、文章等)作为外部知识源,让AI能够基于这些具体内容进行回答,而不是仅仅依赖其通用训练数据。
487
+
488
+ #### 核心功能
489
+
490
+ - **本地化知识库**:所有文档索引和数据都存储在本地,确保数据隐私和安全。
491
+ - **智能文档加载**:自动识别并加载多种文本文件,无需关心文件后缀。
492
+ - **灵活的查询**:支持使用项目默认的“思考”模型或动态指定任意已注册的LLM进行查询。
493
+ - **配置驱动**:通过 `config.toml` 或 `.jarvis/config.yaml` 进行集中配置。
494
+
495
+ #### 子命令说明
496
+
497
+ ##### 2.1 添加文档到知识库 (`add`)
498
+
499
+ 此命令用于将文件、目录或符合通配符模式的文档添加到知识库中。
500
+
501
+ ```bash
502
+ # 基本用法
503
+ jarvis-rag add <文件路径/目录路径/通配符模式>...
504
+
505
+ # 示例
506
+ # 1. 添加单个文件
507
+ jarvis-rag add ./docs/my_document.md
508
+
509
+ # 2. 添加整个目录(将递归扫描所有文本文件)
510
+ jarvis-rag add ./src/
511
+
512
+ # 3. 使用通配符添加所有Python文件
513
+ jarvis-rag add 'src/**/*.py'
514
+
515
+ # 4. 混合添加
516
+ jarvis-rag add README.md ./docs/ 'src/jarvis/jarvis_rag/*.py'
517
+ ```
518
+
519
+ **参数与选项:**
520
+
521
+ | 参数/选项 | 描述 |
522
+ |---|---|
523
+ | `paths` | **[必需]** 一个或多个文件路径、目录路径或用引号包裹的通配符模式。 |
524
+ | `--collection` | 指定知识库的集合名称(默认为 `jarvis_rag_collection`)。 |
525
+ | `--embedding-model` | 覆盖全局配置,强制使用特定的嵌入模型名称。 |
526
+ | `--db-path` | 覆盖全局配置,指定向量数据库的存储路径。 |
527
+
528
+ ##### 2.2 查询知识库 (`query`)
529
+
530
+ 此命令用于向已建立的知识库提出问题。
531
+
532
+ ```bash
533
+ # 基本用法
534
+ jarvis-rag query "你的问题"
535
+
536
+ # 示例
537
+ # 1. 使用默认配置进行查询
538
+ jarvis-rag query "请总结一下我添加的文档的核心内容"
539
+
540
+ # 2. 指定使用Kimi模型进行查询
541
+ jarvis-rag query "代码中的 'PlatformRegistry' 类是做什么用的?" --platform kimi --model moonshot-v1-8k
542
+ ```
543
+
544
+ **参数与选项:**
545
+
546
+ | 参数/选项 | 描述 |
547
+ |---|---|
548
+ | `question` | **[必需]** 你要向知识库提出的问题。 |
549
+ | `--collection` | 指定要查询的知识库集合名称。 |
550
+ | `--platform` | 指定一个平台名称来回答问题,覆盖默认的“思考”模型。 |
551
+ | `--model` | 指定一个模型名称来回答问题,需要与 `--platform` 同时使用。 |
552
+ | `--embedding-model` | 覆盖全局配置,强制使用特定的嵌入模型名称。 |
553
+
554
+ ### 3. 命令替换功能
484
555
  支持使用特殊标记`'<tag>'`触发命令替换功能:
485
556
 
486
557
  | 标记 | 功能 |
@@ -495,7 +566,7 @@ OPENAI_API_BASE: https://api.openai.com/v1
495
566
  | `'Check'` | 执行静态代码检查,包括错误和风格问题 |
496
567
  | `'SaveSession'` | 保存当前会话并退出 |
497
568
 
498
- ### 3. 自定义替换配置
569
+ ### 4. 自定义替换配置
499
570
  在`~/.jarvis/config.yaml`中添加:
500
571
  ```yaml
501
572
  JARVIS_REPLACE_MAP:
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "jarvis-ai-assistant"
7
- version = "0.1.219"
7
+ version = "0.1.221"
8
8
  description = "Jarvis: An AI assistant that uses tools to interact with the system"
9
9
  readme = "README.md"
10
10
  authors = [{ name = "skyfire", email = "skyfireitdiy@hotmail.com" }]
@@ -15,10 +15,10 @@ classifiers = [
15
15
  "License :: OSI Approved :: MIT License",
16
16
  "Operating System :: POSIX :: Linux",
17
17
  "Programming Language :: Python :: 3",
18
- "Programming Language :: Python :: 3.8",
19
18
  "Programming Language :: Python :: 3.9",
20
19
  "Programming Language :: Python :: 3.10",
21
20
  "Programming Language :: Python :: 3.11",
21
+ "Programming Language :: Python :: 3.12",
22
22
  ]
23
23
  keywords = ["jarvis", "ai", "assistant", "tools", "automation"]
24
24
  dependencies = [
@@ -38,14 +38,26 @@ dependencies = [
38
38
  "pyte==0.8.2",
39
39
  "httpx>=0.28.1",
40
40
  "pyyaml>=5.3.1",
41
- "ddgs==6.1.8",
42
- "beautifulsoup4==4.12.3",
43
- "lxml==5.2.2",
41
+ "ddgs==9.0.2",
42
+ "beautifulsoup4==4.13.4",
43
+ "lxml==6.0.0",
44
44
  ]
45
- requires-python = ">=3.8"
45
+ requires-python = ">=3.9"
46
46
 
47
47
  [project.optional-dependencies]
48
48
  dev = ["pytest", "black", "isort", "mypy", "build", "twine"]
49
+ rag = [
50
+ "langchain",
51
+ "langchain-community",
52
+ "langchain-huggingface",
53
+ "chromadb",
54
+ "diskcache",
55
+ "sentence-transformers==2.7.0",
56
+ "torch>=2.6",
57
+ "typer",
58
+ "unstructured[md]",
59
+ "rank-bm25",
60
+ ]
49
61
 
50
62
  [project.urls]
51
63
  Homepage = "https://github.com/skyfireitdiy/Jarvis"
@@ -67,3 +79,4 @@ jarvis-agent = "jarvis.jarvis_agent.main:main"
67
79
  jarvis-tool = "jarvis.jarvis_tools.cli.main:main"
68
80
  jarvis-git-details = "jarvis.jarvis_git_details.main:main"
69
81
  jarvis-methodology = "jarvis.jarvis_methodology.main:main"
82
+ jarvis-rag = "jarvis.jarvis_rag.cli:main"
@@ -3,7 +3,7 @@ from setuptools import setup, find_packages # type: ignore
3
3
 
4
4
  setup(
5
5
  name="jarvis-ai-assistant",
6
- version="0.1.219",
6
+ version="0.1.221",
7
7
  author="skyfire",
8
8
  author_email="skyfireitdiy@hotmail.com",
9
9
  description="An AI assistant that uses various tools to interact with the system",
@@ -33,12 +33,25 @@ setup(
33
33
  "pyte==0.8.2",
34
34
  "httpx>=0.28.1",
35
35
  "pyyaml>=5.3.1",
36
- "ddgs==6.1.8",
37
- "beautifulsoup4==4.12.3",
38
- "lxml==5.2.2",
36
+ "ddgs==9.0.2",
37
+ "beautifulsoup4==4.13.4",
38
+ "lxml==6.0.0",
39
39
  ],
40
- extras_require={"dev": ["pytest", "black",
41
- "isort", "mypy", "build", "twine"]},
40
+ extras_require={
41
+ "dev": ["pytest", "black", "isort", "mypy", "build", "twine"],
42
+ "rag": [
43
+ "langchain",
44
+ "langchain-community",
45
+ "langchain-huggingface",
46
+ "chromadb",
47
+ "diskcache",
48
+ "sentence-transformers==2.7.0",
49
+ "torch>=2.6",
50
+ "typer",
51
+ "unstructured[md]",
52
+ "rank-bm25",
53
+ ],
54
+ },
42
55
  entry_points={
43
56
  "console_scripts": [
44
57
  "jarvis=jarvis.jarvis_agent.jarvis:main",
@@ -57,18 +70,19 @@ setup(
57
70
  "jarvis-tool=jarvis.jarvis_tools.cli.main:main",
58
71
  "jarvis-git-details=jarvis.jarvis_git_details.main:main",
59
72
  "jarvis-methodology=jarvis.jarvis_methodology.main:main",
73
+ "jarvis-rag=jarvis.jarvis_rag.cli:main",
60
74
  ],
61
75
  },
62
- python_requires=">=3.8",
76
+ python_requires=">=3.9",
63
77
  classifiers=[
64
78
  "Development Status :: 3 - Alpha",
65
79
  "Intended Audience :: Developers",
66
80
  "License :: OSI Approved :: MIT License",
67
81
  "Operating System :: POSIX :: Linux",
68
82
  "Programming Language :: Python :: 3",
69
- "Programming Language :: Python :: 3.8",
70
83
  "Programming Language :: Python :: 3.9",
71
84
  "Programming Language :: Python :: 3.10",
72
85
  "Programming Language :: Python :: 3.11",
86
+ "Programming Language :: Python :: 3.12",
73
87
  ],
74
88
  )
@@ -1,4 +1,4 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  """Jarvis AI Assistant"""
3
3
 
4
- __version__ = "0.1.219"
4
+ __version__ = "0.1.221"