hjxdl 0.2.89__py3-none-any.whl → 0.2.91__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 +15 -8
- hdl/utils/llm/vis.py +26 -0
- {hjxdl-0.2.89.dist-info → hjxdl-0.2.91.dist-info}/METADATA +1 -1
- {hjxdl-0.2.89.dist-info → hjxdl-0.2.91.dist-info}/RECORD +7 -7
- {hjxdl-0.2.89.dist-info → hjxdl-0.2.91.dist-info}/WHEEL +0 -0
- {hjxdl-0.2.89.dist-info → hjxdl-0.2.91.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]
|
@@ -681,10 +682,16 @@ class MMChatter():
|
|
681
682
|
text=True
|
682
683
|
)
|
683
684
|
|
684
|
-
#
|
685
|
+
# Process the output
|
685
686
|
output = result.stdout
|
686
687
|
|
687
|
-
#
|
688
|
-
response
|
688
|
+
# Extract the relevant part of the output
|
689
|
+
# Locate the response starting from '<assistant>' and capture everything afterwards
|
690
|
+
start_marker = "<assistant>"
|
691
|
+
if start_marker in output:
|
692
|
+
response_start = output.index(start_marker) + len(start_marker)
|
693
|
+
response = output[response_start:].strip()
|
694
|
+
else:
|
695
|
+
response = output.strip()
|
689
696
|
|
690
|
-
return response
|
697
|
+
return response
|
hdl/utils/llm/vis.py
CHANGED
@@ -45,6 +45,30 @@ def to_img(img_str):
|
|
45
45
|
return img
|
46
46
|
|
47
47
|
|
48
|
+
def to_base64(img):
|
49
|
+
"""
|
50
|
+
Convert an image to its base64 representation.
|
51
|
+
Parameters:
|
52
|
+
img (PIL.Image.Image or str): The image to convert. This can be a PIL Image object,
|
53
|
+
a base64 string starting with "data:image", a URL starting
|
54
|
+
with "http", or a file path to an image.
|
55
|
+
Returns:
|
56
|
+
str: The base64 representation of the image.
|
57
|
+
Raises:
|
58
|
+
TypeError: If the input is not a PIL Image object or a string.
|
59
|
+
"""
|
60
|
+
if isinstance(img, Image.Image):
|
61
|
+
img_base64 = pilimg_to_base64(img)
|
62
|
+
elif isinstance(img, str):
|
63
|
+
if img.startswith("data:image"):
|
64
|
+
img_base64 = img
|
65
|
+
elif img.startswith("http"):
|
66
|
+
img_base64 = imgurl_to_base64(img)
|
67
|
+
elif Path(img).is_file():
|
68
|
+
img_base64 = imgfile_to_base64(img)
|
69
|
+
return img_base64
|
70
|
+
|
71
|
+
|
48
72
|
def imgurl_to_base64(image_url: str):
|
49
73
|
"""Converts an image from a URL to base64 format.
|
50
74
|
|
@@ -177,6 +201,8 @@ def draw_and_plot_boxes_from_json(
|
|
177
201
|
# except FileNotFoundError:
|
178
202
|
# print(f"Image file not found at {image_path}. Please check the path.")
|
179
203
|
# return None
|
204
|
+
if not isinstance(image, Image.Image):
|
205
|
+
image = to_img(image)
|
180
206
|
img = image
|
181
207
|
|
182
208
|
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=LbTtiYJHXfOXk868cTsLjgvV-tgQLnj4fofYnABLP2c,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=zKCKwhWCPxV1SYlfWGYIylgYbAnEGm8vkPqIiClb7JU,25683
|
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.91.dist-info/METADATA,sha256=ne16d4ucj4MA9ocl9J2XseM6z1KgxK0B4qE-wku7YBU,836
|
143
|
+
hjxdl-0.2.91.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
144
|
+
hjxdl-0.2.91.dist-info/top_level.txt,sha256=-kxwTM5JPhylp06z3zAVO3w6_h7wtBfBo2zgM6YZoTk,4
|
145
|
+
hjxdl-0.2.91.dist-info/RECORD,,
|
File without changes
|
File without changes
|