vision-agent 0.2.171__tar.gz → 0.2.173__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.171 → vision_agent-0.2.173}/PKG-INFO +1 -1
  2. {vision_agent-0.2.171 → vision_agent-0.2.173}/pyproject.toml +1 -1
  3. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/agent/vision_agent.py +13 -13
  4. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/tools/meta_tools.py +8 -11
  5. {vision_agent-0.2.171 → vision_agent-0.2.173}/LICENSE +0 -0
  6. {vision_agent-0.2.171 → vision_agent-0.2.173}/README.md +0 -0
  7. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/__init__.py +0 -0
  8. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/agent/__init__.py +0 -0
  9. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/agent/agent.py +0 -0
  10. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/agent/agent_utils.py +0 -0
  11. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/agent/vision_agent_coder.py +0 -0
  12. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/agent/vision_agent_coder_prompts.py +0 -0
  13. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/agent/vision_agent_planner.py +0 -0
  14. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/agent/vision_agent_planner_prompts.py +0 -0
  15. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/agent/vision_agent_prompts.py +0 -0
  16. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/clients/__init__.py +0 -0
  17. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/clients/http.py +0 -0
  18. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/clients/landing_public_api.py +0 -0
  19. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/fonts/__init__.py +0 -0
  20. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/fonts/default_font_ch_en.ttf +0 -0
  21. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/lmm/__init__.py +0 -0
  22. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/lmm/lmm.py +0 -0
  23. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/lmm/types.py +0 -0
  24. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/tools/__init__.py +0 -0
  25. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/tools/prompts.py +0 -0
  26. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/tools/tool_utils.py +0 -0
  27. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/tools/tools.py +0 -0
  28. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/tools/tools_types.py +0 -0
  29. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/utils/__init__.py +0 -0
  30. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/utils/exceptions.py +0 -0
  31. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/utils/execute.py +0 -0
  32. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/utils/image_utils.py +0 -0
  33. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/utils/sim.py +0 -0
  34. {vision_agent-0.2.171 → vision_agent-0.2.173}/vision_agent/utils/type_defs.py +0 -0
  35. {vision_agent-0.2.171 → vision_agent-0.2.173}/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.171
3
+ Version: 0.2.173
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.171"
7
+ version = "0.2.173"
8
8
  description = "Toolset for Vision Agent"
9
9
  authors = ["Landing AI <dev@landing.ai>"]
10
10
  readme = "README.md"
@@ -149,11 +149,11 @@ def execute_code_action(
149
149
  result = code_interpreter.exec_isolation(
150
150
  BoilerplateCode.add_boilerplate(code, remote_path=artifact_remote_path)
151
151
  )
152
- extract_and_save_files_to_artifacts(artifacts, code)
153
152
 
154
153
  obs = str(result.logs)
155
154
  if result.error:
156
155
  obs += f"\n{result.error}"
156
+ extract_and_save_files_to_artifacts(artifacts, code, obs)
157
157
  return result, obs
158
158
 
159
159
 
@@ -182,6 +182,7 @@ def execute_user_code_action(
182
182
  )
183
183
  if user_result.error:
184
184
  user_obs += f"\n{user_result.error}"
185
+ extract_and_save_files_to_artifacts(artifacts, user_code_action, user_obs)
185
186
  return user_result, user_obs
186
187
 
187
188
 
@@ -491,19 +492,10 @@ class VisionAgent(Agent):
491
492
  }
492
493
  )
493
494
 
495
+ code_action = response.get("execute_python", None)
494
496
  # sometimes it gets stuck in a loop, so we force it to exit
495
497
  if last_response == response:
496
498
  response["let_user_respond"] = True
497
-
498
- finished = response.get("let_user_respond", False)
499
-
500
- code_action = response.get("execute_python", None)
501
- if code_action is not None:
502
- code_action = use_extra_vision_agent_args(
503
- code_action, test_multi_plan, custom_tool_names
504
- )
505
-
506
- if last_response == response:
507
499
  self.streaming_message(
508
500
  {
509
501
  "role": "assistant",
@@ -513,7 +505,7 @@ class VisionAgent(Agent):
513
505
  "value": "Agent is stuck in conversation loop, exited",
514
506
  "traceback_raw": [],
515
507
  },
516
- "finished": finished and code_action is None,
508
+ "finished": code_action is None,
517
509
  }
518
510
  )
519
511
  else:
@@ -523,10 +515,18 @@ class VisionAgent(Agent):
523
515
  "content": new_format_to_old_format(
524
516
  add_step_descriptions(response)
525
517
  ),
526
- "finished": finished and code_action is None,
518
+ "finished": response.get("let_user_respond", False)
519
+ and code_action is None,
527
520
  }
528
521
  )
529
522
 
523
+ finished = response.get("let_user_respond", False)
524
+
525
+ if code_action is not None:
526
+ code_action = use_extra_vision_agent_args(
527
+ code_action, test_multi_plan, custom_tool_names
528
+ )
529
+
530
530
  if code_action is not None:
531
531
  result, obs = execute_code_action(
532
532
  artifacts,
@@ -451,11 +451,6 @@ def generate_vision_code(
451
451
  custom_tool_names=custom_tool_names,
452
452
  )
453
453
 
454
- # capture and save any files that were saved in the code to the artifacts
455
- extract_and_save_files_to_artifacts(
456
- artifacts, response["code"] + "\n" + response["test"]
457
- )
458
-
459
454
  redisplay_results(response["test_result"])
460
455
  code = response["code"]
461
456
  artifacts[name] = code
@@ -536,10 +531,6 @@ def edit_vision_code(
536
531
  test_multi_plan=False,
537
532
  custom_tool_names=custom_tool_names,
538
533
  )
539
- # capture and save any files that were saved in the code to the artifacts
540
- extract_and_save_files_to_artifacts(
541
- artifacts, response["code"] + "\n" + response["test"]
542
- )
543
534
 
544
535
  redisplay_results(response["test_result"])
545
536
  code = response["code"]
@@ -766,7 +757,9 @@ def use_object_detection_fine_tuning(
766
757
  return diff
767
758
 
768
759
 
769
- def extract_and_save_files_to_artifacts(artifacts: Artifacts, code: str) -> None:
760
+ def extract_and_save_files_to_artifacts(
761
+ artifacts: Artifacts, code: str, obs: str
762
+ ) -> None:
770
763
  """Extracts and saves files used in the code to the artifacts object.
771
764
 
772
765
  Parameters:
@@ -776,12 +769,16 @@ def extract_and_save_files_to_artifacts(artifacts: Artifacts, code: str) -> None
776
769
  try:
777
770
  response = extract_json(
778
771
  AnthropicLMM()( # type: ignore
779
- f"""You are a helpful AI assistant. Your job is to look at a snippet of code and return the file paths that are being saved in the file. Below is the code snippet:
772
+ f"""You are a helpful AI assistant. Your job is to look at a snippet of code and the output of running that code and return the file paths that are being saved in the file. Below is the code snippet:
780
773
 
781
774
  ```python
782
775
  {code}
783
776
  ```
784
777
 
778
+ ```output
779
+ {obs}
780
+ ```
781
+
785
782
  Return the file paths in the following JSON format:
786
783
  {{"file_paths": ["/path/to/image1.jpg", "/other/path/to/data.json"]}}"""
787
784
  )
File without changes
File without changes