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.
- deepanything/ReasonClient.py +38 -7
- {deepanything-0.1.1.dist-info → deepanything-0.1.2.dist-info}/METADATA +1 -1
- {deepanything-0.1.1.dist-info → deepanything-0.1.2.dist-info}/RECORD +7 -7
- {deepanything-0.1.1.dist-info → deepanything-0.1.2.dist-info}/LICENSE +0 -0
- {deepanything-0.1.1.dist-info → deepanything-0.1.2.dist-info}/WHEEL +0 -0
- {deepanything-0.1.1.dist-info → deepanything-0.1.2.dist-info}/entry_points.txt +0 -0
- {deepanything-0.1.1.dist-info → deepanything-0.1.2.dist-info}/top_level.txt +0 -0
deepanything/ReasonClient.py
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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,5 +1,5 @@
|
|
1
1
|
deepanything/DeepAnythingClient.py,sha256=7yf4iteGjcDWcLKd3GD0OWv-A_d54QKVAuSHMl7-T54,15042
|
2
|
-
deepanything/ReasonClient.py,sha256=
|
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.
|
12
|
-
deepanything-0.1.
|
13
|
-
deepanything-0.1.
|
14
|
-
deepanything-0.1.
|
15
|
-
deepanything-0.1.
|
16
|
-
deepanything-0.1.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|