deepanything 0.1.1__py3-none-any.whl → 0.1.2__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- 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
|