vision-agent 0.2.167__tar.gz → 0.2.169__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. {vision_agent-0.2.167 → vision_agent-0.2.169}/PKG-INFO +1 -1
  2. {vision_agent-0.2.167 → vision_agent-0.2.169}/pyproject.toml +1 -1
  3. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/agent/vision_agent.py +56 -5
  4. {vision_agent-0.2.167 → vision_agent-0.2.169}/LICENSE +0 -0
  5. {vision_agent-0.2.167 → vision_agent-0.2.169}/README.md +0 -0
  6. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/__init__.py +0 -0
  7. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/agent/__init__.py +0 -0
  8. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/agent/agent.py +0 -0
  9. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/agent/agent_utils.py +0 -0
  10. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/agent/vision_agent_coder.py +0 -0
  11. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/agent/vision_agent_coder_prompts.py +0 -0
  12. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/agent/vision_agent_planner.py +0 -0
  13. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/agent/vision_agent_planner_prompts.py +0 -0
  14. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/agent/vision_agent_prompts.py +0 -0
  15. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/clients/__init__.py +0 -0
  16. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/clients/http.py +0 -0
  17. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/clients/landing_public_api.py +0 -0
  18. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/fonts/__init__.py +0 -0
  19. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/fonts/default_font_ch_en.ttf +0 -0
  20. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/lmm/__init__.py +0 -0
  21. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/lmm/lmm.py +0 -0
  22. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/lmm/types.py +0 -0
  23. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/tools/__init__.py +0 -0
  24. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/tools/meta_tools.py +0 -0
  25. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/tools/prompts.py +0 -0
  26. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/tools/tool_utils.py +0 -0
  27. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/tools/tools.py +0 -0
  28. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/tools/tools_types.py +0 -0
  29. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/utils/__init__.py +0 -0
  30. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/utils/exceptions.py +0 -0
  31. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/utils/execute.py +0 -0
  32. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/utils/image_utils.py +0 -0
  33. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/utils/sim.py +0 -0
  34. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/utils/type_defs.py +0 -0
  35. {vision_agent-0.2.167 → vision_agent-0.2.169}/vision_agent/utils/video.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vision-agent
3
- Version: 0.2.167
3
+ Version: 0.2.169
4
4
  Summary: Toolset for Vision Agent
5
5
  Author: Landing AI
6
6
  Author-email: dev@landing.ai
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "vision-agent"
7
- version = "0.2.167"
7
+ version = "0.2.169"
8
8
  description = "Toolset for Vision Agent"
9
9
  authors = ["Landing AI <dev@landing.ai>"]
10
10
  readme = "README.md"
@@ -210,6 +210,51 @@ def add_step_descriptions(response: Dict[str, Any]) -> Dict[str, Any]:
210
210
  return response
211
211
 
212
212
 
213
+ def new_format_to_old_format(new_format: Dict[str, Any]) -> Dict[str, Any]:
214
+ thoughts = new_format["thinking"] if new_format["thinking"] is not None else ""
215
+ response = new_format["response"] if new_format["response"] is not None else ""
216
+ if new_format["execute_python"] is not None:
217
+ response += (
218
+ f"\n<execute_python>\n{new_format['execute_python']}\n</execute_python>"
219
+ )
220
+ return {
221
+ "thoughts": thoughts,
222
+ "response": response,
223
+ "let_user_respond": new_format["let_user_respond"],
224
+ }
225
+
226
+
227
+ def old_format_to_new_format(old_format_str: str) -> str:
228
+ try:
229
+ old_format = json.loads(old_format_str)
230
+ except json.JSONDecodeError:
231
+ return old_format_str
232
+
233
+ thinking = old_format["thoughts"] if old_format["thoughts"].strip() != "" else None
234
+ let_user_respond = old_format["let_user_respond"]
235
+ if "<execute_python>" in old_format["response"]:
236
+ execute_python = extract_tag(old_format["response"], "execute_python")
237
+ response = (
238
+ old_format["response"]
239
+ .replace(execute_python, "")
240
+ .replace("<execute_python>", "")
241
+ .replace("</execute_python>", "")
242
+ .strip()
243
+ )
244
+ else:
245
+ execute_python = None
246
+ response = old_format["response"]
247
+
248
+ return json.dumps(
249
+ {
250
+ "thinking": thinking,
251
+ "response": response,
252
+ "execute_python": execute_python,
253
+ "let_user_respond": let_user_respond,
254
+ }
255
+ )
256
+
257
+
213
258
  class VisionAgent(Agent):
214
259
  """Vision Agent is an agent that can chat with the user and call tools or other
215
260
  agents to generate code for it. Vision Agent uses python code to execute actions
@@ -374,11 +419,11 @@ class VisionAgent(Agent):
374
419
  (
375
420
  {
376
421
  "role": c["role"],
377
- "content": c["content"],
422
+ "content": old_format_to_new_format(c["content"]), # type: ignore
378
423
  "media": c["media"],
379
424
  }
380
425
  if "media" in c
381
- else {"role": c["role"], "content": c["content"]}
426
+ else {"role": c["role"], "content": old_format_to_new_format(c["content"])} # type: ignore
382
427
  )
383
428
  for c in int_chat
384
429
  ],
@@ -432,13 +477,17 @@ class VisionAgent(Agent):
432
477
  int_chat.append(
433
478
  {
434
479
  "role": "assistant",
435
- "content": json.dumps(add_step_descriptions(response)),
480
+ "content": json.dumps(
481
+ new_format_to_old_format(add_step_descriptions(response))
482
+ ),
436
483
  }
437
484
  )
438
485
  orig_chat.append(
439
486
  {
440
487
  "role": "assistant",
441
- "content": json.dumps(add_step_descriptions(response)),
488
+ "content": json.dumps(
489
+ new_format_to_old_format(add_step_descriptions(response))
490
+ ),
442
491
  }
443
492
  )
444
493
 
@@ -471,7 +520,9 @@ class VisionAgent(Agent):
471
520
  self.streaming_message(
472
521
  {
473
522
  "role": "assistant",
474
- "content": json.dumps(add_step_descriptions(response)),
523
+ "content": new_format_to_old_format(
524
+ add_step_descriptions(response)
525
+ ),
475
526
  "finished": finished and code_action is None,
476
527
  }
477
528
  )
File without changes
File without changes