hjxdl 0.2.90__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 CHANGED
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.2.90'
16
- __version_tuple__ = version_tuple = (0, 2, 90)
15
+ __version__ = version = '0.2.91'
16
+ __version_tuple__ = version_tuple = (0, 2, 91)
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
- if isinstance(image, str):
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
@@ -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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hjxdl
3
- Version: 0.2.90
3
+ Version: 0.2.91
4
4
  Summary: A collection of functions for Jupyter notebooks
5
5
  Home-page: https://github.com/huluxiaohuowa/hdl
6
6
  Author: Jianxing Hu
@@ -1,5 +1,5 @@
1
1
  hdl/__init__.py,sha256=GffnD0jLJdhkd-vo989v40N90sQbofkayRBwxc6TVhQ,72
2
- hdl/_version.py,sha256=dsW-sD-GWSmrnvsjSNdPvgFmdtr0NxczFjTqn2lljPU,413
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=FykxgrUlolJvG5NN0sDlTmVf2F2kDWp1M1iodVNFeUg,24850
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=fuXdEFfUpW4KR7TKmIBEuMmo3ZdZxfd79a_qfTM0tPk,24739
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.90.dist-info/METADATA,sha256=zXS1Zo2oeR0MqDgUOwvYGU_RxOLS75wdfsjRNlz4q64,836
143
- hjxdl-0.2.90.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
144
- hjxdl-0.2.90.dist-info/top_level.txt,sha256=-kxwTM5JPhylp06z3zAVO3w6_h7wtBfBo2zgM6YZoTk,4
145
- hjxdl-0.2.90.dist-info/RECORD,,
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