hjxdl 0.2.41__py3-none-any.whl → 0.2.42__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.41'
16
- __version_tuple__ = version_tuple = (0, 2, 41)
15
+ __version__ = version = '0.2.42'
16
+ __version_tuple__ = version_tuple = (0, 2, 42)
@@ -1,4 +1,5 @@
1
- from duckduckgo_search import DDGS
1
+ import os
2
+
2
3
  import requests
3
4
  from bs4 import BeautifulSoup
4
5
 
@@ -15,6 +16,7 @@ def web_search_text(
15
16
  Returns:
16
17
  str: Text retrieved from the web search results.
17
18
  """
19
+ from duckduckgo_search import DDGS
18
20
  if max_results < 3:
19
21
  max_results = 3
20
22
  elif max_results > 5:
@@ -93,4 +95,53 @@ def fetch_baidu_results(query, max_n_links=3):
93
95
  print(f"Failed to fetch {link}: {e}")
94
96
 
95
97
  # 返回拼接的文本内容
96
- return '\n'.join(text_content)
98
+ return '\n'.join(text_content)
99
+
100
+
101
+ def wolfram_alpha_calculate(query):
102
+ """
103
+ This function sends a query to Wolfram Alpha and returns the calculation result.
104
+
105
+ Parameters:
106
+ query (str): The query string to send to Wolfram Alpha.
107
+
108
+ Returns:
109
+ str: The calculation result from Wolfram Alpha, or an error message if the request fails.
110
+ """
111
+ # Get the Wolfram Alpha App ID from environment variables
112
+ app_id = os.getenv('WOLFRAM_APP_ID', None)
113
+ if not app_id:
114
+ return "Error: Wolfram Alpha App ID is not set in environment variables."
115
+
116
+ # Define the API endpoint for Wolfram Alpha
117
+ url = 'https://api.wolframalpha.com/v2/query'
118
+ # Prepare the request parameters
119
+ params = {
120
+ 'appid': app_id,
121
+ 'input': query,
122
+ 'output': 'json',
123
+ }
124
+
125
+ try:
126
+ # Send a GET request to Wolfram Alpha
127
+ response = requests.get(url, params=params, timeout=20)
128
+ # Parse the returned data as JSON
129
+ data = response.json()
130
+
131
+ # Check if the query was successful
132
+ if data['queryresult']['success']:
133
+ result = ''
134
+ # Iterate through the returned data to extract and accumulate the plaintext results
135
+ for pod in data['queryresult']['pods']:
136
+ for subpod in pod.get('subpods', []):
137
+ plaintext = subpod.get('plaintext')
138
+ if plaintext:
139
+ result += f"{plaintext}\n"
140
+ # Return the accumulated result, or a message if no plaintext result is available
141
+ return result.strip() if result else "No plaintext result available."
142
+ else:
143
+ return "No results found for the query."
144
+ except requests.Timeout:
145
+ return "Error: The request to Wolfram Alpha timed out."
146
+ except Exception as e:
147
+ return f"An error occurred: {str(e)}"
hdl/utils/llm/chat.py CHANGED
@@ -140,10 +140,33 @@ class OpenAI_M():
140
140
  if tool_desc is not None:
141
141
  self.tool_desc = self.tool_desc | tool_desc
142
142
 
143
+ def get_thought_chain(
144
+ self,
145
+ prompt,
146
+ **kwargs
147
+ ):
148
+ steps = []
149
+ total_thinking_time = 0
150
+ is_final: bool = False
151
+ while True:
152
+ yield {
153
+ "type": "step",
154
+ "data": steps,
155
+ "extra": None
156
+ }
157
+ if is_final:
158
+ break
159
+ yield {
160
+ "type": "final",
161
+ "data": steps,
162
+ "total_time": total_thinking_time
163
+ }
164
+
143
165
  def get_resp(
144
166
  self,
145
167
  prompt : str,
146
168
  sys_info: str = None,
169
+ assis_info: str = None,
147
170
  images: list = None,
148
171
  image_keys: tuple = ("image_url", "url"),
149
172
  stop: list[str] | None = ["USER:", "ASSISTANT:"],
@@ -198,6 +221,11 @@ class OpenAI_M():
198
221
  "role": "user",
199
222
  "content": content
200
223
  })
224
+ if assis_info:
225
+ messages.append({
226
+ "role": "assistant",
227
+ "content": assis_info
228
+ })
201
229
 
202
230
  response = self.client.chat.completions.create(
203
231
  messages=messages,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hjxdl
3
- Version: 0.2.41
3
+ Version: 0.2.42
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=FZD5xt7drsHzEbxaZBE2pcXfvoVqAqneusIHzB-dFnI,413
2
+ hdl/_version.py,sha256=ErCkM0K6ix4_v_PL5flvrXq2XQXCxsWfoy3q3rTAsOY,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
@@ -120,7 +120,7 @@ hdl/utils/chemical_tools/sdf.py,sha256=71PEqU0H885L6IeGHEa6n7ZLZThvMsZOVLuFG2wno
120
120
  hdl/utils/database_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
121
121
  hdl/utils/database_tools/connect.py,sha256=xCacGucKxlQUXs6AsNddpeECvdqT1180V1ZWqHrUdNA,875
122
122
  hdl/utils/database_tools/datetime.py,sha256=xqE2xNiOpADzX-R8_bM0bioJRF3Ay9Jp1CAG6dy6uVI,1202
123
- hdl/utils/database_tools/web.py,sha256=HvU7BtODTRSgrO9Bho5Nj0ImtlAOJ9nrOfDPWPp7qE8,3386
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
125
  hdl/utils/desc/func_desc.py,sha256=tDGEuUuqg6LnBVpmWQIxYZPvrcb0N70A9i20PbujCks,2660
126
126
  hdl/utils/desc/template.py,sha256=a0UAkkKctt_EHY9UECsIIAwVkGPcM1Hr01HSkRMeIuw,1272
@@ -128,7 +128,7 @@ hdl/utils/general/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
128
128
  hdl/utils/general/glob.py,sha256=8-RCnt6L297wMIfn34ZAMCsGCZUjHG3MGglGZI1cX0g,491
129
129
  hdl/utils/general/runners.py,sha256=w9kgR9UgGug0s6NR27hpfPQbbFvRtmtqz5IfwyMTC1E,2351
130
130
  hdl/utils/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
- hdl/utils/llm/chat.py,sha256=RUOtdVvEfxpQqnxGcWJrYxooQWYM3TfdPekFCJgS4XM,14997
131
+ hdl/utils/llm/chat.py,sha256=tSIg5FcMutcsmEnjOJI-ZP0OkQeB8csuUu2cwsapsAg,15658
132
132
  hdl/utils/llm/chatgr.py,sha256=lKaDeimYz-Bw32QXYtde51xjf7gbfS2CEYt5R0ODunM,4075
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.41.dist-info/METADATA,sha256=-gfo5xuAzllJZVl5SkgE8IGzpDKTLPh-WzwDKOqJK_U,836
143
- hjxdl-0.2.41.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
144
- hjxdl-0.2.41.dist-info/top_level.txt,sha256=-kxwTM5JPhylp06z3zAVO3w6_h7wtBfBo2zgM6YZoTk,4
145
- hjxdl-0.2.41.dist-info/RECORD,,
142
+ hjxdl-0.2.42.dist-info/METADATA,sha256=6uQ_KhJW8cYaF0ufn0n4RpyZeYby0vKwTzvQ15JCIas,836
143
+ hjxdl-0.2.42.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
144
+ hjxdl-0.2.42.dist-info/top_level.txt,sha256=-kxwTM5JPhylp06z3zAVO3w6_h7wtBfBo2zgM6YZoTk,4
145
+ hjxdl-0.2.42.dist-info/RECORD,,
File without changes