deepanything 0.1.1__py3-none-any.whl → 0.1.2__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.
@@ -1,5 +1,5 @@
1
1
  import openai
2
- from openai.types.chat import chat_completion
2
+ from openai.types.chat import chat_completion, chat_completion_chunk
3
3
  from deepanything.Stream import Stream,AsyncStream
4
4
  from deepanything import Utility
5
5
 
@@ -126,6 +126,15 @@ class AsyncDeepseekReasonClient(AsyncReasonClient):
126
126
  .on_next(lambda it : it.__anext__())
127
127
  .on_close(lambda _: stream.close()))
128
128
 
129
+
130
+ def _rebuild_chunk_for_openai(
131
+ chunk:chat_completion_chunk.ChatCompletionChunk
132
+ ) -> chat_completion_chunk.ChatCompletionChunk:
133
+ chunk.choices[0].delta.reasoning_content = chunk.choices[0].delta.content
134
+ chunk.choices[0].delta.content = None
135
+ return chunk
136
+
137
+
129
138
  class OpenaiReasonClient(ReasonClient):
130
139
  client : openai.OpenAI
131
140
  def __init__(
@@ -146,13 +155,15 @@ class OpenaiReasonClient(ReasonClient):
146
155
  model: str,
147
156
  **kwargs
148
157
  ) -> Stream:
149
- return self.client.chat.completions.create(
158
+ stream = self.client.chat.completions.create(
150
159
  messages=messages,
151
160
  model=model,
152
161
  stream=True,
153
162
  **kwargs
154
163
  )
155
164
 
165
+ return Stream(stream).on_next(lambda it: _rebuild_chunk_for_openai(it.__next__())).on_close(lambda _: stream.close())
166
+
156
167
  def reason(
157
168
  self,
158
169
  messages:list[dict],
@@ -160,13 +171,20 @@ class OpenaiReasonClient(ReasonClient):
160
171
  stream = False,
161
172
  **kwargs
162
173
  ) -> Stream or chat_completion.ChatCompletion:
163
- return self.client.chat.completions.create(
174
+ if stream:
175
+ return self.reason_stream(messages, model, **kwargs)
176
+ completion = self.client.chat.completions.create(
164
177
  messages=messages,
165
178
  model=model,
166
179
  stream=stream,
167
180
  **kwargs
168
181
  )
169
182
 
183
+ completion.choices[0].message.reasoning_content = completion.choices[0].message.content
184
+ completion.choices[0].message.content = None
185
+
186
+ return completion
187
+
170
188
  class AsyncOpenaiReasonClient(AsyncReasonClient):
171
189
  client : openai.AsyncOpenAI
172
190
  def __init__(self,base_url:str,api_key:str,**kwargs) -> None:
@@ -182,22 +200,35 @@ class AsyncOpenaiReasonClient(AsyncReasonClient):
182
200
  model: str,
183
201
  **kwargs
184
202
  ) -> AsyncStream:
185
- return await self.client.chat.completions.create(
203
+
204
+ stream = await self.client.chat.completions.create(
186
205
  messages=messages,
187
206
  model=model,
188
207
  stream=True,
189
208
  **kwargs
190
209
  )
191
210
 
211
+ async def _next(it):
212
+ return _rebuild_chunk_for_openai(await it.__anext__())
213
+
214
+ return AsyncStream(stream).on_next(lambda it: _next(it)).on_close(lambda _: stream.close())
215
+
192
216
  async def reason(self,
193
217
  messages: list[dict],
194
218
  model: str,
195
219
  stream = False,
196
220
  **kwargs
197
221
  ) -> AsyncStream or chat_completion.ChatCompletion:
198
- return await self.client.chat.completions.create(
222
+ if stream:
223
+ return await self.reason_stream(messages, model, **kwargs)
224
+
225
+ completion = await self.client.chat.completions.create(
199
226
  messages=messages,
200
227
  model=model,
201
- stream=stream,
202
228
  **kwargs
203
- )
229
+ )
230
+
231
+ completion.choices[0].message.reasoning_content = completion.choices[0].message.content
232
+ completion.choices[0].message.content = None
233
+
234
+ return completion
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deepanything
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: DeepAnything is a project that provides DeepSeek R1's deep thinking capabilities for various large language models (LLMs).
5
5
  Author: Junity
6
6
  Author-email: 1727636624@qq.com
@@ -1,5 +1,5 @@
1
1
  deepanything/DeepAnythingClient.py,sha256=7yf4iteGjcDWcLKd3GD0OWv-A_d54QKVAuSHMl7-T54,15042
2
- deepanything/ReasonClient.py,sha256=8uV2wuDUmUP7ICCOfClVm5J2gBcdQJwI5F_-ftxS2Ho,5941
2
+ deepanything/ReasonClient.py,sha256=TxyXf7q3f_xASFA-blrKNHhaV38FIcFKmTnGBqU_d0U,7116
3
3
  deepanything/ResponseClient.py,sha256=oWPIQXknm7QEkG5Ysx9ejKUyISd0cHZF-HVG0fersOQ,2871
4
4
  deepanything/Stream.py,sha256=8ESR8ttjyPZ-uXPDENsVWUzaL34_GT2OZBJ0PWu7vsA,1578
5
5
  deepanything/Utility.py,sha256=HmiXU5X1eQO9iL292lfFA3dbGVjEPIM4Ayvw8Z8y2lk,6677
@@ -8,9 +8,9 @@ deepanything/__main__.py,sha256=x9LQGBlVnyML4yJ6Y3Rrt1pZ4xkLu0uZ569wKqwmpJQ,941
8
8
  deepanything/Server/Server.py,sha256=rrTVahuDe0U1U6V6IfWJ7p5c-LbOQ15T42lymbwzna4,7211
9
9
  deepanything/Server/Types.py,sha256=iN3X2QDnOyKwpuifUymeu1qg4OZ8uu4QG9ThttZFSDQ,390
10
10
  deepanything/Server/__init__.py,sha256=eIpn6NbNvEg4ST8CuuIuzPT3m_fTlmPC3sikPoPFsYo,92
11
- deepanything-0.1.1.dist-info/LICENSE,sha256=JWYd2E-mcNcSYjT5nk4ayM5kkkDq6ZlOxVcYsyqCIwU,1059
12
- deepanything-0.1.1.dist-info/METADATA,sha256=nEHVkjQXaTRgvlXh1aw0cc0nj6DgVXz_nqUtja8S_V0,5840
13
- deepanything-0.1.1.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
14
- deepanything-0.1.1.dist-info/entry_points.txt,sha256=UT4gNGx6dJsKBjZIl3VkMekh385O5WMbMidAAla6UB4,60
15
- deepanything-0.1.1.dist-info/top_level.txt,sha256=wGeRb__4jEJTclCUl0cxhgubD_Bq-QT38VIH6C4KpzY,13
16
- deepanything-0.1.1.dist-info/RECORD,,
11
+ deepanything-0.1.2.dist-info/LICENSE,sha256=JWYd2E-mcNcSYjT5nk4ayM5kkkDq6ZlOxVcYsyqCIwU,1059
12
+ deepanything-0.1.2.dist-info/METADATA,sha256=06fgJbN8qXxxsFKbwkUaBs3hJm4VDe5JO3lRAlrk0Ko,5840
13
+ deepanything-0.1.2.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
14
+ deepanything-0.1.2.dist-info/entry_points.txt,sha256=UT4gNGx6dJsKBjZIl3VkMekh385O5WMbMidAAla6UB4,60
15
+ deepanything-0.1.2.dist-info/top_level.txt,sha256=wGeRb__4jEJTclCUl0cxhgubD_Bq-QT38VIH6C4KpzY,13
16
+ deepanything-0.1.2.dist-info/RECORD,,