hjxdl 0.2.83__py3-none-any.whl → 0.2.88__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.83'
16
- __version_tuple__ = version_tuple = (0, 2, 83)
15
+ __version__ = version = '0.2.88'
16
+ __version_tuple__ = version_tuple = (0, 2, 88)
hdl/utils/llm/chat.py CHANGED
@@ -10,8 +10,8 @@ import re
10
10
  from openai import OpenAI
11
11
  from ..desc.template import FN_TEMPLATE, COT_TEMPLATE, OD_TEMPLATE
12
12
  from ..desc.func_desc import TOOL_DESC
13
- from .vis import draw_and_plot_boxes_from_json
14
- import json
13
+ from .vis import draw_and_plot_boxes_from_json, to_img
14
+ # import json
15
15
  # import traceback
16
16
 
17
17
  def parse_fn_markdown(markdown_text, params_key="params"):
@@ -576,23 +576,38 @@ class OpenAI_M():
576
576
 
577
577
  def od(
578
578
  self,
579
- image_path,
580
- save_path=None
579
+ image,
581
580
  ):
581
+ """
582
+ Perform object detection on the given image.
583
+ Args:
584
+ image_path (str): The path to the image file on which to perform object detection.
585
+ Returns:
586
+ str: A JSON string containing the results of the object detection.
587
+ """
588
+ if isinstance(image, str):
589
+ image = to_img(image)
582
590
  json_str = self.invoke(
583
- prompt="""
584
- Detect all the objects in the image, return bounding boxes for all of them using the following format (DO NOT INCLUDE ANY OTHER WORDS IN YOUR ANSWER BUT ONLY THE LIST):
585
- [
586
- {
587
- "object": "object_name",
588
- "bboxes": [[xmin, ymin, xmax, ymax], [xmin, ymin, xmax, ymax], ...]
589
- },
590
- ...
591
- ]
592
- """,
593
- images="https://air-example-data-2.s3.us-west-2.amazonaws.com/vllm_opensource_llava/stop_sign.jpg",
591
+ prompt=self.od_desc,
592
+ images=[image]
594
593
  )
595
- img = draw_and_plot_boxes_from_json(json_str, image_path, save_path)
594
+ return json_str
595
+
596
+ def od_v(
597
+ self,
598
+ image,
599
+ save_path,
600
+ ):
601
+ """
602
+ Perform object detection on an image and save the result.
603
+ Args:
604
+ image_path (str): The path to the input image.
605
+ save_path (str): The path to save the output image with detected objects.
606
+ Returns:
607
+ tuple: A tuple containing the processed image and the save path.
608
+ """
609
+ json_str = self.od(image)
610
+ img = draw_and_plot_boxes_from_json(json_str, image, save_path)
596
611
  return img, save_path
597
612
 
598
613
 
hdl/utils/llm/vis.py CHANGED
@@ -29,6 +29,21 @@ from redis.commands.search.query import Query
29
29
 
30
30
  HF_HUB_PREFIX = "hf-hub:"
31
31
 
32
+ def to_img(img_str):
33
+ if img_str.startswith("data:image"):
34
+ img = imgbase64_to_pilimg(img_str)
35
+ elif img_str.startswith("http"):
36
+ response = requests.get(img_str)
37
+ if response.status_code == 200:
38
+ # Read the image content from the response
39
+ img_data = response.content
40
+
41
+ # Load the image using PIL to determine its format
42
+ img = Image.open(BytesIO(img_data))
43
+ elif Path(img_str).is_file():
44
+ img = Image.open(img_str)
45
+ return img
46
+
32
47
 
33
48
  def imgurl_to_base64(image_url: str):
34
49
  """Converts an image from a URL to base64 format.
@@ -127,7 +142,7 @@ def pilimg_to_base64(pilimg):
127
142
 
128
143
  def draw_and_plot_boxes_from_json(
129
144
  json_data,
130
- image_path,
145
+ image,
131
146
  save_path=None
132
147
  ):
133
148
  """
@@ -157,11 +172,12 @@ def draw_and_plot_boxes_from_json(
157
172
  data = json_data
158
173
 
159
174
  # Open the image
160
- try:
161
- img = Image.open(image_path)
162
- except FileNotFoundError:
163
- print(f"Image file not found at {image_path}. Please check the path.")
164
- return None
175
+ # try:
176
+ # img = Image.open(image_path)
177
+ # except FileNotFoundError:
178
+ # print(f"Image file not found at {image_path}. Please check the path.")
179
+ # return None
180
+ img = image
165
181
 
166
182
  draw = ImageDraw.Draw(img)
167
183
  width, height = img.size
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hjxdl
3
- Version: 0.2.83
3
+ Version: 0.2.88
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=OMRaBymw5QprdlebDPUsdFD1v26PbMK3f65RIPDhT1g,413
2
+ hdl/_version.py,sha256=gmIfdIg5gEvfMxffRlk3KF_G7qsO5gyiwsJ6wEhCrTk,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=_1enhg-IhcY-XewzcXXwCWGqSfkB3pvckpr4QcJ4XsA,24060
131
+ hdl/utils/llm/chat.py,sha256=B0OSX2Yc4OZUwRu-aHnZOW-knTeDqlzCP_UqlgnhMKA,24476
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=JPil4gJ-n-awv_EjNIjOwG9Gc89lsqTojV58_66U0_A,24204
136
+ hdl/utils/llm/vis.py,sha256=fuXdEFfUpW4KR7TKmIBEuMmo3ZdZxfd79a_qfTM0tPk,24739
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.83.dist-info/METADATA,sha256=0B1zj7EVTm7sUVpCYt5mRz7Y_UeA9e3E1gYQaFeYrZI,836
143
- hjxdl-0.2.83.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
144
- hjxdl-0.2.83.dist-info/top_level.txt,sha256=-kxwTM5JPhylp06z3zAVO3w6_h7wtBfBo2zgM6YZoTk,4
145
- hjxdl-0.2.83.dist-info/RECORD,,
142
+ hjxdl-0.2.88.dist-info/METADATA,sha256=jAJxvM6YypO5nHnLRSe8Zhi8QwOlvmsfMFi8H9IjeVg,836
143
+ hjxdl-0.2.88.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
144
+ hjxdl-0.2.88.dist-info/top_level.txt,sha256=-kxwTM5JPhylp06z3zAVO3w6_h7wtBfBo2zgM6YZoTk,4
145
+ hjxdl-0.2.88.dist-info/RECORD,,
File without changes