jarvis-ai-assistant 0.1.47__py3-none-any.whl → 0.1.48__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.
jarvis/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """Jarvis AI Assistant"""
2
2
 
3
- __version__ = "0.1.47"
3
+ __version__ = "0.1.48"
jarvis/main.py CHANGED
@@ -104,6 +104,7 @@ def main():
104
104
  parser.add_argument('-f', '--files', nargs='*', help='要处理的文件列表')
105
105
  parser.add_argument('--keep-history', action='store_true', help='保持聊天历史(不删除会话)')
106
106
  parser.add_argument('-p', '--platform', default='', help='选择AI平台')
107
+ parser.add_argument('-m', '--model', default='', help='模型') # 用于指定使用的模型名称,默认使用环境变量或平台默认模型
107
108
  args = parser.parse_args()
108
109
 
109
110
  load_env_from_file()
@@ -120,6 +121,11 @@ def main():
120
121
  # 获取全局模型实例
121
122
  agent = Agent()
122
123
 
124
+ # 如果用户传入了模型参数,则更换当前模型为用户指定的模型
125
+ if args.model:
126
+ PrettyOutput.print(f"用户传入了模型参数,更换模型: {args.model}", OutputType.USER)
127
+ agent.model.set_model_name(args.model)
128
+
123
129
  # 欢迎信息
124
130
  PrettyOutput.print(f"Jarvis 已初始化 - With {platform} 平台,模型: {agent.model.name()}", OutputType.SYSTEM)
125
131
  if args.keep_history:
@@ -151,4 +157,4 @@ def main():
151
157
  return 0
152
158
 
153
159
  if __name__ == "__main__":
154
- exit(main())
160
+ exit(main())
jarvis/models/oyi.py CHANGED
@@ -29,7 +29,7 @@ class OyiModel(BasePlatform):
29
29
  self.messages = []
30
30
  self.system_message = ""
31
31
  self.conversation = None
32
- self.upload_files = []
32
+ self.upload_files = [] # 重命名 files 为 upload_files
33
33
  self.first_chat = True
34
34
 
35
35
  self.token = os.getenv("OYI_API_KEY")
@@ -244,7 +244,7 @@ class OyiModel(BasePlatform):
244
244
  PrettyOutput.print(f"删除会话异常: {str(e)}", OutputType.ERROR)
245
245
  return False
246
246
 
247
- def upload_file(self, file_path: str) -> Dict:
247
+ def upload_files(self, file_list: List[str]) -> List[Dict]:
248
248
  """Upload a file to OYI API
249
249
 
250
250
  Args:
@@ -269,30 +269,36 @@ class OyiModel(BasePlatform):
269
269
  'Referer': 'https://ai.rcouyi.com/'
270
270
  }
271
271
 
272
- with open(file_path, 'rb') as f:
273
- files = {
274
- 'file': (os.path.basename(file_path), f, mimetypes.guess_type(file_path)[0])
275
- }
272
+ for file_path in file_list:
273
+ # 检查文件类型
274
+ file_type = mimetypes.guess_type(file_path)[0]
275
+ if not file_type or not file_type.startswith(('image/', 'text/', 'application/')):
276
+ PrettyOutput.print(f"文件类型不支持: {file_type}", OutputType.ERROR)
277
+ continue
276
278
 
277
- response = requests.post(
278
- f"{self.BASE_URL}/chatapi/m_file/uploadfile",
279
- headers=headers,
280
- files=files
281
- )
279
+ with open(file_path, 'rb') as f:
280
+ files = {
281
+ 'file': (os.path.basename(file_path), f, file_type)
282
+ }
282
283
 
283
- if response.status_code == 200:
284
- data = response.json()
285
- if data.get('code') == 200:
286
- PrettyOutput.print("文件上传成功", OutputType.SUCCESS)
287
- print(data)
288
- self.upload_files.append(data)
289
- return data
284
+ response = requests.post(
285
+ f"{self.BASE_URL}/chatapi/m_file/uploadfile",
286
+ headers=headers,
287
+ files=files
288
+ )
289
+
290
+ if response.status_code == 200:
291
+ data = response.json()
292
+ if data.get('code') == 200:
293
+ PrettyOutput.print("文件上传成功", OutputType.SUCCESS)
294
+ self.upload_files.append(data)
295
+ return data
296
+ else:
297
+ PrettyOutput.print(f"文件上传失败: {data.get('message')}", OutputType.ERROR)
298
+ return None
290
299
  else:
291
- PrettyOutput.print(f"文件上传失败: {data.get('message')}", OutputType.ERROR)
300
+ PrettyOutput.print(f"文件上传失败: {response.status_code}", OutputType.ERROR)
292
301
  return None
293
- else:
294
- PrettyOutput.print(f"文件上传失败: {response.status_code}", OutputType.ERROR)
295
- return None
296
302
 
297
303
  except Exception as e:
298
304
  PrettyOutput.print(f"文件上传异常: {str(e)}", OutputType.ERROR)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.1.47
3
+ Version: 0.1.48
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
@@ -1,13 +1,13 @@
1
- jarvis/__init__.py,sha256=XHiEIJDUfPpSw7AOyN6pj5Dpsx3J2G2EdRpRhN9TSvI,50
1
+ jarvis/__init__.py,sha256=5Kd0blvGwS59SYMJr_z-vMkb9qnFktJZho8oQ1uSNOw,50
2
2
  jarvis/agent.py,sha256=5GmC9iAOerTR4JoxzrfgLSspoz6qRm1E6xEIWLTR2OI,12222
3
- jarvis/main.py,sha256=3kpohHORc13A5RBjTSHYF7cdnc6W15hO23R78Iqnz8w,5843
3
+ jarvis/main.py,sha256=VIqMYnqNrmVcnO5YC-Tc-ATVBt8IlqIcXHjZvHmyCFs,6272
4
4
  jarvis/utils.py,sha256=JlkuC9RtspXH2VWDmj9nR0vnb8ie1gIsKc4vC7WRco8,7321
5
5
  jarvis/models/__init__.py,sha256=mrOt67nselz_H1gX9wdAO4y2DY5WPXzABqJbr5Des8k,63
6
6
  jarvis/models/ai8.py,sha256=9i7n_-TPbvq0AaRILs9ERQ7Vy5tDyoibXkiPsJvwQio,12520
7
7
  jarvis/models/base.py,sha256=eeNJJbv9ikPVTtV_E7mgW8LZzVgjQ-OzxlHF6slYrHw,1237
8
8
  jarvis/models/kimi.py,sha256=N0bPQ1ugx0RwjR96jLchmOPvCmws-fXyA0mnOAdo2k4,17161
9
9
  jarvis/models/openai.py,sha256=pB7AaZuorHlmudTPaUnEbFOyl51Fy6uhU9KQBm98Ov8,4156
10
- jarvis/models/oyi.py,sha256=12jskOgo77LWtXq4u-LX7s_sYomBJSlry4oONtdmVCU,14443
10
+ jarvis/models/oyi.py,sha256=4_sppGOLS3rucBHinhzjLhSh_6rJKIgLu9h6trHIOGM,14900
11
11
  jarvis/models/registry.py,sha256=iVBjN9ImEvGHcz8WR-z8pPMJQZI907o_nccVOFANhak,7951
12
12
  jarvis/tools/__init__.py,sha256=Kj1bKj34lwRDKMKHLOrLyQElf2lHbqA2tDgP359eaDo,71
13
13
  jarvis/tools/base.py,sha256=EGRGbdfbLXDLwtyoWdvp9rlxNX7bzc20t0Vc2VkwIEY,652
@@ -17,9 +17,9 @@ jarvis/tools/methodology.py,sha256=G3cOaHTMujGZBhDLhQEqyCV2NISizO3MXRuho1KfI6Y,5
17
17
  jarvis/tools/registry.py,sha256=NbH7A4A2lyN2IoyZGFwa5Ghed2dpzbJWCAd1Dg95WBI,7183
18
18
  jarvis/tools/shell.py,sha256=UPKshPyOaUwTngresUw-ot1jHjQIb4wCY5nkJqa38lU,2520
19
19
  jarvis/tools/sub_agent.py,sha256=rEtAmSVY2ZjFOZEKr5m5wpACOQIiM9Zr_3dT92FhXYU,2621
20
- jarvis_ai_assistant-0.1.47.dist-info/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
21
- jarvis_ai_assistant-0.1.47.dist-info/METADATA,sha256=QhhvA014wKgM7HFHGN2AL860qE2OJezog5q229lJjLQ,10015
22
- jarvis_ai_assistant-0.1.47.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
23
- jarvis_ai_assistant-0.1.47.dist-info/entry_points.txt,sha256=iKu7OMfew9dtfGhW71gIMTg4wvafuPqKb4wyQOnMAGU,44
24
- jarvis_ai_assistant-0.1.47.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
25
- jarvis_ai_assistant-0.1.47.dist-info/RECORD,,
20
+ jarvis_ai_assistant-0.1.48.dist-info/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
21
+ jarvis_ai_assistant-0.1.48.dist-info/METADATA,sha256=aa15iAnYAREOwcLJP3tTpjdC5JAmXzouiqXIwKrO83g,10015
22
+ jarvis_ai_assistant-0.1.48.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
23
+ jarvis_ai_assistant-0.1.48.dist-info/entry_points.txt,sha256=iKu7OMfew9dtfGhW71gIMTg4wvafuPqKb4wyQOnMAGU,44
24
+ jarvis_ai_assistant-0.1.48.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
25
+ jarvis_ai_assistant-0.1.48.dist-info/RECORD,,