hjxdl 0.2.45__py3-none-any.whl → 0.2.46__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.45'
16
- __version_tuple__ = version_tuple = (0, 2, 45)
15
+ __version__ = version = '0.2.46'
16
+ __version_tuple__ = version_tuple = (0, 2, 46)
@@ -109,4 +109,135 @@ FN_DESC = {
109
109
  """,
110
110
 
111
111
  "default": None
112
+ }
113
+
114
+
115
+ TOOL_DESC = {
116
+
117
+ "get_weather":{
118
+ "desc": """
119
+ ## 函数名:get_weather
120
+ 描述:只有在用户询问一个城市的天气时,调用此工具获得此城市的天气信息
121
+ 参数:
122
+ # city (str): 城市名
123
+ 返回值 (str):天气信息
124
+ """,
125
+ "json": """
126
+ 需要返回的json
127
+ {
128
+ "function_name": "get_weather",
129
+ "params":
130
+ {
131
+ "city": <city_name>
132
+ }
133
+ }
134
+
135
+ """
136
+ },
137
+
138
+ "get_datetime_by_cityname": {
139
+ "desc": """
140
+ ## 函数名:get_datetime_by_cityname
141
+ 描述:只有在用户询问一个城市当前的日期或时间时,调用此工具可以获得此城市当前的日期和时间
142
+ 参数:
143
+ # city (str): 城市名
144
+ 返回值 (str):这个城市当前所在时区的日期和时间
145
+ """,
146
+ "json": """
147
+ 需要给出的json
148
+ {
149
+ "function_name": "get_datetime_by_cityname",
150
+ "params":
151
+ {
152
+ "city": <city_name>
153
+ }
154
+ }
155
+ """
156
+ },
157
+
158
+ "execute_code": {
159
+ "desc": """
160
+ ## 函数名:execute_code,
161
+ 描述:当用户明确要求执行一段代码时,调用此工具,执行这段代码,返回执行结果。
162
+ 参数:
163
+ # code (str): 用户要求执行的代码
164
+ 返回值 (str): 执行结果
165
+ """,
166
+ "json": """
167
+ 需要返回的json
168
+ {
169
+ "function_name": "execute_code",
170
+ "params":
171
+ {
172
+ "code": <code>
173
+ }
174
+ }
175
+ """
176
+ },
177
+
178
+ "calculate": {
179
+ "desc": """
180
+ ## 函数名:calculate,
181
+ 描述:当需要计算一个数学表达式时,调用此工具,计算这个表达式,返回计算结果。
182
+ 参数:
183
+ # expression (str): 用户要求的数学表达式
184
+ 返回值 (str): 计算结果
185
+ """,
186
+ "json": """
187
+ 需要返回的json
188
+ {
189
+ "function_name": "calculate",
190
+ "params":
191
+ {
192
+ "expression": <expression>
193
+ }
194
+ }
195
+ """
196
+ },
197
+
198
+ "fetch_baidu_results": {
199
+ "desc": """
200
+ ## 函数名:fetch_baidu_results,
201
+ 描述:在用户明确要求查询网络上相关信息时,调用此工具,返回查询结果。
202
+ 参数:
203
+ # query (str): 用户要求的查询内容
204
+ # max_n_links (int, optional): 搜索条目的最大数目,若用户指定了数目,则使用用户指定的数目,若用户提问中没有指定,你需要在下面的json中"max_n_links"这一项指定为数值3。
205
+ 返回值 (str): 联网搜索到的信息
206
+ """,
207
+ "json": """
208
+ 需要返回的json
209
+ {
210
+ "function_name": "fetch_baidu_results",
211
+ "params":
212
+ {
213
+ "query": <query from user question>,
214
+ "max_n_links": <num of max results, 如果用户没有要求,这一项则指定为3>
215
+ }
216
+ }
217
+ """
218
+ },
219
+
220
+ "wolfram_alpha_calculate": {
221
+ "desc": """
222
+ ## 函数名:wolfram_alpha_calculate
223
+ 描述:当用户要求计算一个数学表达式时,调用此工具,计算这个表达式,返回计算结果。
224
+ 参数:
225
+ # query (str): 用户要求的数学表达式,需要转换为英文,比如"integrate sin(x)"
226
+ 返回值 (str): 计算结果
227
+ """,
228
+ "json": """
229
+ 需要返回的json
230
+ {
231
+ "function_name": "wolfram_alpha_calculate",
232
+ "params":
233
+ {
234
+ "query": <expression>
235
+ }
236
+ }
237
+ """
238
+ },
239
+
240
+
241
+ "default": None
242
+
112
243
  }
hdl/utils/llm/chat.py CHANGED
@@ -7,7 +7,7 @@ import subprocess
7
7
 
8
8
  from openai import OpenAI
9
9
  from ..desc.template import FN_TEMPLATE, COT_TEMPLATE
10
- from ..desc.func_desc import FN_DESC
10
+ from ..desc.func_desc import TOOL_DESC
11
11
  import json
12
12
  # import traceback
13
13
 
@@ -114,6 +114,7 @@ class OpenAI_M():
114
114
  groq_api_key: str = None,
115
115
  tools: list = None,
116
116
  tool_desc: dict = None,
117
+ cot_desc: str = None,
117
118
  *args,
118
119
  **kwargs
119
120
  ):
@@ -136,13 +137,26 @@ class OpenAI_M():
136
137
  **kwargs
137
138
  )
138
139
  self.tools: list = tools
139
- self.tool_desc: dict = FN_DESC
140
+ self.tool_desc: dict = TOOL_DESC
140
141
  if tool_desc is not None:
141
142
  self.tool_desc = self.tool_desc | tool_desc
142
143
 
143
- self.tool_desc_str = "\n".join(
144
- [self.tool_desc.get(tool.__name__, "") for tool in self.tools]
145
- )
144
+ self.tool_descs = [
145
+ self.tool_desc[tool.__name__]['desc']
146
+ for tool in self.tools
147
+ ]
148
+ self.tool_descs_verbose = [
149
+ self.tool_desc[tool.__name__]['desc']
150
+ + self.tool_desc[tool.__name__]['json']
151
+ for tool in self.tools
152
+ ]
153
+
154
+ self.tool_info = "\n".join(self.tool_descs)
155
+ self.tool_desc_str = "\n".join(self.tool_descs_verbose)
156
+
157
+ self.cot_desc = cot_desc
158
+ if not self.cot_desc:
159
+ self.cot_desc = COT_TEMPLATE
146
160
 
147
161
  def get_thought_chain(
148
162
  self,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hjxdl
3
- Version: 0.2.45
3
+ Version: 0.2.46
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=nGgUyVA_4rTIYkdDsp66RxHDWEcsH7sXt3KIQQLUTg4,413
2
+ hdl/_version.py,sha256=FJ1FAK3elIMCAdZny85iRWTGI-xB736Y-r-Yr7pOWg4,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
@@ -122,13 +122,13 @@ hdl/utils/database_tools/connect.py,sha256=xCacGucKxlQUXs6AsNddpeECvdqT1180V1ZWq
122
122
  hdl/utils/database_tools/datetime.py,sha256=xqE2xNiOpADzX-R8_bM0bioJRF3Ay9Jp1CAG6dy6uVI,1202
123
123
  hdl/utils/database_tools/web.py,sha256=PJ7R1chUD-vz-Up0orfFqdrZq3CFOlwiO9gIjFSb-R8,5224
124
124
  hdl/utils/desc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
- hdl/utils/desc/func_desc.py,sha256=nQdFV-b_xCwlgD6RVPLzh0jowRqmlJ1RaJZd_7ACi30,3192
125
+ hdl/utils/desc/func_desc.py,sha256=Y8Aj3vR2aU-SXVS-UC4w7yDTAw8AbkkPWwNA8vpHMJ8,6423
126
126
  hdl/utils/desc/template.py,sha256=09wnkMgg4Kxtl7zbsvQe61DilRDRUb-In5Qbi3809DY,2216
127
127
  hdl/utils/general/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
128
  hdl/utils/general/glob.py,sha256=8-RCnt6L297wMIfn34ZAMCsGCZUjHG3MGglGZI1cX0g,491
129
129
  hdl/utils/general/runners.py,sha256=aWvEXYeuIF_F0AwucHIrrOOeeTM89goEFwW1rM35x1U,2231
130
130
  hdl/utils/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
- hdl/utils/llm/chat.py,sha256=GyHyQpFx5PbV9tjo3nJYhfB3tpx9Jl8m7IF4neQdLfQ,16313
131
+ hdl/utils/llm/chat.py,sha256=KaXWFB1FddtpMwhSdPrdNJLsmHC9xc6wQU8NOR07DmM,16750
132
132
  hdl/utils/llm/chatgr.py,sha256=A9SCWAvQulgO2x0ArIqcmgd_iVWVbSi1Oj15Diwb3Ok,3743
133
133
  hdl/utils/llm/embs.py,sha256=Tf0FOYrOFZp7qQpEPiSCXzlgyHH0X9HVTUtsup74a9E,7174
134
134
  hdl/utils/llm/extract.py,sha256=2sK_WJzmYIc8iuWaM9DA6Nw3_6q1O4lJ5pKpcZo-bBA,6512
@@ -139,7 +139,7 @@ hdl/utils/schedulers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
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.45.dist-info/METADATA,sha256=WoEaVbJJ7bCk7ZnP4jEQNUpNyKcVAblteE8yW1DcF6M,836
143
- hjxdl-0.2.45.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
144
- hjxdl-0.2.45.dist-info/top_level.txt,sha256=-kxwTM5JPhylp06z3zAVO3w6_h7wtBfBo2zgM6YZoTk,4
145
- hjxdl-0.2.45.dist-info/RECORD,,
142
+ hjxdl-0.2.46.dist-info/METADATA,sha256=uvPbmQ4GOw2FqSbRtguOClwJgwKB8Akfu10-kORtKr0,836
143
+ hjxdl-0.2.46.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
144
+ hjxdl-0.2.46.dist-info/top_level.txt,sha256=-kxwTM5JPhylp06z3zAVO3w6_h7wtBfBo2zgM6YZoTk,4
145
+ hjxdl-0.2.46.dist-info/RECORD,,
File without changes