jarvis-ai-assistant 0.1.152__py3-none-any.whl → 0.1.153__py3-none-any.whl

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.

@@ -78,6 +78,9 @@ class KimiModel(BasePlatform):
78
78
  }
79
79
  try:
80
80
  response = while_success(lambda: requests.request("POST", url, headers=headers, data=payload), sleep_time=5)
81
+ if response.status_code != 200:
82
+ PrettyOutput.print(f"错误:创建会话失败:{response.json()}", OutputType.ERROR)
83
+ return False
81
84
  self.chat_id = response.json()["id"]
82
85
  return True
83
86
  except Exception as e:
@@ -12,6 +12,11 @@ class WebpageTool:
12
12
  "url": {
13
13
  "type": "string",
14
14
  "description": "要读取的网页URL"
15
+ },
16
+ "want": {
17
+ "type": "string",
18
+ "description": "具体想要从网页获取的信息或回答的问题",
19
+ "default": "请总结这个网页的主要内容"
15
20
  }
16
21
  },
17
22
  "required": ["url"]
@@ -35,14 +40,20 @@ class WebpageTool:
35
40
  """Read webpage content using Yuanbao model"""
36
41
  try:
37
42
  url = args["url"].strip()
43
+ want = args.get("want", "请总结这个网页的主要内容")
38
44
 
39
45
  # Create Yuanbao model instance
40
46
  model = PlatformRegistry().create_platform(self.platform)
41
47
  model.set_suppress_output(False) # type: ignore
42
48
  model.set_model_name(self.model) # type: ignore
43
49
 
44
- # Construct prompt for webpage reading
45
- prompt = f"请帮我读取并总结这个网页的内容:{url}\n请以markdown格式输出,包含标题和主要内容。"
50
+ # Construct prompt based on want parameter
51
+ prompt = f"""请帮我处理这个网页:{url}
52
+ 用户的具体需求是:{want}
53
+ 请按照以下要求输出结果:
54
+ 1. 使用Markdown格式
55
+ 2. 包含网页标题
56
+ 3. 根据用户需求提供准确、完整的信息"""
46
57
 
47
58
  # Get response from Yuanbao model
48
59
  response = model.chat_until_success(prompt) # type: ignore
@@ -24,9 +24,13 @@ from jarvis.jarvis_mcp import McpClient
24
24
 
25
25
 
26
26
  tool_call_help = f"""
27
+ <tool_system_guide>
28
+ <introduction>
27
29
  # 🛠️ 工具使用系统
28
30
  您正在使用一个需要精确格式和严格规则的工具执行系统。
31
+ </introduction>
29
32
 
33
+ <format>
30
34
  # 📋 工具调用格式
31
35
  {ot("TOOL_CALL")}
32
36
  want: 想要从执行结果中获取到的信息,如果工具输出内容过长,会根据此字段尝试提取有效信息
@@ -35,29 +39,41 @@ arguments:
35
39
  param1: 值1
36
40
  param2: 值2
37
41
  {ct("TOOL_CALL")}
42
+ </format>
38
43
 
44
+ <rules>
39
45
  # ❗ 关键规则
40
- 1. 每次只使用一个工具
41
- - 一次只执行一个工具
42
- - 等待结果后再进行下一步
43
-
44
- 2. 严格遵守格式
45
- - 完全按照上述格式
46
- - 使用正确的YAML缩进
47
- - 包含所有必需参数
48
-
49
- 3. 结果处理
50
- - 等待执行结果
51
- - 不要假设结果
52
- - 不要创建虚假响应
53
- - 不要想象对话
54
-
55
- 4. 信息管理
56
- - 如果信息不足,询问用户
57
- - 跳过不必要的步骤
58
- - 如果卡住,请求指导
59
- - 不要在没有完整信息的情况下继续
60
-
46
+ <rule>
47
+ ### 1. 每次只使用一个工具
48
+ - 一次只执行一个工具
49
+ - 等待结果后再进行下一步
50
+ </rule>
51
+
52
+ <rule>
53
+ ### 2. 严格遵守格式
54
+ - 完全按照上述格式
55
+ - 使用正确的YAML缩进
56
+ - 包含所有必需参数
57
+ </rule>
58
+
59
+ <rule>
60
+ ### 3. 结果处理
61
+ - 等待执行结果
62
+ - 不要假设结果
63
+ - 不要创建虚假响应
64
+ - 不要想象对话
65
+ </rule>
66
+
67
+ <rule>
68
+ ### 4. 信息管理
69
+ - 如果信息不足,询问用户
70
+ - 跳过不必要的步骤
71
+ - 如果卡住,请求指导
72
+ - 不要在没有完整信息的情况下继续
73
+ </rule>
74
+ </rules>
75
+
76
+ <string_format>
61
77
  # 📝 字符串参数格式
62
78
  始终使用 | 语法表示字符串参数:
63
79
 
@@ -69,20 +85,26 @@ arguments:
69
85
  script_cotent: |
70
86
  git status --porcelain
71
87
  {ct("TOOL_CALL")}
88
+ </string_format>
72
89
 
90
+ <best_practices>
73
91
  # 💡 最佳实践
74
92
  - 准备好后立即开始执行
75
93
  - 无需请求许可即可开始
76
94
  - 使用正确的字符串格式
77
95
  - 监控进度并调整
78
96
  - 遇到困难时请求帮助
97
+ </best_practices>
79
98
 
99
+ <common_errors>
80
100
  # ⚠️ 常见错误
81
101
  - 同时调用多个工具
82
102
  - 字符串参数缺少 |
83
103
  - 假设工具结果
84
104
  - 创建虚构对话
85
105
  - 在没有所需信息的情况下继续
106
+ </common_errors>
107
+ </tool_system_guide>
86
108
  """
87
109
 
88
110
 
@@ -98,12 +120,16 @@ class ToolRegistry(OutputHandler):
98
120
  """加载工具"""
99
121
  tools = self.get_all_tools()
100
122
  if tools:
101
- tools_prompt = "## 可用工具:\n"
123
+ tools_prompt = "<tools_section>\n"
124
+ tools_prompt += " <header>## 可用工具:</header>\n"
125
+ tools_prompt += " <tools_list>\n"
102
126
  for tool in tools:
103
127
  try:
104
- tools_prompt += f"- 名称: {tool['name']}\n"
105
- tools_prompt += f" 描述: {tool['description']}\n"
106
- tools_prompt += " 参数: |\n"
128
+ tools_prompt += " <tool>\n"
129
+ tools_prompt += f" <name>名称: {tool['name']}</name>\n"
130
+ tools_prompt += f" <description>描述: {tool['description']}</description>\n"
131
+ tools_prompt += " <parameters>\n"
132
+ tools_prompt += " <yaml>|\n"
107
133
 
108
134
  # 生成格式化的YAML参数
109
135
  yaml_params = yaml.dump(
@@ -116,7 +142,11 @@ class ToolRegistry(OutputHandler):
116
142
 
117
143
  # 添加缩进并移除尾部空格
118
144
  for line in yaml_params.split("\n"):
119
- tools_prompt += f" {line.rstrip()}\n"
145
+ tools_prompt += f" {line.rstrip()}\n"
146
+
147
+ tools_prompt += " </yaml>\n"
148
+ tools_prompt += " </parameters>\n"
149
+ tools_prompt += " </tool>\n"
120
150
 
121
151
  except yaml.YAMLError as e:
122
152
  PrettyOutput.print(
@@ -125,6 +155,8 @@ class ToolRegistry(OutputHandler):
125
155
  )
126
156
  continue
127
157
 
158
+ tools_prompt += " </tools_list>\n"
159
+ tools_prompt += "</tools_section>\n"
128
160
  tools_prompt += tool_call_help.rstrip() # 移除帮助文本尾部空格
129
161
  return tools_prompt
130
162
  return ""
@@ -141,7 +141,15 @@ def load_methodology(user_input: str) -> str:
141
141
 
142
142
  platform.set_suppress_output(False)
143
143
  # 构建提示信息
144
- prompt = f"""根据用户需求和已有的方法论内容,总结出与该任务/需求相关的方法论: {user_input}
144
+ prompt = f"""以下是所有可用的方法论内容:
145
+
146
+ """
147
+ if not upload_result:
148
+ for problem_type, content in methodologies.items():
149
+ prompt += f"## {problem_type}\n\n{content}\n\n---\n\n"
150
+
151
+ prompt += f"""
152
+ 请根据以上方法论内容,总结出与以下用户需求相关的方法论: {user_input}
145
153
 
146
154
  请按以下格式回复:
147
155
  ### 与该任务/需求相关的方法论
@@ -153,12 +161,6 @@ def load_methodology(user_input: str) -> str:
153
161
  如果没有匹配的方法论,请输出:没有历史方法论可参考
154
162
  除以上要求外,不要输出任何内容
155
163
  """
156
- if not upload_result:
157
- prompt += f"""
158
- # 方法论内容
159
- """
160
- for problem_type, content in methodologies.items():
161
- prompt += f"## {problem_type}\n\n{content}\n\n---\n\n"
162
164
  return platform.chat_until_success(prompt)
163
165
 
164
166
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.1.152
3
+ Version: 0.1.153
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
@@ -54,7 +54,7 @@ Requires-Dist: transformers==4.46.3
54
54
  Requires-Dist: torch==2.4.1
55
55
  Requires-Dist: python-Levenshtein==0.25.1
56
56
  Requires-Dist: sseclient==0.0.27
57
- Requires-Dist: pillow==10.2.1
57
+ Requires-Dist: pillow==10.2.0
58
58
  Provides-Extra: dev
59
59
  Requires-Dist: pytest; extra == "dev"
60
60
  Requires-Dist: black; extra == "dev"
@@ -1,15 +1,15 @@
1
- jarvis/__init__.py,sha256=tsvFvhy5rydxyl_d92GGD4EZIoZ_0NHYhtgTGOJ2GZk,50
2
- jarvis/jarvis_agent/__init__.py,sha256=LeFNTT1Mzc-PH_bNQ7KRbvBowfQifEQc-Moiun85_9Q,24000
1
+ jarvis/__init__.py,sha256=5T6GkmamWNQXuq2roC5vVce17HvPxxdE7fXIumuzKUs,50
2
+ jarvis/jarvis_agent/__init__.py,sha256=tUAN3G-nT7pJj5MTcUSTo5WN9AmsIA4M0Tym8aKxdTg,25338
3
3
  jarvis/jarvis_agent/builtin_input_handler.py,sha256=0SjlBYnBWKNi3eVdZ7c2NuP82tQej7DEWLAqG6bY1Rc,4357
4
- jarvis/jarvis_agent/file_input_handler.py,sha256=6R68cSjLBnSJjTKJrSO2IqziRDFnxazU_Jq2t1W1ndo,3695
5
- jarvis/jarvis_agent/jarvis.py,sha256=-Q-h1M4dgElFnoA2B9H3r0LmnQdoPfiy2JPXzNNihBQ,5155
4
+ jarvis/jarvis_agent/file_input_handler.py,sha256=auBbBfS4Ux5ksczeRe9LtsmMm4hKrPxinW5leE9Rtyc,3575
5
+ jarvis/jarvis_agent/jarvis.py,sha256=YZCDlUk2UpSvkeEZWhBmDi0Av6HPsZBn8gLWb_WPeKM,5661
6
6
  jarvis/jarvis_agent/main.py,sha256=Jlw_Tofh2C-sMVnkeOZBrwWJOWNH3IhsKDUn-WBlgU8,2602
7
7
  jarvis/jarvis_agent/output_handler.py,sha256=4limQ-Kf-YYvQjT5SMjJIyyvD1DVG8tINv1A_qbv4ho,405
8
- jarvis/jarvis_agent/patch.py,sha256=nhfAVHhSm4PWBMd_B9eeaUdnGDpryWTrGiJ7rMqvJ5g,22504
8
+ jarvis/jarvis_agent/patch.py,sha256=Ok_WZo8Zn4b8wKOZmB2uUdmuAgJcBt21FdmARbNy0Og,22506
9
9
  jarvis/jarvis_agent/shell_input_handler.py,sha256=9IoGQCe6FF4HA2V5S11q63AtnWDZFpNeRd3hcqCAlBw,1237
10
10
  jarvis/jarvis_code_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- jarvis/jarvis_code_agent/code_agent.py,sha256=XlPa764dXbHkTxs1ByG9G-2K7_NRtmogHJhTFM_Hd_k,13117
12
- jarvis/jarvis_code_analysis/code_review.py,sha256=9H0Jt0SwdDs9qdE4UALYw6Zp6SyWxmAUyXj6yXrMnIU,29267
11
+ jarvis/jarvis_code_agent/code_agent.py,sha256=ai654PtvyKxlPXwQYK8qJdPRnVW4yvrcFyXQE7t2SLo,13510
12
+ jarvis/jarvis_code_analysis/code_review.py,sha256=7CMNct8Rqqsycn2-ZJrfVcM2Oz3r06CR_Hqci4LAX70,29830
13
13
  jarvis/jarvis_code_analysis/checklists/__init__.py,sha256=PCjlyxLa939613cAzS7pfEPgP57setO-1RvcdzzPivw,54
14
14
  jarvis/jarvis_code_analysis/checklists/c_cpp.py,sha256=8lfWmhImAxeTBdHPOgVXDjMllaq280Qki1ZOOSDBnvk,1293
15
15
  jarvis/jarvis_code_analysis/checklists/csharp.py,sha256=fg35Iima2nIsirEmAjianfAybVjwRYml9BtbSQFff7w,2396
@@ -30,7 +30,7 @@ jarvis/jarvis_code_analysis/checklists/shell.py,sha256=UBtGhi3d5sIhyUSGmDckYOXwp
30
30
  jarvis/jarvis_code_analysis/checklists/sql.py,sha256=-bGfYhaFJyHrbcJrUMbkMyPCNVbk8UljNqebqVJJKxM,2331
31
31
  jarvis/jarvis_code_analysis/checklists/swift.py,sha256=d-zPPbM_J1G8fgZ2M2-ASQbIxEocsdL1owL4Z2PCnOc,2542
32
32
  jarvis/jarvis_code_analysis/checklists/web.py,sha256=phdvLGqRHNijA0OyEwVtgHgz1Hi4ldtJJscOhEQvbSQ,3919
33
- jarvis/jarvis_dev/main.py,sha256=Rl2COZqMUds-SFyjrroLPfs056gtwTcIliMTJhrtWnM,27751
33
+ jarvis/jarvis_dev/main.py,sha256=Ew4cm9o01OkSvHeF2Ky73T10gdp205pEyh2l5fWKT2M,42620
34
34
  jarvis/jarvis_git_details/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
35
  jarvis/jarvis_git_details/main.py,sha256=YowncVxYyJ3y2EvGrZhAJeR4yizXp6aB3dqvoYTepFY,6117
36
36
  jarvis/jarvis_git_squash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -50,7 +50,7 @@ jarvis/jarvis_multi_agent/__init__.py,sha256=SX8lBErhltKyYRM-rymrMz3sJ0Zl3hBXrps
50
50
  jarvis/jarvis_multi_agent/main.py,sha256=aGuUC3YQmahabqwDwZXJjfQLYsZ3KIZdf8DZDlVNMe4,1543
51
51
  jarvis/jarvis_platform/__init__.py,sha256=WIJtD5J7lOrWLX2bsgZGkmlMcN0NOJsnh_reybmHPjg,58
52
52
  jarvis/jarvis_platform/base.py,sha256=bihlnM5PowzKhi3dbxUp_eHOA14MLrHAbs_DXLe0s0g,3228
53
- jarvis/jarvis_platform/kimi.py,sha256=Bfm4SLELVkVQBoGqapokX41m5VojyHvQ6LRLIDhg_z4,16519
53
+ jarvis/jarvis_platform/kimi.py,sha256=h1BP0vey30upZ9g-b8pU87rQGd3fHcgAQo_51Nv9DZY,16697
54
54
  jarvis/jarvis_platform/registry.py,sha256=wvXTKXqAoW6GPaLKCPYhRB9QhVe1xfoVbVPBZAxl_uA,7716
55
55
  jarvis/jarvis_platform/yuanbao.py,sha256=X2lYZ3SxBzdaCwd5ooq9fxYbu14RUpeDILYg0W5W7Xc,21902
56
56
  jarvis/jarvis_platform_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -72,8 +72,8 @@ jarvis/jarvis_tools/find_methodology.py,sha256=FnvjWt4Za2P9B_oDPSOqkotuaQFbgjM9W
72
72
  jarvis/jarvis_tools/lsp_get_diagnostics.py,sha256=IYqv8jQwSK71sZpDBRolSDnYii8t0M7fzLthhMYTeGk,5322
73
73
  jarvis/jarvis_tools/methodology.py,sha256=gnlJojY4Dg5v9AAB5xcpKqpPIHs0tOYVtzTHkwOrWk0,5214
74
74
  jarvis/jarvis_tools/read_code.py,sha256=_X6D3AIgRD9YplSDnFhXOm8wQAZMA3pkkXy31SG33l0,6041
75
- jarvis/jarvis_tools/read_webpage.py,sha256=syduSZK4kXRRTPzeZ2W9Q6YH5umKiMJZyjA0cCpSF4g,2198
76
- jarvis/jarvis_tools/registry.py,sha256=qw9uxfosqjFM1H-i6L4kpgkwK_wNlQjUHmVSP8XxUMU,24821
75
+ jarvis/jarvis_tools/read_webpage.py,sha256=2QF0zAyApl0bOr9604aml_uuqBZcPefVuHvRfWzrnzk,2598
76
+ jarvis/jarvis_tools/registry.py,sha256=2oM5_P25rMQyieTKmld0bJZqa4Yj93vV8CqJBw0JArg,25615
77
77
  jarvis/jarvis_tools/search_web.py,sha256=kWW9K2QUR2AxPq6gcyx4Bgy-0Y4gzcdErq1DNT1EYM4,1333
78
78
  jarvis/jarvis_tools/virtual_tty.py,sha256=Rpn9VXUG17LQsY87F_O6UCjN_opXB05mpwozxYf-xVI,16372
79
79
  jarvis/jarvis_utils/__init__.py,sha256=KMg-KY5rZIhGTeOD5e2Xo5CU7DX1DUz4ULWAaTQ-ZNw,825
@@ -83,12 +83,12 @@ jarvis/jarvis_utils/file_processors.py,sha256=oNtVlz2JHcQ60NS6sgI-VsvYXOnsQgFUEV
83
83
  jarvis/jarvis_utils/git_utils.py,sha256=j_Jw6h7JD91XhMf0WD3MAH4URkLUBrrYCLnuLm1GeN4,5630
84
84
  jarvis/jarvis_utils/globals.py,sha256=Ed2d6diWXCgI74HVV_tI4qW7yXxLpNvQKN2yG0IH9hc,3388
85
85
  jarvis/jarvis_utils/input.py,sha256=QhqZEF4BpOGDgNEBrTBabA5n8DnlU0GaHqbKUEZ13Ls,6953
86
- jarvis/jarvis_utils/methodology.py,sha256=Q2ldjarnZLU9dBY-i2hOP1WL0SOa8VX_uxNEwE422TY,6400
86
+ jarvis/jarvis_utils/methodology.py,sha256=XayEVGXP5RfDBWj4bMOVFWplyrSp4GsXHwOTWoR4BLk,6418
87
87
  jarvis/jarvis_utils/output.py,sha256=BmWdB1bmizv0xfU4Z___9p_xQodorriIcEgADVq9fk0,8416
88
88
  jarvis/jarvis_utils/utils.py,sha256=j-YZap58avAzSb9ZuB2I71trVqVxIpFxxZDoh8_7a_o,4653
89
- jarvis_ai_assistant-0.1.152.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
90
- jarvis_ai_assistant-0.1.152.dist-info/METADATA,sha256=px1hZu22QjDeJXmG5oKS2quEvDgShgOhUAWL8kybgnM,11562
91
- jarvis_ai_assistant-0.1.152.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
92
- jarvis_ai_assistant-0.1.152.dist-info/entry_points.txt,sha256=4ZS8kq6jahnmfDyXFSx39HRi-Tkbp0uFc6cTXt3QIHA,929
93
- jarvis_ai_assistant-0.1.152.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
94
- jarvis_ai_assistant-0.1.152.dist-info/RECORD,,
89
+ jarvis_ai_assistant-0.1.153.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
90
+ jarvis_ai_assistant-0.1.153.dist-info/METADATA,sha256=_sU90jRsoSsIXP-TMiGWQpaa3eyMt4cejKyCREY_MT0,11562
91
+ jarvis_ai_assistant-0.1.153.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
92
+ jarvis_ai_assistant-0.1.153.dist-info/entry_points.txt,sha256=4ZS8kq6jahnmfDyXFSx39HRi-Tkbp0uFc6cTXt3QIHA,929
93
+ jarvis_ai_assistant-0.1.153.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
94
+ jarvis_ai_assistant-0.1.153.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (79.0.0)
2
+ Generator: setuptools (79.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5