hjxdl 0.3.15__py3-none-any.whl → 0.3.16__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.3.15'
16
- __version_tuple__ = version_tuple = (0, 3, 15)
15
+ __version__ = version = '0.3.16'
16
+ __version_tuple__ = version_tuple = (0, 3, 16)
@@ -0,0 +1,124 @@
1
+ import yaml
2
+ import typing as t
3
+
4
+ from openai import OpenAI
5
+
6
+
7
+ class OpenAIWrapper(object):
8
+ def __init__(
9
+ self,
10
+ client_conf: dict = None,
11
+ client_conf_dir: str = None,
12
+ load_conf: bool = True,
13
+ *args,
14
+ **kwargs
15
+ ):
16
+ self.client_conf = {}
17
+ if client_conf is None:
18
+ assert client_conf_dir is not None
19
+ self.client_conf_path = client_conf_dir
20
+ if load_conf:
21
+ self.load_clients()
22
+ else:
23
+ self.client_conf = client_conf
24
+
25
+ # self.clients = {}
26
+ for _, conf in self.client_conf.items():
27
+ conf["client"] = OpenAI(
28
+ base_url=conf["host"],
29
+ api_key=conf.get("api_key", "dummy_key"),
30
+ *args,
31
+ **kwargs
32
+ )
33
+
34
+ def add_client(
35
+ self,
36
+ client_id: str,
37
+ host: str,
38
+ port: int = None,
39
+ model: str = "default_model",
40
+ api_key: str = "dummy_key",
41
+ **kwargs
42
+ ):
43
+ self.client_conf[client_id] = {}
44
+ if not host.startswith('http') and port:
45
+ host = f"http://{host}:{port}/v1"
46
+ self.client_conf[client_id]['host'] = host
47
+ self.client_conf[client_id]['model'] = model
48
+ self.client_conf[client_id]['client'] = OpenAI(
49
+ base_url=host,
50
+ api_key=api_key,
51
+ **kwargs
52
+ )
53
+
54
+ def load_clients(self):
55
+ with open(self.client_conf_path, 'r') as file:
56
+ data = yaml.safe_load(file)
57
+
58
+ # 更新 host 字段
59
+ for _, value in data.items():
60
+ host = value.get('host', '')
61
+ port = value.get('port', '')
62
+ if not host.startswith('http') and port: # 确保有 port 才处理
63
+ value['host'] = f"http://{host}:{port}/v1"
64
+ self.client_conf = data
65
+
66
+
67
+ def get_resp(
68
+ self,
69
+ prompt,
70
+ client_id: str = None,
71
+ history: list = None,
72
+ sys_info: str = None,
73
+ assis_info: str = None,
74
+ images: list = None,
75
+ image_keys: tuple = ("image_url", "url"),
76
+ model: str=None,
77
+ tools: list = None,
78
+ stream: bool = True,
79
+ **kwargs: t.Any,
80
+ ):
81
+
82
+ client = self.client_conf[client_id]['client']
83
+ messages = []
84
+ if history:
85
+ messages = history
86
+
87
+ if sys_info:
88
+ messages.append({
89
+ "role": "system",
90
+ "content": sys_info
91
+ })
92
+
93
+
94
+ if not model:
95
+ model = self.client_conf[client_id]["model"]
96
+ # Adjust the image_keys to be a tuple of length 3 based on its current length
97
+ if isinstance(image_keys, str):
98
+ image_keys = (image_keys,) * 3
99
+ elif len(image_keys) == 2:
100
+ image_keys = (image_keys[0],) + tuple(image_keys)
101
+ elif len(image_keys) == 1:
102
+ image_keys = (image_keys[0],) * 3
103
+
104
+ content = []
105
+ if images:
106
+ if isinstance(images, str):
107
+ images = [images]
108
+ for img in images:
109
+ content.append({
110
+ "type": image_keys[0],
111
+ image_keys[1]: {
112
+ image_keys[2]: img
113
+ }
114
+ })
115
+ else:
116
+ # If no images are provided, content is simply the prompt text
117
+ content = prompt
118
+
119
+ # Add the user's input as a message
120
+ messages.append({
121
+ "role": "user",
122
+ "content": content
123
+ })
124
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: hjxdl
3
- Version: 0.3.15
3
+ Version: 0.3.16
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=9bARtG-NIsnxdzdFmq2OMzx2-WMRy4fvkJadsRpAZKk,413
2
+ hdl/_version.py,sha256=D8u-23f8Le_E16tPMMyTPeU4VTKL4yR8GkJhKkxDaXE,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
@@ -133,14 +133,15 @@ 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/llm_wrapper.py,sha256=sE0vays3ndXTa1HozoLOERYcloxyBW63EWdSwMLp2Yo,3511
136
137
  hdl/utils/llm/vis.py,sha256=SSP6tOwKLq0hWcpM3twI9TitqzBmKjlcGrnXEWYlCzM,26055
137
138
  hdl/utils/llm/visrag.py,sha256=0i-VrxqgiV-J7R3VPshu9oc7-rKjFJOldYik3HDXj6M,10176
138
139
  hdl/utils/schedulers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
140
  hdl/utils/schedulers/norm_lr.py,sha256=bDwCmdEK-WkgxQMFBiMuchv8Mm7C0-GZJ6usm-PQk14,4461
140
141
  hdl/utils/weather/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
142
  hdl/utils/weather/weather.py,sha256=k11o6wM15kF8b9NMlEfrg68ak-SfSYLN3nOOflFUv-I,4381
142
- hjxdl-0.3.15.dist-info/LICENSE,sha256=lkMiSbeZHBQLB9LJEkS9-L3Z-LBC4yGnKrzHSG8RkPM,2599
143
- hjxdl-0.3.15.dist-info/METADATA,sha256=E5jtn_4AZ-D44HlJFHsYr6UVxxY1j-EirEIkMT0w1Rg,1310
144
- hjxdl-0.3.15.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
145
- hjxdl-0.3.15.dist-info/top_level.txt,sha256=-kxwTM5JPhylp06z3zAVO3w6_h7wtBfBo2zgM6YZoTk,4
146
- hjxdl-0.3.15.dist-info/RECORD,,
143
+ hjxdl-0.3.16.dist-info/LICENSE,sha256=lkMiSbeZHBQLB9LJEkS9-L3Z-LBC4yGnKrzHSG8RkPM,2599
144
+ hjxdl-0.3.16.dist-info/METADATA,sha256=cCJsd4iB2Da-q95aYZ6GmY6TT0f9nHOCtjNDg1WQDC0,1310
145
+ hjxdl-0.3.16.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
146
+ hjxdl-0.3.16.dist-info/top_level.txt,sha256=-kxwTM5JPhylp06z3zAVO3w6_h7wtBfBo2zgM6YZoTk,4
147
+ hjxdl-0.3.16.dist-info/RECORD,,
File without changes