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 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.89'
16
- __version_tuple__ = version_tuple = (0, 2, 89)
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]
@@ -681,10 +682,16 @@ class MMChatter():
681
682
  text=True
682
683
  )
683
684
 
684
- # Only capture stdout (ignoring verbose logging)
685
+ # Process the output
685
686
  output = result.stdout
686
687
 
687
- # Process the model's response by parsing the output
688
- response = output.splitlines()[-1].strip('<assistant>') # Assuming the last line is the model's 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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hjxdl
3
- Version: 0.2.89
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=T4uFqSpd445gDAMK7t2Cd8f3g3HJ-xiBRBi26D-0agQ,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=y3GgpnBNrFoQghUXGQe-onfJ9GvxH2ATiuO6DCG024k,24657
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.89.dist-info/METADATA,sha256=x7Ytfsf8Y1a6rPJTU431yH8BBth-02CEjFVVZ1a9sh0,836
143
- hjxdl-0.2.89.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
144
- hjxdl-0.2.89.dist-info/top_level.txt,sha256=-kxwTM5JPhylp06z3zAVO3w6_h7wtBfBo2zgM6YZoTk,4
145
- hjxdl-0.2.89.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