33
33
DEFAULT_RETRIEVAL_CONFIG = RetrievalConfig (top_k = 3 , method = RetrievalMethod .USER_MESSAGE )
34
34
35
35
36
+ def _get_assistant_dict_params (
37
+ memory : Optional [Union [AssistantMemory , Dict [str , Any ]]] = None ,
38
+ tools : Optional [List [Union [AssistantTool , Dict [str , Any ]]]] = None ,
39
+ retrievals : Optional [List [Union [AssistantRetrieval , Dict [str , Any ]]]] = None ,
40
+ retrieval_configs : Optional [Union [RetrievalConfig , Dict [str , Any ]]] = None ,
41
+ ):
42
+ memory = memory if isinstance (memory , AssistantMemory ) else (AssistantMemory (** memory ) if memory else None )
43
+ tools = [tool if isinstance (tool , AssistantTool ) else AssistantTool (** tool ) for tool in (tools or [])] or None
44
+ retrievals = [
45
+ retrieval if isinstance (retrieval , AssistantRetrieval ) else AssistantRetrieval (** retrieval )
46
+ for retrieval in (retrievals or [])
47
+ ] or None
48
+ retrieval_configs = (
49
+ retrieval_configs
50
+ if isinstance (retrieval_configs , RetrievalConfig )
51
+ else RetrievalConfig (** retrieval_configs )
52
+ if retrieval_configs
53
+ else None
54
+ )
55
+ return memory , tools , retrievals , retrieval_configs
56
+
57
+
36
58
def list_assistants (
37
59
order : str = "desc" ,
38
60
limit : int = 20 ,
@@ -118,12 +140,12 @@ async def a_get_assistant(assistant_id: str) -> Assistant:
118
140
119
141
def create_assistant (
120
142
model_id : str ,
121
- memory : AssistantMemory ,
143
+ memory : Union [ AssistantMemory , Dict [ str , Any ]] ,
122
144
name : Optional [str ] = None ,
123
145
description : Optional [str ] = None ,
124
146
system_prompt_template : Optional [List [str ]] = None ,
125
- tools : Optional [List [AssistantTool ]] = None ,
126
- retrievals : Optional [List [AssistantRetrieval ]] = None ,
147
+ tools : Optional [List [Union [ AssistantTool , Dict [ str , Any ]] ]] = None ,
148
+ retrievals : Optional [List [Union [ AssistantRetrieval , Dict [ str , Any ]] ]] = None ,
127
149
retrieval_configs : Optional [Union [RetrievalConfig , Dict [str , Any ]]] = None ,
128
150
metadata : Optional [Dict [str , str ]] = None ,
129
151
) -> Assistant :
@@ -140,12 +162,9 @@ def create_assistant(
140
162
:param metadata: The assistant metadata. It can store up to 16 key-value pairs where each key's length is less than 64 and value's length is less than 512.
141
163
:return: The created assistant object.
142
164
"""
143
- if retrieval_configs :
144
- retrieval_configs = (
145
- retrieval_configs
146
- if isinstance (retrieval_configs , RetrievalConfig )
147
- else RetrievalConfig (** retrieval_configs )
148
- )
165
+ memory , tools , retrievals , retrieval_configs = _get_assistant_dict_params (
166
+ memory = memory , tools = tools , retrievals = retrievals , retrieval_configs = retrieval_configs
167
+ )
149
168
150
169
body = AssistantCreateRequest (
151
170
model_id = model_id ,
@@ -164,12 +183,12 @@ def create_assistant(
164
183
165
184
async def a_create_assistant (
166
185
model_id : str ,
167
- memory : AssistantMemory ,
186
+ memory : Union [ AssistantMemory , Dict [ str , Any ]] ,
168
187
name : Optional [str ] = None ,
169
188
description : Optional [str ] = None ,
170
189
system_prompt_template : Optional [List [str ]] = None ,
171
- tools : Optional [List [AssistantTool ]] = None ,
172
- retrievals : Optional [List [AssistantRetrieval ]] = None ,
190
+ tools : Optional [List [Union [ AssistantTool , Dict [ str , Any ]] ]] = None ,
191
+ retrievals : Optional [List [Union [ AssistantRetrieval , Dict [ str , Any ]] ]] = None ,
173
192
retrieval_configs : Optional [Union [RetrievalConfig , Dict [str , Any ]]] = None ,
174
193
metadata : Optional [Dict [str , str ]] = None ,
175
194
) -> Assistant :
@@ -186,12 +205,9 @@ async def a_create_assistant(
186
205
:param metadata: The assistant metadata. It can store up to 16 key-value pairs where each key's length is less than 64 and value's length is less than 512.
187
206
:return: The created assistant object.
188
207
"""
189
- if retrieval_configs :
190
- retrieval_configs = (
191
- retrieval_configs
192
- if isinstance (retrieval_configs , RetrievalConfig )
193
- else RetrievalConfig (** retrieval_configs )
194
- )
208
+ memory , tools , retrievals , retrieval_configs = _get_assistant_dict_params (
209
+ memory = memory , tools = tools , retrievals = retrievals , retrieval_configs = retrieval_configs
210
+ )
195
211
196
212
body = AssistantCreateRequest (
197
213
model_id = model_id ,
@@ -214,9 +230,9 @@ def update_assistant(
214
230
name : Optional [str ] = None ,
215
231
description : Optional [str ] = None ,
216
232
system_prompt_template : Optional [List [str ]] = None ,
217
- memory : Optional [AssistantMemory ] = None ,
218
- tools : Optional [List [AssistantTool ]] = None ,
219
- retrievals : Optional [List [AssistantRetrieval ]] = None ,
233
+ memory : Optional [Union [ AssistantMemory , Dict [ str , Any ]] ] = None ,
234
+ tools : Optional [List [Union [ AssistantTool , Dict [ str , Any ]] ]] = None ,
235
+ retrievals : Optional [List [Union [ AssistantRetrieval , Dict [ str , Any ]] ]] = None ,
220
236
retrieval_configs : Optional [Union [RetrievalConfig , Dict [str , Any ]]] = None ,
221
237
metadata : Optional [Dict [str , str ]] = None ,
222
238
) -> Assistant :
@@ -235,12 +251,10 @@ def update_assistant(
235
251
:return: The updated assistant object.
236
252
"""
237
253
238
- if retrieval_configs :
239
- retrieval_configs = (
240
- retrieval_configs
241
- if isinstance (retrieval_configs , RetrievalConfig )
242
- else RetrievalConfig (** retrieval_configs )
243
- )
254
+ memory , tools , retrievals , retrieval_configs = _get_assistant_dict_params (
255
+ memory = memory , tools = tools , retrievals = retrievals , retrieval_configs = retrieval_configs
256
+ )
257
+
244
258
body = AssistantUpdateRequest (
245
259
model_id = model_id ,
246
260
name = name ,
@@ -262,9 +276,9 @@ async def a_update_assistant(
262
276
name : Optional [str ] = None ,
263
277
description : Optional [str ] = None ,
264
278
system_prompt_template : Optional [List [str ]] = None ,
265
- memory : Optional [AssistantMemory ] = None ,
266
- tools : Optional [List [AssistantTool ]] = None ,
267
- retrievals : Optional [List [AssistantRetrieval ]] = None ,
279
+ memory : Optional [Union [ AssistantMemory , Dict [ str , Any ]] ] = None ,
280
+ tools : Optional [List [Union [ AssistantTool , Dict [ str , Any ]] ]] = None ,
281
+ retrievals : Optional [List [Union [ AssistantRetrieval , Dict [ str , Any ]] ]] = None ,
268
282
retrieval_configs : Optional [Union [RetrievalConfig , Dict [str , Any ]]] = None ,
269
283
metadata : Optional [Dict [str , str ]] = None ,
270
284
) -> Assistant :
@@ -283,12 +297,10 @@ async def a_update_assistant(
283
297
:return: The updated assistant object.
284
298
"""
285
299
286
- if retrieval_configs :
287
- retrieval_configs = (
288
- retrieval_configs
289
- if isinstance (retrieval_configs , RetrievalConfig )
290
- else RetrievalConfig (** retrieval_configs )
291
- )
300
+ memory , tools , retrievals , retrieval_configs = _get_assistant_dict_params (
301
+ memory = memory , tools = tools , retrievals = retrievals , retrieval_configs = retrieval_configs
302
+ )
303
+
292
304
body = AssistantUpdateRequest (
293
305
model_id = model_id ,
294
306
name = name ,
0 commit comments