hjxdl 0.2.90__py3-none-any.whl → 0.2.92__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.
- hdl/_version.py +2 -2
- hdl/utils/llm/chat.py +5 -4
- hdl/utils/llm/vis.py +39 -0
- {hjxdl-0.2.90.dist-info → hjxdl-0.2.92.dist-info}/METADATA +1 -1
- {hjxdl-0.2.90.dist-info → hjxdl-0.2.92.dist-info}/RECORD +7 -7
- {hjxdl-0.2.90.dist-info → hjxdl-0.2.92.dist-info}/WHEEL +0 -0
- {hjxdl-0.2.90.dist-info → hjxdl-0.2.92.dist-info}/top_level.txt +0 -0
hdl/_version.py
CHANGED
hdl/utils/llm/chat.py
CHANGED
@@ -6,14 +6,16 @@ import subprocess
|
|
6
6
|
from typing import Generator
|
7
7
|
import re
|
8
8
|
|
9
|
-
|
10
9
|
from openai import OpenAI
|
10
|
+
from PIL import Image
|
11
|
+
|
11
12
|
from ..desc.template import FN_TEMPLATE, COT_TEMPLATE, OD_TEMPLATE
|
12
13
|
from ..desc.func_desc import TOOL_DESC
|
13
|
-
from .vis import draw_and_plot_boxes_from_json, to_img
|
14
|
+
from .vis import draw_and_plot_boxes_from_json, to_img, to_base64
|
14
15
|
# import json
|
15
16
|
# import traceback
|
16
17
|
|
18
|
+
|
17
19
|
def parse_fn_markdown(markdown_text, params_key="params"):
|
18
20
|
"""
|
19
21
|
Parses a markdown text to extract function name and parameters.
|
@@ -585,8 +587,7 @@ class OpenAI_M():
|
|
585
587
|
Returns:
|
586
588
|
str: A JSON string containing the results of the object detection.
|
587
589
|
"""
|
588
|
-
|
589
|
-
image = to_img(image)
|
590
|
+
image = to_base64(image)
|
590
591
|
json_str = self.invoke(
|
591
592
|
prompt=self.od_desc,
|
592
593
|
images=[image]
|
hdl/utils/llm/vis.py
CHANGED
@@ -30,6 +30,19 @@ from redis.commands.search.query import Query
|
|
30
30
|
HF_HUB_PREFIX = "hf-hub:"
|
31
31
|
|
32
32
|
def to_img(img_str):
|
33
|
+
"""
|
34
|
+
Convert an image source string to a PIL Image object.
|
35
|
+
The function supports three types of image sources:
|
36
|
+
1. Base64 encoded image strings starting with "data:image".
|
37
|
+
2. URLs starting with "http".
|
38
|
+
3. Local file paths.
|
39
|
+
Args:
|
40
|
+
img_str (str): The image source string. It can be a base64 encoded string, a URL, or a local file path.
|
41
|
+
Returns:
|
42
|
+
PIL.Image.Image: The converted image as a PIL Image object.
|
43
|
+
Raises:
|
44
|
+
ValueError: If the image source string is not valid or the image cannot be loaded.
|
45
|
+
"""
|
33
46
|
if img_str.startswith("data:image"):
|
34
47
|
img = imgbase64_to_pilimg(img_str)
|
35
48
|
elif img_str.startswith("http"):
|
@@ -45,6 +58,30 @@ def to_img(img_str):
|
|
45
58
|
return img
|
46
59
|
|
47
60
|
|
61
|
+
def to_base64(img):
|
62
|
+
"""
|
63
|
+
Convert an image to its base64 representation.
|
64
|
+
Parameters:
|
65
|
+
img (PIL.Image.Image or str): The image to convert. This can be a PIL Image object,
|
66
|
+
a base64 string starting with "data:image", a URL starting
|
67
|
+
with "http", or a file path to an image.
|
68
|
+
Returns:
|
69
|
+
str: The base64 representation of the image.
|
70
|
+
Raises:
|
71
|
+
TypeError: If the input is not a PIL Image object or a string.
|
72
|
+
"""
|
73
|
+
if isinstance(img, Image.Image):
|
74
|
+
img_base64 = pilimg_to_base64(img)
|
75
|
+
elif isinstance(img, str):
|
76
|
+
if img.startswith("data:image"):
|
77
|
+
img_base64 = img
|
78
|
+
elif img.startswith("http"):
|
79
|
+
img_base64 = imgurl_to_base64(img)
|
80
|
+
elif Path(img).is_file():
|
81
|
+
img_base64 = imgfile_to_base64(img)
|
82
|
+
return img_base64
|
83
|
+
|
84
|
+
|
48
85
|
def imgurl_to_base64(image_url: str):
|
49
86
|
"""Converts an image from a URL to base64 format.
|
50
87
|
|
@@ -177,6 +214,8 @@ def draw_and_plot_boxes_from_json(
|
|
177
214
|
# except FileNotFoundError:
|
178
215
|
# print(f"Image file not found at {image_path}. Please check the path.")
|
179
216
|
# return None
|
217
|
+
if not isinstance(image, Image.Image):
|
218
|
+
image = to_img(image)
|
180
219
|
img = image
|
181
220
|
|
182
221
|
draw = ImageDraw.Draw(img)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
hdl/__init__.py,sha256=GffnD0jLJdhkd-vo989v40N90sQbofkayRBwxc6TVhQ,72
|
2
|
-
hdl/_version.py,sha256=
|
2
|
+
hdl/_version.py,sha256=kkEuGTn2hmLTPDGbYFNi0KFL-GFSm6bEFKYCUrPee_8,413
|
3
3
|
hdl/args/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
4
|
hdl/args/loss_args.py,sha256=s7YzSdd7IjD24rZvvOrxLLFqMZQb9YylxKeyelSdrTk,70
|
5
5
|
hdl/controllers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -128,18 +128,18 @@ hdl/utils/general/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
|
|
128
128
|
hdl/utils/general/glob.py,sha256=Zuf7WHU0UdUPOs9UrhxmrCiMC8GrHxQU6n3mTThv6yc,1120
|
129
129
|
hdl/utils/general/runners.py,sha256=x7QBolp3MrqNV6L4rB6Ueybr26bqkRFZTuXhY0SwyLk,3061
|
130
130
|
hdl/utils/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
131
|
-
hdl/utils/llm/chat.py,sha256=
|
131
|
+
hdl/utils/llm/chat.py,sha256=_yqgWFhsxtYfNNm8pb5b-HIl950ZHL841JM5qm7zd0Y,24848
|
132
132
|
hdl/utils/llm/chatgr.py,sha256=5F5PJHe8vz3iCfi4TT54DCLRi1UeJshECdVtgvvvao0,3696
|
133
133
|
hdl/utils/llm/embs.py,sha256=Tf0FOYrOFZp7qQpEPiSCXzlgyHH0X9HVTUtsup74a9E,7174
|
134
134
|
hdl/utils/llm/extract.py,sha256=2sK_WJzmYIc8iuWaM9DA6Nw3_6q1O4lJ5pKpcZo-bBA,6512
|
135
135
|
hdl/utils/llm/llama_chat.py,sha256=watcHGOaz-bv3x-yDucYlGk5f8FiqfFhwWogrl334fk,4387
|
136
|
-
hdl/utils/llm/vis.py,sha256=
|
136
|
+
hdl/utils/llm/vis.py,sha256=GkL7UMQxosTekhOZXSj_FTKGmZ1v5WciXOabn55FnWQ,26242
|
137
137
|
hdl/utils/llm/visrag.py,sha256=0i-VrxqgiV-J7R3VPshu9oc7-rKjFJOldYik3HDXj6M,10176
|
138
138
|
hdl/utils/schedulers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
139
139
|
hdl/utils/schedulers/norm_lr.py,sha256=bDwCmdEK-WkgxQMFBiMuchv8Mm7C0-GZJ6usm-PQk14,4461
|
140
140
|
hdl/utils/weather/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
141
141
|
hdl/utils/weather/weather.py,sha256=k11o6wM15kF8b9NMlEfrg68ak-SfSYLN3nOOflFUv-I,4381
|
142
|
-
hjxdl-0.2.
|
143
|
-
hjxdl-0.2.
|
144
|
-
hjxdl-0.2.
|
145
|
-
hjxdl-0.2.
|
142
|
+
hjxdl-0.2.92.dist-info/METADATA,sha256=3KY26P4eZG7AreivWqsYxq1Fs1J2GU_BjkGKB-WF2sI,836
|
143
|
+
hjxdl-0.2.92.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
144
|
+
hjxdl-0.2.92.dist-info/top_level.txt,sha256=-kxwTM5JPhylp06z3zAVO3w6_h7wtBfBo2zgM6YZoTk,4
|
145
|
+
hjxdl-0.2.92.dist-info/RECORD,,
|
File without changes
|
File without changes
|