jarvis-ai-assistant 0.1.164__tar.gz → 0.1.166__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.
Potentially problematic release.
This version of jarvis-ai-assistant might be problematic. Click here for more details.
- {jarvis_ai_assistant-0.1.164/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.1.166}/PKG-INFO +42 -44
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/README.md +40 -43
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/pyproject.toml +2 -1
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/setup.py +6 -1
- jarvis_ai_assistant-0.1.166/src/jarvis/__init__.py +4 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_agent/__init__.py +13 -1
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_agent/builtin_input_handler.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_agent/file_input_handler.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_agent/jarvis.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_agent/main.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_agent/output_handler.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_agent/shell_input_handler.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_agent/code_agent.py +5 -26
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/devops.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/docs.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/go.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/java.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/loader.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/php.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/python.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/rust.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/shell.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/sql.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/swift.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/web.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/code_review.py +1 -0
- jarvis_ai_assistant-0.1.166/src/jarvis/jarvis_data/huggingface.tar.gz +0 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_dev/main.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_git_details/main.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_git_squash/main.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_git_utils/git_commiter.py +55 -30
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_lsp/base.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_lsp/cpp.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_lsp/go.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_lsp/python.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_lsp/registry.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_lsp/rust.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_mcp/__init__.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_mcp/sse_mcp_client.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_methodology/main.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_multi_agent/__init__.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_multi_agent/main.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_platform/__init__.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_platform/base.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_platform/human.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_platform/kimi.py +1 -0
- jarvis_ai_assistant-0.1.166/src/jarvis/jarvis_platform/openai.py +117 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_platform/registry.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_platform/yuanbao.py +3 -1
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_platform_manager/main.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_smart_shell/main.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/ask_codebase.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/ask_user.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/base.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/chdir.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/code_plan.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/create_code_agent.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/create_sub_agent.py +1 -0
- jarvis_ai_assistant-0.1.166/src/jarvis/jarvis_tools/edit_file.py +351 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/execute_script.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/file_analyzer.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/file_operation.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/find_methodology.py +6 -1
- jarvis_ai_assistant-0.1.166/src/jarvis/jarvis_tools/generate_new_tool.py +288 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/lsp_get_diagnostics.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/methodology.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/read_code.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/read_webpage.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/registry.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/rewrite_file.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/search_web.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/virtual_tty.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/__init__.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/builtin_replace_map.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/config.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/embedding.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/file_processors.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/git_utils.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/globals.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/input.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/methodology.py +12 -5
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/output.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/tag.py +1 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/utils.py +19 -1
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166/src/jarvis_ai_assistant.egg-info}/PKG-INFO +42 -44
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +3 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis_ai_assistant.egg-info/requires.txt +1 -0
- jarvis_ai_assistant-0.1.164/src/jarvis/__init__.py +0 -3
- jarvis_ai_assistant-0.1.164/src/jarvis/jarvis_tools/edit_file.py +0 -279
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/LICENSE +0 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/MANIFEST.in +0 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/setup.cfg +0 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_git_details/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
- {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/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.
|
|
3
|
+
Version: 0.1.166
|
|
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
|
|
@@ -55,6 +55,7 @@ Requires-Dist: torch==2.4.1
|
|
|
55
55
|
Requires-Dist: python-Levenshtein==0.25.1
|
|
56
56
|
Requires-Dist: sseclient==0.0.27
|
|
57
57
|
Requires-Dist: pillow==10.2.0
|
|
58
|
+
Requires-Dist: openai==1.78.1
|
|
58
59
|
Provides-Extra: dev
|
|
59
60
|
Requires-Dist: pytest; extra == "dev"
|
|
60
61
|
Requires-Dist: black; extra == "dev"
|
|
@@ -105,11 +106,19 @@ Dynamic: requires-python
|
|
|
105
106
|
|
|
106
107
|
|
|
107
108
|
## 🚀 快速开始 <a id="quick-start"></a>
|
|
109
|
+
### 系统要求
|
|
110
|
+
- 目前只能在Linux系统下使用(很多工具依赖Linux系统)
|
|
111
|
+
- Windows没有测试过,但Windows 10以上的用户可以在WSL上使用此工具
|
|
112
|
+
|
|
108
113
|
### 安装
|
|
109
114
|
```bash
|
|
115
|
+
# 从源码安装(推荐)
|
|
110
116
|
git clone https://github.com/skyfireitdiy/Jarvis
|
|
111
117
|
cd Jarvis
|
|
112
118
|
pip3 install -e .
|
|
119
|
+
|
|
120
|
+
# 或者从PyPI安装(可能更新不及时)
|
|
121
|
+
pip3 install jarvis-ai-assistant
|
|
113
122
|
```
|
|
114
123
|
|
|
115
124
|
### 最小化配置
|
|
@@ -148,55 +157,44 @@ Kimi API Key获取方式:
|
|
|
148
157
|
|
|
149
158
|
删除Bearer前缀,剩下的内容就是Kimi API Key。
|
|
150
159
|
|
|
151
|
-
以上配置编写到`~/.jarvis/env`文件中。
|
|
152
160
|
|
|
153
|
-
|
|
161
|
+
#### OpenAI
|
|
154
162
|
```bash
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
#
|
|
163
|
-
|
|
164
|
-
# 或者 jss
|
|
165
|
-
|
|
166
|
-
# 使用平台管理的功能
|
|
167
|
-
jarvis-platform-manager --help
|
|
168
|
-
|
|
169
|
-
# 使用代码审查的功能
|
|
170
|
-
jarvis-code-review --help
|
|
171
|
-
|
|
172
|
-
# 使用自动化git commit的功能
|
|
173
|
-
jarvis-git-commit --help
|
|
174
|
-
# 或者 jgc
|
|
175
|
-
|
|
176
|
-
# 使用dev功能(开发中)
|
|
177
|
-
jarvis-dev --help
|
|
178
|
-
|
|
179
|
-
# 使用git squash的功能
|
|
180
|
-
jarvis-git-squash --help
|
|
181
|
-
|
|
182
|
-
# 使用多代理的功能
|
|
183
|
-
jarvis-multi-agent --help
|
|
184
|
-
|
|
185
|
-
# 使用agent的功能
|
|
186
|
-
jarvis-agent --help
|
|
163
|
+
JARVIS_PLATFORM=openai
|
|
164
|
+
JARVIS_MODEL=gpt-4o # 默认模型,可选gpt-4-turbo, gpt-3.5-turbo等
|
|
165
|
+
JARVIS_THINKING_PLATFORM=openai
|
|
166
|
+
JARVIS_THINKING_MODEL=gpt-4o
|
|
167
|
+
|
|
168
|
+
OPENAI_API_KEY=<OpenAI API Key>
|
|
169
|
+
OPENAI_API_BASE=https://api.openai.com/v1 # 可选,默认为官方API地址
|
|
170
|
+
OPENAI_MODEL_NAME=gpt-4o # 可选,覆盖JARVIS_MODEL设置
|
|
171
|
+
```
|
|
187
172
|
|
|
188
|
-
|
|
189
|
-
|
|
173
|
+
配置说明:
|
|
174
|
+
1. `OPENAI_API_KEY`: 必填。
|
|
175
|
+
2. `OPENAI_API_BASE`: 可选,用于自定义API端点
|
|
190
176
|
|
|
191
|
-
|
|
192
|
-
jarvis-ask-codebase --help
|
|
177
|
+
以上配置编写到`~/.jarvis/env`文件中。
|
|
193
178
|
|
|
194
|
-
|
|
195
|
-
jarvis-git-details --help
|
|
179
|
+
支持的模型可通过`jarvis-platform-manager --list-models`查看完整列表。
|
|
196
180
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
181
|
+
### 基本使用
|
|
182
|
+
| 命令 | 快捷方式 | 功能描述 |
|
|
183
|
+
|------|----------|----------|
|
|
184
|
+
| `jarvis` | - | 使用通用代理 |
|
|
185
|
+
| `jarvis-code-agent` | `jca` | 使用代码代理 |
|
|
186
|
+
| `jarvis-smart-shell` | `jss` | 使用智能shell功能 |
|
|
187
|
+
| `jarvis-platform-manager` | - | 使用平台管理功能 |
|
|
188
|
+
| `jarvis-code-review` | - | 使用代码审查功能 |
|
|
189
|
+
| `jarvis-git-commit` | `jgc` | 使用自动化git commit功能 |
|
|
190
|
+
| `jarvis-dev` | - | 使用dev功能(开发中) |
|
|
191
|
+
| `jarvis-git-squash` | - | 使用git squash功能 |
|
|
192
|
+
| `jarvis-multi-agent` | - | 使用多代理功能 |
|
|
193
|
+
| `jarvis-agent` | - | 使用agent功能 |
|
|
194
|
+
| `jarvis-tool` | - | 使用工具功能 |
|
|
195
|
+
| `jarvis-ask-codebase` | `jac` | 使用代码库查询功能 |
|
|
196
|
+
| `jarvis-git-details` | - | 使用git details功能 |
|
|
197
|
+
| `jarvis-methodology` | - | 使用方法论功能 |
|
|
200
198
|
|
|
201
199
|
---
|
|
202
200
|
|
|
@@ -36,11 +36,19 @@
|
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
## 🚀 快速开始 <a id="quick-start"></a>
|
|
39
|
+
### 系统要求
|
|
40
|
+
- 目前只能在Linux系统下使用(很多工具依赖Linux系统)
|
|
41
|
+
- Windows没有测试过,但Windows 10以上的用户可以在WSL上使用此工具
|
|
42
|
+
|
|
39
43
|
### 安装
|
|
40
44
|
```bash
|
|
45
|
+
# 从源码安装(推荐)
|
|
41
46
|
git clone https://github.com/skyfireitdiy/Jarvis
|
|
42
47
|
cd Jarvis
|
|
43
48
|
pip3 install -e .
|
|
49
|
+
|
|
50
|
+
# 或者从PyPI安装(可能更新不及时)
|
|
51
|
+
pip3 install jarvis-ai-assistant
|
|
44
52
|
```
|
|
45
53
|
|
|
46
54
|
### 最小化配置
|
|
@@ -79,55 +87,44 @@ Kimi API Key获取方式:
|
|
|
79
87
|
|
|
80
88
|
删除Bearer前缀,剩下的内容就是Kimi API Key。
|
|
81
89
|
|
|
82
|
-
以上配置编写到`~/.jarvis/env`文件中。
|
|
83
90
|
|
|
84
|
-
|
|
91
|
+
#### OpenAI
|
|
85
92
|
```bash
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
#
|
|
94
|
-
|
|
95
|
-
# 或者 jss
|
|
96
|
-
|
|
97
|
-
# 使用平台管理的功能
|
|
98
|
-
jarvis-platform-manager --help
|
|
99
|
-
|
|
100
|
-
# 使用代码审查的功能
|
|
101
|
-
jarvis-code-review --help
|
|
102
|
-
|
|
103
|
-
# 使用自动化git commit的功能
|
|
104
|
-
jarvis-git-commit --help
|
|
105
|
-
# 或者 jgc
|
|
106
|
-
|
|
107
|
-
# 使用dev功能(开发中)
|
|
108
|
-
jarvis-dev --help
|
|
109
|
-
|
|
110
|
-
# 使用git squash的功能
|
|
111
|
-
jarvis-git-squash --help
|
|
112
|
-
|
|
113
|
-
# 使用多代理的功能
|
|
114
|
-
jarvis-multi-agent --help
|
|
115
|
-
|
|
116
|
-
# 使用agent的功能
|
|
117
|
-
jarvis-agent --help
|
|
93
|
+
JARVIS_PLATFORM=openai
|
|
94
|
+
JARVIS_MODEL=gpt-4o # 默认模型,可选gpt-4-turbo, gpt-3.5-turbo等
|
|
95
|
+
JARVIS_THINKING_PLATFORM=openai
|
|
96
|
+
JARVIS_THINKING_MODEL=gpt-4o
|
|
97
|
+
|
|
98
|
+
OPENAI_API_KEY=<OpenAI API Key>
|
|
99
|
+
OPENAI_API_BASE=https://api.openai.com/v1 # 可选,默认为官方API地址
|
|
100
|
+
OPENAI_MODEL_NAME=gpt-4o # 可选,覆盖JARVIS_MODEL设置
|
|
101
|
+
```
|
|
118
102
|
|
|
119
|
-
|
|
120
|
-
|
|
103
|
+
配置说明:
|
|
104
|
+
1. `OPENAI_API_KEY`: 必填。
|
|
105
|
+
2. `OPENAI_API_BASE`: 可选,用于自定义API端点
|
|
121
106
|
|
|
122
|
-
|
|
123
|
-
jarvis-ask-codebase --help
|
|
107
|
+
以上配置编写到`~/.jarvis/env`文件中。
|
|
124
108
|
|
|
125
|
-
|
|
126
|
-
jarvis-git-details --help
|
|
109
|
+
支持的模型可通过`jarvis-platform-manager --list-models`查看完整列表。
|
|
127
110
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
111
|
+
### 基本使用
|
|
112
|
+
| 命令 | 快捷方式 | 功能描述 |
|
|
113
|
+
|------|----------|----------|
|
|
114
|
+
| `jarvis` | - | 使用通用代理 |
|
|
115
|
+
| `jarvis-code-agent` | `jca` | 使用代码代理 |
|
|
116
|
+
| `jarvis-smart-shell` | `jss` | 使用智能shell功能 |
|
|
117
|
+
| `jarvis-platform-manager` | - | 使用平台管理功能 |
|
|
118
|
+
| `jarvis-code-review` | - | 使用代码审查功能 |
|
|
119
|
+
| `jarvis-git-commit` | `jgc` | 使用自动化git commit功能 |
|
|
120
|
+
| `jarvis-dev` | - | 使用dev功能(开发中) |
|
|
121
|
+
| `jarvis-git-squash` | - | 使用git squash功能 |
|
|
122
|
+
| `jarvis-multi-agent` | - | 使用多代理功能 |
|
|
123
|
+
| `jarvis-agent` | - | 使用agent功能 |
|
|
124
|
+
| `jarvis-tool` | - | 使用工具功能 |
|
|
125
|
+
| `jarvis-ask-codebase` | `jac` | 使用代码库查询功能 |
|
|
126
|
+
| `jarvis-git-details` | - | 使用git details功能 |
|
|
127
|
+
| `jarvis-methodology` | - | 使用方法论功能 |
|
|
131
128
|
|
|
132
129
|
---
|
|
133
130
|
|
|
@@ -8,7 +8,7 @@ default = true
|
|
|
8
8
|
|
|
9
9
|
[project]
|
|
10
10
|
name = "jarvis-ai-assistant"
|
|
11
|
-
version = "0.1.
|
|
11
|
+
version = "0.1.166"
|
|
12
12
|
description = "Jarvis: An AI assistant that uses tools to interact with the system"
|
|
13
13
|
readme = "README.md"
|
|
14
14
|
authors = [{ name = "skyfire", email = "skyfireitdiy@hotmail.com" }]
|
|
@@ -41,6 +41,7 @@ dependencies = [
|
|
|
41
41
|
"python-Levenshtein==0.25.1",
|
|
42
42
|
"sseclient==0.0.27",
|
|
43
43
|
"pillow==10.2.0",
|
|
44
|
+
"openai==1.78.1",
|
|
44
45
|
]
|
|
45
46
|
requires-python = ">=3.8"
|
|
46
47
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
1
2
|
from setuptools import setup, find_packages
|
|
2
3
|
|
|
3
4
|
setup(
|
|
4
5
|
name="jarvis-ai-assistant",
|
|
5
|
-
version="0.1.
|
|
6
|
+
version="0.1.166",
|
|
6
7
|
author="skyfire",
|
|
7
8
|
author_email="skyfireitdiy@hotmail.com",
|
|
8
9
|
description="An AI assistant that uses various tools to interact with the system",
|
|
@@ -12,6 +13,9 @@ setup(
|
|
|
12
13
|
packages=find_packages(where="src"),
|
|
13
14
|
package_dir={"": "src"},
|
|
14
15
|
include_package_data=True,
|
|
16
|
+
package_data={
|
|
17
|
+
"jarvis": ["jarvis_data/huggingface.tar.gz"],
|
|
18
|
+
},
|
|
15
19
|
install_requires=[
|
|
16
20
|
"requests==2.32.3",
|
|
17
21
|
"colorama==0.4.6",
|
|
@@ -28,6 +32,7 @@ setup(
|
|
|
28
32
|
"python-Levenshtein==0.25.1",
|
|
29
33
|
"sseclient==0.0.27",
|
|
30
34
|
"pillow==10.2.0",
|
|
35
|
+
"openai==1.78.1",
|
|
31
36
|
],
|
|
32
37
|
extras_require={
|
|
33
38
|
"dev": ["pytest", "black", "isort", "mypy", "build", "twine"]
|
{jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_agent/__init__.py
RENAMED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
1
2
|
import datetime
|
|
2
3
|
import platform
|
|
3
4
|
from typing import Any, Callable, List, Optional, Tuple, Union
|
|
@@ -309,6 +310,17 @@ class Agent:
|
|
|
309
310
|
"""
|
|
310
311
|
self.after_tool_call_cb = cb
|
|
311
312
|
|
|
313
|
+
def get_tool_registry(self) -> Optional[ToolRegistry]:
|
|
314
|
+
"""获取工具注册器。
|
|
315
|
+
|
|
316
|
+
返回:
|
|
317
|
+
ToolRegistry: 工具注册器实例
|
|
318
|
+
"""
|
|
319
|
+
for handler in self.output_handler:
|
|
320
|
+
if isinstance(handler, ToolRegistry):
|
|
321
|
+
return handler
|
|
322
|
+
return None
|
|
323
|
+
|
|
312
324
|
def make_default_addon_prompt(self, need_complete: bool) -> str:
|
|
313
325
|
"""生成附加提示。
|
|
314
326
|
|
|
@@ -657,7 +669,7 @@ arguments:
|
|
|
657
669
|
msg = user_input
|
|
658
670
|
for handler in self.input_handler:
|
|
659
671
|
msg, _ = handler(msg, self)
|
|
660
|
-
self.prompt = f"{user_input}\n\n以下是历史类似问题的执行经验,可参考:\n{load_methodology(msg)}"
|
|
672
|
+
self.prompt = f"{user_input}\n\n以下是历史类似问题的执行经验,可参考:\n{load_methodology(msg, self.get_tool_registry())}"
|
|
661
673
|
self.first = False
|
|
662
674
|
|
|
663
675
|
while True:
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
1
2
|
"""Jarvis代码代理模块。
|
|
2
3
|
|
|
3
4
|
该模块提供CodeAgent类,用于处理代码修改任务。
|
|
@@ -86,32 +87,10 @@ class CodeAgent:
|
|
|
86
87
|
- 代码阅读:优先使用read_code工具
|
|
87
88
|
- 仅在命令行工具不足时使用专用工具
|
|
88
89
|
|
|
89
|
-
##
|
|
90
|
-
|
|
91
|
-
-
|
|
92
|
-
-
|
|
93
|
-
- 每个搜索文本在文件中必须唯一匹配,确保修改的准确性
|
|
94
|
-
- 为新文件创建时,使用空字符串作为搜索文本,替换文本作为完整内容
|
|
95
|
-
- 保持与原代码完全一致的格式和缩进风格
|
|
96
|
-
|
|
97
|
-
### 文件重写工具使用
|
|
98
|
-
- rewrite_file工具用于完全重写文件内容或创建新文件
|
|
99
|
-
- 当需要替换整个文件内容时,优先使用rewrite_file工具
|
|
100
|
-
- 创建新文件时,使用rewrite_file工具提供完整的文件内容
|
|
101
|
-
- 保持与原代码相同的格式、缩进和编码风格
|
|
102
|
-
- 确保提供格式良好的完整文件内容
|
|
103
|
-
|
|
104
|
-
### 最小补丁原则
|
|
105
|
-
- 对于任何代码修改,只提供需要修改的代码部分,不提供完整文件内容
|
|
106
|
-
- 严格保持原始代码的缩进、空行和格式风格
|
|
107
|
-
- 提供最小必要的上下文,确保修改位置精确
|
|
108
|
-
- 每个修改必须包含清晰的修改理由
|
|
109
|
-
|
|
110
|
-
### 格式兼容要求
|
|
111
|
-
- 保持与原代码相同的缩进方式(空格或制表符)
|
|
112
|
-
- 保持原代码的空行数量和位置
|
|
113
|
-
- 不改变原代码的换行风格
|
|
114
|
-
- 对新文件可提供完整内容,对现有文件只提供差异部分
|
|
90
|
+
## 文件编辑工具使用规范
|
|
91
|
+
- 对于部分文件内容修改,使用edit_file工具
|
|
92
|
+
- 对于需要重写整个文件内容,使用rewrite_file工具
|
|
93
|
+
- 对于简单的修改,可以使用execute_script工具执行shell命令完成
|
|
115
94
|
</code_engineer_guide>
|
|
116
95
|
"""
|
|
117
96
|
# Dynamically add ask_codebase based on task complexity if really needed
|
|
Binary file
|