jarvis-ai-assistant 0.1.189__tar.gz → 0.1.191__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.
- {jarvis_ai_assistant-0.1.189/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.1.191}/PKG-INFO +62 -3
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/README.md +61 -2
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/pyproject.toml +1 -1
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/setup.py +1 -1
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/__init__.py +1 -1
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_agent/__init__.py +11 -39
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_agent/jarvis.py +0 -2
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_git_utils/git_commiter.py +1 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_platform/base.py +11 -6
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_platform/human.py +1 -1
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_platform/kimi.py +1 -1
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_platform/openai.py +1 -1
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_platform/registry.py +1 -1
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_platform/tongyi.py +1 -1
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_platform/yuanbao.py +1 -1
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_platform_manager/main.py +283 -125
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_smart_shell/main.py +1 -1
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/file_analyzer.py +1 -1
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/generate_new_tool.py +88 -40
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/registry.py +5 -3
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_utils/globals.py +45 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_utils/utils.py +16 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191/src/jarvis_ai_assistant.egg-info}/PKG-INFO +62 -3
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/LICENSE +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/MANIFEST.in +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/setup.cfg +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_agent/builtin_input_handler.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_agent/file_input_handler.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_agent/main.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_agent/output_handler.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_agent/code_agent.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_agent/lint.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_code_analysis/code_review.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_data/config_schema.json +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_data/huggingface.tar.gz +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_dev/main.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_event/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_git_details/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_git_details/main.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_git_squash/main.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_mcp/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_mcp/sse_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_methodology/main.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_multi_agent/main.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_platform/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/ask_user.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/base.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/chdir.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/cli/main.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/code_plan.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/create_code_agent.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/create_sub_agent.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/edit_file.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/execute_script.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/file_operation.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/methodology.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/read_code.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/rewrite_file.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/search_web.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_tools/virtual_tty.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_utils/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_utils/config.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_utils/embedding.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_utils/file_processors.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_utils/git_utils.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_utils/input.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_utils/methodology.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_utils/output.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_utils/tag.py +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
- {jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/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.191
|
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
|
@@ -113,6 +113,18 @@ pip3 install -e .
|
|
113
113
|
pip3 install jarvis-ai-assistant
|
114
114
|
```
|
115
115
|
|
116
|
+
### 预定义任务(pre-command)
|
117
|
+
|
118
|
+
您可以创建预定义任务文件来快速执行常用命令:
|
119
|
+
|
120
|
+
1. 在`~/.jarvis/pre-command`或当前目录的`.jarvis/pre-command`文件中定义任务
|
121
|
+
2. 使用YAML格式定义任务,例如:
|
122
|
+
```yaml
|
123
|
+
build: "构建项目并运行测试"
|
124
|
+
deploy: "部署应用到生产环境"
|
125
|
+
```
|
126
|
+
3. 运行`jarvis`命令时会自动加载这些任务并提示选择执行
|
127
|
+
|
116
128
|
### 最小化配置
|
117
129
|
|
118
130
|
将以下配置写入到`~/.jarvis/config.yaml`文件中。
|
@@ -215,10 +227,57 @@ OPENAI_API_BASE: https://api.openai.com/v1 # 可选,默认为官方API地址
|
|
215
227
|
| `jarvis-multi-agent` | - | 使用多代理功能 |
|
216
228
|
| `jarvis-agent` | - | 使用agent功能 |
|
217
229
|
| `jarvis-tool` | - | 使用工具功能 |
|
218
|
-
| `jarvis-ask-codebase` | `jac` | 使用代码库查询功能 |
|
219
230
|
| `jarvis-git-details` | - | 使用git details功能 |
|
220
231
|
| `jarvis-methodology` | - | 使用方法论功能 |
|
221
232
|
|
233
|
+
## 🏗️ 平台管理功能
|
234
|
+
|
235
|
+
`jarvis-platform-manager` 提供以下子命令来管理AI平台和模型:
|
236
|
+
|
237
|
+
### 1. 列出支持的平台和模型
|
238
|
+
```bash
|
239
|
+
jarvis-platform-manager info
|
240
|
+
```
|
241
|
+
显示所有支持的AI平台及其可用模型列表。
|
242
|
+
|
243
|
+
### 2. 与指定平台和模型聊天
|
244
|
+
```bash
|
245
|
+
jarvis-platform-manager chat -p <平台名称> -m <模型名称>
|
246
|
+
```
|
247
|
+
启动交互式聊天会话,支持以下命令:
|
248
|
+
- `/bye` - 退出聊天
|
249
|
+
- `/clear` - 清除当前会话
|
250
|
+
- `/upload <文件路径>` - 上传文件到当前会话
|
251
|
+
- `/shell <命令>` - 执行shell命令
|
252
|
+
- `/save <文件名>` - 保存最后一条消息
|
253
|
+
- `/saveall <文件名>` - 保存完整对话历史
|
254
|
+
|
255
|
+
### 3. 启动OpenAI兼容的API服务
|
256
|
+
```bash
|
257
|
+
jarvis-platform-manager service --host <IP地址> --port <端口号> -p <平台名称> -m <模型名称>
|
258
|
+
```
|
259
|
+
启动一个兼容OpenAI API的服务,可用于其他应用程序集成。
|
260
|
+
|
261
|
+
### 4. 加载角色配置文件
|
262
|
+
```bash
|
263
|
+
jarvis-platform-manager role -c <配置文件路径>
|
264
|
+
```
|
265
|
+
从YAML配置文件加载预定义角色进行对话。配置文件格式示例:
|
266
|
+
```yaml
|
267
|
+
roles:
|
268
|
+
- name: "代码助手"
|
269
|
+
description: "专注于代码分析和生成的AI助手"
|
270
|
+
platform: "yuanbao"
|
271
|
+
model: "deep_seek_v3"
|
272
|
+
system_prompt: "你是一个专业的代码助手,专注于分析和生成高质量的代码"
|
273
|
+
- name: "文档撰写"
|
274
|
+
description: "帮助撰写技术文档的AI助手"
|
275
|
+
platform: "kimi"
|
276
|
+
model: "k1"
|
277
|
+
system_prompt: "你是一个技术文档撰写专家,擅长将复杂技术概念转化为清晰易懂的文字"
|
278
|
+
```
|
279
|
+
|
280
|
+
|
222
281
|
---
|
223
282
|
|
224
283
|
## ⚙️ 配置说明 <a id="configuration"></a>
|
@@ -417,7 +476,7 @@ class CustomPlatform(BasePlatform):
|
|
417
476
|
# 设置模型名称
|
418
477
|
pass
|
419
478
|
|
420
|
-
def
|
479
|
+
def set_system_prompt(self, message: str):
|
421
480
|
# 设置系统消息
|
422
481
|
pass
|
423
482
|
|
@@ -43,6 +43,18 @@ pip3 install -e .
|
|
43
43
|
pip3 install jarvis-ai-assistant
|
44
44
|
```
|
45
45
|
|
46
|
+
### 预定义任务(pre-command)
|
47
|
+
|
48
|
+
您可以创建预定义任务文件来快速执行常用命令:
|
49
|
+
|
50
|
+
1. 在`~/.jarvis/pre-command`或当前目录的`.jarvis/pre-command`文件中定义任务
|
51
|
+
2. 使用YAML格式定义任务,例如:
|
52
|
+
```yaml
|
53
|
+
build: "构建项目并运行测试"
|
54
|
+
deploy: "部署应用到生产环境"
|
55
|
+
```
|
56
|
+
3. 运行`jarvis`命令时会自动加载这些任务并提示选择执行
|
57
|
+
|
46
58
|
### 最小化配置
|
47
59
|
|
48
60
|
将以下配置写入到`~/.jarvis/config.yaml`文件中。
|
@@ -145,10 +157,57 @@ OPENAI_API_BASE: https://api.openai.com/v1 # 可选,默认为官方API地址
|
|
145
157
|
| `jarvis-multi-agent` | - | 使用多代理功能 |
|
146
158
|
| `jarvis-agent` | - | 使用agent功能 |
|
147
159
|
| `jarvis-tool` | - | 使用工具功能 |
|
148
|
-
| `jarvis-ask-codebase` | `jac` | 使用代码库查询功能 |
|
149
160
|
| `jarvis-git-details` | - | 使用git details功能 |
|
150
161
|
| `jarvis-methodology` | - | 使用方法论功能 |
|
151
162
|
|
163
|
+
## 🏗️ 平台管理功能
|
164
|
+
|
165
|
+
`jarvis-platform-manager` 提供以下子命令来管理AI平台和模型:
|
166
|
+
|
167
|
+
### 1. 列出支持的平台和模型
|
168
|
+
```bash
|
169
|
+
jarvis-platform-manager info
|
170
|
+
```
|
171
|
+
显示所有支持的AI平台及其可用模型列表。
|
172
|
+
|
173
|
+
### 2. 与指定平台和模型聊天
|
174
|
+
```bash
|
175
|
+
jarvis-platform-manager chat -p <平台名称> -m <模型名称>
|
176
|
+
```
|
177
|
+
启动交互式聊天会话,支持以下命令:
|
178
|
+
- `/bye` - 退出聊天
|
179
|
+
- `/clear` - 清除当前会话
|
180
|
+
- `/upload <文件路径>` - 上传文件到当前会话
|
181
|
+
- `/shell <命令>` - 执行shell命令
|
182
|
+
- `/save <文件名>` - 保存最后一条消息
|
183
|
+
- `/saveall <文件名>` - 保存完整对话历史
|
184
|
+
|
185
|
+
### 3. 启动OpenAI兼容的API服务
|
186
|
+
```bash
|
187
|
+
jarvis-platform-manager service --host <IP地址> --port <端口号> -p <平台名称> -m <模型名称>
|
188
|
+
```
|
189
|
+
启动一个兼容OpenAI API的服务,可用于其他应用程序集成。
|
190
|
+
|
191
|
+
### 4. 加载角色配置文件
|
192
|
+
```bash
|
193
|
+
jarvis-platform-manager role -c <配置文件路径>
|
194
|
+
```
|
195
|
+
从YAML配置文件加载预定义角色进行对话。配置文件格式示例:
|
196
|
+
```yaml
|
197
|
+
roles:
|
198
|
+
- name: "代码助手"
|
199
|
+
description: "专注于代码分析和生成的AI助手"
|
200
|
+
platform: "yuanbao"
|
201
|
+
model: "deep_seek_v3"
|
202
|
+
system_prompt: "你是一个专业的代码助手,专注于分析和生成高质量的代码"
|
203
|
+
- name: "文档撰写"
|
204
|
+
description: "帮助撰写技术文档的AI助手"
|
205
|
+
platform: "kimi"
|
206
|
+
model: "k1"
|
207
|
+
system_prompt: "你是一个技术文档撰写专家,擅长将复杂技术概念转化为清晰易懂的文字"
|
208
|
+
```
|
209
|
+
|
210
|
+
|
152
211
|
---
|
153
212
|
|
154
213
|
## ⚙️ 配置说明 <a id="configuration"></a>
|
@@ -347,7 +406,7 @@ class CustomPlatform(BasePlatform):
|
|
347
406
|
# 设置模型名称
|
348
407
|
pass
|
349
408
|
|
350
|
-
def
|
409
|
+
def set_system_prompt(self, message: str):
|
351
410
|
# 设置系统消息
|
352
411
|
pass
|
353
412
|
|
@@ -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.191"
|
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" }]
|
@@ -3,7 +3,7 @@ from setuptools import setup, find_packages
|
|
3
3
|
|
4
4
|
setup(
|
5
5
|
name="jarvis-ai-assistant",
|
6
|
-
version="0.1.
|
6
|
+
version="0.1.191",
|
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",
|
{jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_agent/__init__.py
RENAMED
@@ -19,8 +19,8 @@ from jarvis.jarvis_utils.config import (get_max_token_count,
|
|
19
19
|
is_execute_tool_confirm,
|
20
20
|
is_use_analysis, is_use_methodology)
|
21
21
|
from jarvis.jarvis_utils.embedding import get_context_token_count
|
22
|
-
from jarvis.jarvis_utils.globals import (delete_agent, make_agent_name,
|
23
|
-
set_agent)
|
22
|
+
from jarvis.jarvis_utils.globals import (delete_agent, get_interrupt, make_agent_name,
|
23
|
+
set_agent, set_interrupt)
|
24
24
|
from jarvis.jarvis_utils.input import get_multiline_input
|
25
25
|
from jarvis.jarvis_utils.methodology import (load_methodology,
|
26
26
|
upload_methodology)
|
@@ -319,7 +319,7 @@ class Agent:
|
|
319
319
|
</actions>
|
320
320
|
"""
|
321
321
|
|
322
|
-
self.model.
|
322
|
+
self.model.set_system_prompt(
|
323
323
|
f"""
|
324
324
|
{self.system_prompt}
|
325
325
|
|
@@ -371,40 +371,6 @@ class Agent:
|
|
371
371
|
return handler
|
372
372
|
return None
|
373
373
|
|
374
|
-
def make_default_addon_prompt(self, need_complete: bool) -> str:
|
375
|
-
"""生成附加提示。
|
376
|
-
|
377
|
-
参数:
|
378
|
-
need_complete: 是否需要完成任务
|
379
|
-
|
380
|
-
"""
|
381
|
-
# 结构化系统指令
|
382
|
-
action_handlers = ", ".join([handler.name() for handler in self.output_handler])
|
383
|
-
|
384
|
-
# 任务完成提示
|
385
|
-
complete_prompt = (
|
386
|
-
f"- 输出{ot('!!!COMPLETE!!!')}"
|
387
|
-
if need_complete and self.auto_complete
|
388
|
-
else ""
|
389
|
-
)
|
390
|
-
|
391
|
-
addon_prompt = f"""
|
392
|
-
<system_prompt>
|
393
|
-
请判断是否已经完成任务,如果已经完成:
|
394
|
-
- 直接输出完成原因,不需要再有新的操作,不要输出{ot("TOOL_CALL")}标签
|
395
|
-
{complete_prompt}
|
396
|
-
如果没有完成,请进行下一步操作:
|
397
|
-
- 仅包含一个操作
|
398
|
-
- 如果信息不明确,请请求用户补充
|
399
|
-
- 如果执行过程中连续失败5次,请使用ask_user询问用户操作
|
400
|
-
- 操作列表:{action_handlers}
|
401
|
-
</system_prompt>
|
402
|
-
|
403
|
-
请继续。
|
404
|
-
"""
|
405
|
-
|
406
|
-
return addon_prompt
|
407
|
-
|
408
374
|
def _call_model(self, message: str, need_complete: bool = False) -> str:
|
409
375
|
"""调用AI模型并实现重试逻辑
|
410
376
|
|
@@ -429,8 +395,6 @@ class Agent:
|
|
429
395
|
if self.addon_prompt:
|
430
396
|
message += f"\n\n{self.addon_prompt}"
|
431
397
|
self.addon_prompt = ""
|
432
|
-
else:
|
433
|
-
message += f"\n\n{self.make_default_addon_prompt(need_complete)}"
|
434
398
|
|
435
399
|
# 累加对话长度
|
436
400
|
self.conversation_length += get_context_token_count(message)
|
@@ -812,6 +776,14 @@ arguments:
|
|
812
776
|
if self.after_tool_call_cb:
|
813
777
|
self.after_tool_call_cb(self)
|
814
778
|
|
779
|
+
if get_interrupt():
|
780
|
+
set_interrupt(False)
|
781
|
+
user_input = self.multiline_inputer(
|
782
|
+
f"模型交互期间被中断,请输入用户干预信息:"
|
783
|
+
)
|
784
|
+
if user_input:
|
785
|
+
self.prompt += f"\n\n用户干预信息:{user_input}"
|
786
|
+
|
815
787
|
if self.prompt or self.addon_prompt:
|
816
788
|
continue
|
817
789
|
|
@@ -77,6 +77,7 @@ class GitCommitTool:
|
|
77
77
|
def execute(self, args: Dict) -> Dict[str, Any]:
|
78
78
|
"""Execute automatic commit process with support for multi-line messages and special characters"""
|
79
79
|
try:
|
80
|
+
original_dir = os.getcwd()
|
80
81
|
root_dir = args.get("root_dir", ".")
|
81
82
|
prefix = args.get("prefix", "")
|
82
83
|
suffix = args.get("suffix", "")
|
{jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_platform/base.py
RENAMED
@@ -12,6 +12,7 @@ from yaspin import yaspin
|
|
12
12
|
from jarvis.jarvis_utils.config import (get_max_input_token_count,
|
13
13
|
get_pretty_output, is_print_prompt)
|
14
14
|
from jarvis.jarvis_utils.embedding import split_text_into_chunks
|
15
|
+
from jarvis.jarvis_utils.globals import set_in_chat
|
15
16
|
from jarvis.jarvis_utils.output import OutputType, PrettyOutput
|
16
17
|
from jarvis.jarvis_utils.tag import ct, ot
|
17
18
|
from jarvis.jarvis_utils.utils import (get_context_token_count,
|
@@ -128,10 +129,14 @@ class BasePlatform(ABC):
|
|
128
129
|
|
129
130
|
def chat_until_success(self, message: str) -> str:
|
130
131
|
"""Chat with model until successful response"""
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
132
|
+
try:
|
133
|
+
set_in_chat(True)
|
134
|
+
if not self.suppress_output and is_print_prompt():
|
135
|
+
PrettyOutput.print(f"{message}", OutputType.USER)
|
136
|
+
result: str = while_true(lambda: while_success(lambda: self._chat(message), 5), 5)
|
137
|
+
return result
|
138
|
+
finally:
|
139
|
+
set_in_chat(False)
|
135
140
|
|
136
141
|
@abstractmethod
|
137
142
|
def name(self) -> str:
|
@@ -144,9 +149,9 @@ class BasePlatform(ABC):
|
|
144
149
|
raise NotImplementedError("delete_chat is not implemented")
|
145
150
|
|
146
151
|
@abstractmethod
|
147
|
-
def
|
152
|
+
def set_system_prompt(self, message: str):
|
148
153
|
"""Set system message"""
|
149
|
-
raise NotImplementedError("
|
154
|
+
raise NotImplementedError("set_system_prompt is not implemented")
|
150
155
|
|
151
156
|
@abstractmethod
|
152
157
|
def get_model_list(self) -> List[Tuple[str, str]]:
|
{jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_platform/registry.py
RENAMED
@@ -16,7 +16,7 @@ REQUIRED_METHODS = [
|
|
16
16
|
('chat', ['message']), # 方法名和参数列表
|
17
17
|
('name', []),
|
18
18
|
('delete_chat', []),
|
19
|
-
('
|
19
|
+
('set_system_prompt', ['message']),
|
20
20
|
('set_model_name', ['model_name']),
|
21
21
|
('get_model_list', []),
|
22
22
|
('upload_files', ['file_list']),
|
{jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_platform/tongyi.py
RENAMED
@@ -493,7 +493,7 @@ class TongyiPlatform(BasePlatform):
|
|
493
493
|
PrettyOutput.print(f"Error deleting chat: {str(e)}", OutputType.ERROR)
|
494
494
|
return False
|
495
495
|
|
496
|
-
def
|
496
|
+
def set_system_prompt(self, message: str):
|
497
497
|
"""Set system message
|
498
498
|
|
499
499
|
Args:
|
{jarvis_ai_assistant-0.1.189 → jarvis_ai_assistant-0.1.191}/src/jarvis/jarvis_platform/yuanbao.py
RENAMED
@@ -45,7 +45,7 @@ class YuanbaoPlatform(BasePlatform):
|
|
45
45
|
self.model_name = "deep_seek_v3" # 默认模型名称,使用下划线保持一致
|
46
46
|
self.multimedia = []
|
47
47
|
|
48
|
-
def
|
48
|
+
def set_system_prompt(self, message: str):
|
49
49
|
"""设置系统消息"""
|
50
50
|
self.system_message = message
|
51
51
|
|