vision-agent 0.2.96__tar.gz → 0.2.98__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {vision_agent-0.2.96 → vision_agent-0.2.98}/PKG-INFO +2 -2
- {vision_agent-0.2.96 → vision_agent-0.2.98}/pyproject.toml +2 -2
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/agent/vision_agent_coder.py +7 -6
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/tools/tools.py +10 -14
- {vision_agent-0.2.96 → vision_agent-0.2.98}/LICENSE +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/README.md +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/__init__.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/agent/__init__.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/agent/agent.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/agent/agent_utils.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/agent/vision_agent.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/agent/vision_agent_coder_prompts.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/agent/vision_agent_prompts.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/fonts/__init__.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/fonts/default_font_ch_en.ttf +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/lmm/__init__.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/lmm/lmm.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/lmm/types.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/tools/__init__.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/tools/meta_tools.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/tools/prompts.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/tools/tool_utils.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/utils/__init__.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/utils/exceptions.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/utils/execute.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/utils/image_utils.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/utils/sim.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/utils/type_defs.py +0 -0
- {vision_agent-0.2.96 → vision_agent-0.2.98}/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.
|
3
|
+
Version: 0.2.98
|
4
4
|
Summary: Toolset for Vision Agent
|
5
5
|
Author: Landing AI
|
6
6
|
Author-email: dev@landing.ai
|
@@ -11,7 +11,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.11
|
12
12
|
Requires-Dist: anthropic (>=0.31.0,<0.32.0)
|
13
13
|
Requires-Dist: e2b (>=0.17.1,<0.18.0)
|
14
|
-
Requires-Dist: e2b-code-interpreter (==0.0.
|
14
|
+
Requires-Dist: e2b-code-interpreter (==0.0.11a27)
|
15
15
|
Requires-Dist: ipykernel (>=6.29.4,<7.0.0)
|
16
16
|
Requires-Dist: langsmith (>=0.1.58,<0.2.0)
|
17
17
|
Requires-Dist: moviepy (>=1.0.0,<2.0.0)
|
@@ -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.
|
7
|
+
version = "0.2.98"
|
8
8
|
description = "Toolset for Vision Agent"
|
9
9
|
authors = ["Landing AI <dev@landing.ai>"]
|
10
10
|
readme = "README.md"
|
@@ -35,7 +35,7 @@ rich = "^13.7.1"
|
|
35
35
|
langsmith = "^0.1.58"
|
36
36
|
ipykernel = "^6.29.4"
|
37
37
|
e2b = "^0.17.1"
|
38
|
-
e2b-code-interpreter = "0.0.
|
38
|
+
e2b-code-interpreter = "0.0.11a27"
|
39
39
|
tenacity = "^8.3.0"
|
40
40
|
pillow-heif = "^0.16.0"
|
41
41
|
pytube = "15.0.0"
|
@@ -93,7 +93,7 @@ def format_plans(plans: Dict[str, Any]) -> str:
|
|
93
93
|
|
94
94
|
|
95
95
|
def extract_image(
|
96
|
-
media: Optional[Sequence[Union[str, Path]]]
|
96
|
+
media: Optional[Sequence[Union[str, Path]]],
|
97
97
|
) -> Optional[Sequence[Union[str, Path]]]:
|
98
98
|
if media is None:
|
99
99
|
return None
|
@@ -186,7 +186,8 @@ def pick_plan(
|
|
186
186
|
if tool_output.success
|
187
187
|
else "Code execution failed"
|
188
188
|
),
|
189
|
-
"
|
189
|
+
"code": DefaultImports.prepend_imports(code),
|
190
|
+
# "payload": tool_output.to_json(),
|
190
191
|
"status": "completed" if tool_output.success else "failed",
|
191
192
|
}
|
192
193
|
)
|
@@ -211,6 +212,9 @@ def pick_plan(
|
|
211
212
|
}
|
212
213
|
)
|
213
214
|
code = extract_code(model(prompt))
|
215
|
+
tool_output = code_interpreter.exec_isolation(
|
216
|
+
DefaultImports.prepend_imports(code)
|
217
|
+
)
|
214
218
|
log_progress(
|
215
219
|
{
|
216
220
|
"type": "log",
|
@@ -220,13 +224,10 @@ def pick_plan(
|
|
220
224
|
else "Code execution failed"
|
221
225
|
),
|
222
226
|
"code": DefaultImports.prepend_imports(code),
|
223
|
-
"payload": tool_output.to_json(),
|
227
|
+
# "payload": tool_output.to_json(),
|
224
228
|
"status": "completed" if tool_output.success else "failed",
|
225
229
|
}
|
226
230
|
)
|
227
|
-
tool_output = code_interpreter.exec_isolation(
|
228
|
-
DefaultImports.prepend_imports(code)
|
229
|
-
)
|
230
231
|
tool_output_str = ""
|
231
232
|
if len(tool_output.logs.stdout) > 0:
|
232
233
|
tool_output_str = tool_output.logs.stdout[0]
|
@@ -9,6 +9,7 @@ from typing import Any, Dict, List, Optional, Tuple, Union, cast
|
|
9
9
|
import cv2
|
10
10
|
import numpy as np
|
11
11
|
import requests
|
12
|
+
from moviepy.editor import ImageSequenceClip
|
12
13
|
from PIL import Image, ImageDraw, ImageFont
|
13
14
|
from pillow_heif import register_heif_opener # type: ignore
|
14
15
|
from pytube import YouTube # type: ignore
|
@@ -1063,20 +1064,15 @@ def save_video(
|
|
1063
1064
|
_LOGGER.warning(f"Invalid fps value: {fps}. Setting fps to 4 (default value).")
|
1064
1065
|
fps = 4
|
1065
1066
|
|
1066
|
-
|
1067
|
-
output_video_path
|
1068
|
-
|
1069
|
-
|
1070
|
-
|
1071
|
-
|
1072
|
-
|
1073
|
-
|
1074
|
-
|
1075
|
-
video.write(cv2.cvtColor(frame, cv2.COLOR_RGB2BGR))
|
1076
|
-
video.release()
|
1077
|
-
|
1078
|
-
_save_video_to_result(output_video_path)
|
1079
|
-
return output_video_path
|
1067
|
+
with ImageSequenceClip(frames, fps=fps) as video:
|
1068
|
+
if output_video_path:
|
1069
|
+
f = open(output_video_path, "wb")
|
1070
|
+
else:
|
1071
|
+
f = tempfile.NamedTemporaryFile(suffix=".mp4", delete=False) # type: ignore
|
1072
|
+
video.write_videofile(f.name, codec="libx264")
|
1073
|
+
f.close()
|
1074
|
+
_save_video_to_result(f.name)
|
1075
|
+
return f.name
|
1080
1076
|
|
1081
1077
|
|
1082
1078
|
def _save_video_to_result(video_uri: str) -> None:
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{vision_agent-0.2.96 → vision_agent-0.2.98}/vision_agent/agent/vision_agent_coder_prompts.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|