jarvis-ai-assistant 0.1.75__tar.gz → 0.1.76__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.

Files changed (40) hide show
  1. {jarvis_ai_assistant-0.1.75/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.1.76}/PKG-INFO +1 -1
  2. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/pyproject.toml +1 -1
  3. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/setup.py +1 -1
  4. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/__init__.py +1 -1
  5. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/agent.py +47 -8
  6. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76/src/jarvis_ai_assistant.egg-info}/PKG-INFO +1 -1
  7. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/LICENSE +0 -0
  8. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/MANIFEST.in +0 -0
  9. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/README.md +0 -0
  10. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/setup.cfg +0 -0
  11. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/jarvis_codebase/__init__.py +0 -0
  12. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/jarvis_codebase/main.py +0 -0
  13. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/jarvis_coder/__init__.py +0 -0
  14. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/jarvis_coder/main.py +0 -0
  15. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/main.py +0 -0
  16. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/models/__init__.py +0 -0
  17. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/models/ai8.py +0 -0
  18. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/models/base.py +0 -0
  19. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/models/kimi.py +0 -0
  20. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/models/openai.py +0 -0
  21. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/models/oyi.py +0 -0
  22. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/models/registry.py +0 -0
  23. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/tools/__init__.py +0 -0
  24. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/tools/base.py +0 -0
  25. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/tools/codebase_qa.py +0 -0
  26. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/tools/coder.py +0 -0
  27. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/tools/file_ops.py +0 -0
  28. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/tools/generator.py +0 -0
  29. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/tools/methodology.py +0 -0
  30. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/tools/registry.py +0 -0
  31. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/tools/search.py +0 -0
  32. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/tools/shell.py +0 -0
  33. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/tools/sub_agent.py +0 -0
  34. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/tools/webpage.py +0 -0
  35. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis/utils.py +0 -0
  36. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +0 -0
  37. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
  38. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
  39. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
  40. {jarvis_ai_assistant-0.1.75 → jarvis_ai_assistant-0.1.76}/src/jarvis_ai_assistant.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.1.75
3
+ Version: 0.1.76
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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "jarvis-ai-assistant"
7
- version = "0.1.75"
7
+ version = "0.1.76"
8
8
  description = "Jarvis: An AI assistant that uses tools to interact with the system"
9
9
  readme = "README.md"
10
10
  authors = [{ name = "Your Name", email = "your.email@example.com" }]
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="jarvis-ai-assistant",
5
- version="0.1.75",
5
+ version="0.1.76",
6
6
  author="skyfire",
7
7
  author_email="skyfireitdiy@hotmail.com",
8
8
  description="An AI assistant that uses various tools to interact with the system",
@@ -1,3 +1,3 @@
1
1
  """Jarvis AI Assistant"""
2
2
 
3
- __version__ = "0.1.75"
3
+ __version__ = "0.1.76"
@@ -140,6 +140,7 @@ class Agent:
140
140
 
141
141
  def _load_methodology(self, user_input: str) -> Dict[str, str]:
142
142
  """加载方法论并构建向量索引"""
143
+ PrettyOutput.print("加载方法论...", OutputType.PLANNING)
143
144
  user_jarvis_methodology = os.path.expanduser("~/.jarvis_methodology")
144
145
  if not os.path.exists(user_jarvis_methodology):
145
146
  return {}
@@ -290,6 +291,38 @@ class Agent:
290
291
  self.prompt = summary_prompt
291
292
  return self._call_model(self.prompt)
292
293
 
294
+ def choose_tools(self, user_input: str) -> List[Dict]:
295
+ """根据用户输入选择工具"""
296
+ PrettyOutput.print("选择工具...", OutputType.PLANNING)
297
+ tools = self.tool_registry.get_all_tools()
298
+ prompt = f"""你是一个工具选择专家,请根据用户输入选择合适的工具,返回可能使用到的工具的名称。以下是可用工具:
299
+ """
300
+ for tool in tools:
301
+ prompt += f"- {tool['name']}: {tool['description']}\n"
302
+ prompt += f"用户输入: {user_input}\n"
303
+ prompt += f"请返回可能使用到的工具的名称,如果无法确定,请返回空列表。"
304
+ prompt += f"返回的格式为:\n"
305
+ prompt += f"<TOOL_CHOICE_START>\n"
306
+ prompt += f"tool_name1\n"
307
+ prompt += f"tool_name2\n"
308
+ prompt += f"<TOOL_CHOICE_END>\n"
309
+ model = PlatformRegistry.get_global_platform()
310
+ model.set_suppress_output(True)
311
+ try:
312
+ response = model.chat(prompt)
313
+ response = response.replace("<TOOL_CHOICE_START>", "").replace("<TOOL_CHOICE_END>", "")
314
+ tools_name = response.split("\n")
315
+ choosed_tools = []
316
+ for tool_name in tools_name:
317
+ for tool in tools:
318
+ if tool['name'] == tool_name:
319
+ choosed_tools.append(tool)
320
+ break
321
+ return choosed_tools
322
+ except Exception as e:
323
+ PrettyOutput.print(f"工具选择失败: {str(e)}", OutputType.ERROR)
324
+ return []
325
+
293
326
  def run(self, user_input: str, file_list: Optional[List[str]] = None, keep_history: bool = False) -> str:
294
327
  """处理用户输入并返回响应,返回任务总结报告
295
328
 
@@ -302,6 +335,7 @@ class Agent:
302
335
  str: 任务总结报告
303
336
  """
304
337
  try:
338
+ PrettyOutput.section("准备环境", OutputType.PLANNING)
305
339
  if file_list:
306
340
  self.model.upload_files(file_list)
307
341
 
@@ -313,18 +347,23 @@ class Agent:
313
347
  {methodology}
314
348
 
315
349
  """
350
+ tools_prompt = ""
351
+
352
+ # 选择工具
353
+ tools = self.choose_tools(user_input)
354
+ if tools:
355
+ tools_prompt += "可用工具:\n"
356
+ for tool in tools:
357
+ PrettyOutput.print(f"选择工具: {tool['name']}", OutputType.INFO)
358
+ tools_prompt += f"- 名称: {tool['name']}\n"
359
+ tools_prompt += f" 描述: {tool['description']}\n"
360
+ tools_prompt += f" 参数: {tool['parameters']}\n"
316
361
 
317
- self.clear_history()
318
- self.conversation_turns = 0
319
-
320
362
  # 显示任务开始
321
363
  PrettyOutput.section(f"开始新任务: {self.name}", OutputType.PLANNING)
322
364
 
323
- tools_prompt = "可用工具:\n"
324
- for tool in self.tool_registry.get_all_tools():
325
- tools_prompt += f"- 名称: {tool['name']}\n"
326
- tools_prompt += f" 描述: {tool['description']}\n"
327
- tools_prompt += f" 参数: {tool['parameters']}\n"
365
+ self.clear_history()
366
+ self.conversation_turns = 0
328
367
 
329
368
  self.model.set_system_message(f"""你是 {self.name},一个问题处理能力强大的 AI 助手。
330
369
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.1.75
3
+ Version: 0.1.76
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