seekrai 0.5.0__tar.gz → 0.5.2__tar.gz
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.
- {seekrai-0.5.0 → seekrai-0.5.2}/PKG-INFO +5 -5
- {seekrai-0.5.0 → seekrai-0.5.2}/README.md +4 -4
- {seekrai-0.5.0 → seekrai-0.5.2}/pyproject.toml +1 -1
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/chat/completions.py +1 -1
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/files.py +150 -18
- seekrai-0.5.2/src/seekrai/types/agents/tools/schemas/file_search_env.py +16 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/files.py +1 -2
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/vectordb.py +2 -0
- seekrai-0.5.0/src/seekrai/types/agents/tools/schemas/file_search_env.py +0 -11
- {seekrai-0.5.0 → seekrai-0.5.2}/LICENSE +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/__init__.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/abstract/__init__.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/abstract/api_requestor.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/abstract/response_parsing.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/client.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/constants.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/error.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/filemanager.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/__init__.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/agents/__init__.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/agents/agent_inference.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/agents/agents.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/agents/threads.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/alignment.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/chat/__init__.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/completions.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/deployments.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/embeddings.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/finetune.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/images.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/ingestion.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/models.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/projects.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/resource_base.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/resources/vectordb.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/seekrflow_response.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/__init__.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/abstract.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/agents/__init__.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/agents/agent.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/agents/runs.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/agents/threads.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/agents/tools/__init__.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/agents/tools/env_model_config.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/agents/tools/schemas/__init__.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/agents/tools/schemas/file_search.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/agents/tools/tool.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/agents/tools/tool_env_types.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/agents/tools/tool_types.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/alignment.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/chat_completions.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/common.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/completions.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/deployments.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/embeddings.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/error.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/finetune.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/images.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/ingestion.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/models.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/types/projects.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/utils/__init__.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/utils/_log.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/utils/api_helpers.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/utils/files.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/utils/tools.py +0 -0
- {seekrai-0.5.0 → seekrai-0.5.2}/src/seekrai/version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: seekrai
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.2
|
|
4
4
|
Summary: Python client for SeekrAI
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Author: SeekrFlow
|
|
@@ -70,7 +70,7 @@ from seekrai import SeekrFlow
|
|
|
70
70
|
client = SeekrFlow(api_key=os.environ.get("SEEKR_API_KEY"))
|
|
71
71
|
|
|
72
72
|
response = client.chat.completions.create(
|
|
73
|
-
model="meta-llama-3-
|
|
73
|
+
model="meta-llama/Llama-3.1-8B-Instruct",
|
|
74
74
|
messages=[{"role": "user", "content": "tell me about new york"}],
|
|
75
75
|
)
|
|
76
76
|
print(response.choices[0].message.content)
|
|
@@ -84,7 +84,7 @@ from seekrai import SeekrFlow
|
|
|
84
84
|
|
|
85
85
|
client = SeekrFlow(api_key=os.environ.get("SEEKR_API_KEY"))
|
|
86
86
|
stream = client.chat.completions.create(
|
|
87
|
-
model="meta-llama-3-
|
|
87
|
+
model="meta-llama/Llama-3.1-8B-Instruct",
|
|
88
88
|
messages=[{"role": "user", "content": "tell me about new york"}],
|
|
89
89
|
stream=True,
|
|
90
90
|
)
|
|
@@ -110,7 +110,7 @@ async def async_chat_completion(messages):
|
|
|
110
110
|
async_client = AsyncSeekrFlow(api_key=os.environ.get("SEEKR_API_KEY"))
|
|
111
111
|
tasks = [
|
|
112
112
|
async_client.chat.completions.create(
|
|
113
|
-
model="meta-llama-3-
|
|
113
|
+
model="meta-llama/Llama-3.1-8B-Instruct",
|
|
114
114
|
messages=[{"role": "user", "content": message}],
|
|
115
115
|
)
|
|
116
116
|
for message in messages
|
|
@@ -151,7 +151,7 @@ client = SeekrFlow(api_key=os.environ.get("SEEKR_API_KEY"))
|
|
|
151
151
|
|
|
152
152
|
client.fine_tuning.create(
|
|
153
153
|
training_file='file-d0d318cb-b7d9-493a-bd70-1cfe089d3815',
|
|
154
|
-
model='meta-llama-3-
|
|
154
|
+
model='meta-llama/Llama-3.1-8B-Instruct',
|
|
155
155
|
n_epochs=3,
|
|
156
156
|
n_checkpoints=1,
|
|
157
157
|
batch_size=4,
|
|
@@ -37,7 +37,7 @@ from seekrai import SeekrFlow
|
|
|
37
37
|
client = SeekrFlow(api_key=os.environ.get("SEEKR_API_KEY"))
|
|
38
38
|
|
|
39
39
|
response = client.chat.completions.create(
|
|
40
|
-
model="meta-llama-3-
|
|
40
|
+
model="meta-llama/Llama-3.1-8B-Instruct",
|
|
41
41
|
messages=[{"role": "user", "content": "tell me about new york"}],
|
|
42
42
|
)
|
|
43
43
|
print(response.choices[0].message.content)
|
|
@@ -51,7 +51,7 @@ from seekrai import SeekrFlow
|
|
|
51
51
|
|
|
52
52
|
client = SeekrFlow(api_key=os.environ.get("SEEKR_API_KEY"))
|
|
53
53
|
stream = client.chat.completions.create(
|
|
54
|
-
model="meta-llama-3-
|
|
54
|
+
model="meta-llama/Llama-3.1-8B-Instruct",
|
|
55
55
|
messages=[{"role": "user", "content": "tell me about new york"}],
|
|
56
56
|
stream=True,
|
|
57
57
|
)
|
|
@@ -77,7 +77,7 @@ async def async_chat_completion(messages):
|
|
|
77
77
|
async_client = AsyncSeekrFlow(api_key=os.environ.get("SEEKR_API_KEY"))
|
|
78
78
|
tasks = [
|
|
79
79
|
async_client.chat.completions.create(
|
|
80
|
-
model="meta-llama-3-
|
|
80
|
+
model="meta-llama/Llama-3.1-8B-Instruct",
|
|
81
81
|
messages=[{"role": "user", "content": message}],
|
|
82
82
|
)
|
|
83
83
|
for message in messages
|
|
@@ -118,7 +118,7 @@ client = SeekrFlow(api_key=os.environ.get("SEEKR_API_KEY"))
|
|
|
118
118
|
|
|
119
119
|
client.fine_tuning.create(
|
|
120
120
|
training_file='file-d0d318cb-b7d9-493a-bd70-1cfe089d3815',
|
|
121
|
-
model='meta-llama-3-
|
|
121
|
+
model='meta-llama/Llama-3.1-8B-Instruct',
|
|
122
122
|
n_epochs=3,
|
|
123
123
|
n_checkpoints=1,
|
|
124
124
|
batch_size=4,
|
|
@@ -147,7 +147,7 @@ class AsyncChatCompletions:
|
|
|
147
147
|
repetition_penalty: float = 1,
|
|
148
148
|
stream: bool = False,
|
|
149
149
|
logprobs: bool | None = False,
|
|
150
|
-
top_logprobs: int | None =
|
|
150
|
+
top_logprobs: int | None = None,
|
|
151
151
|
echo: bool = False,
|
|
152
152
|
n: int = 1,
|
|
153
153
|
safety_model: str | None = None,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
from pathlib import Path
|
|
4
|
-
from typing import Any, Dict
|
|
4
|
+
from typing import Any, Dict, Optional, Union
|
|
5
5
|
|
|
6
6
|
from seekrai.abstract import api_requestor
|
|
7
7
|
from seekrai.filemanager import DownloadManager, UploadManager
|
|
@@ -197,30 +197,92 @@ class Files(ResourceBase):
|
|
|
197
197
|
|
|
198
198
|
return AlignFileMetadataValidationResp(**response.data)
|
|
199
199
|
|
|
200
|
-
def list(
|
|
200
|
+
def list(
|
|
201
|
+
self,
|
|
202
|
+
limit: Optional[int] = None,
|
|
203
|
+
offset: Optional[int] = None,
|
|
204
|
+
sort_by: Optional[str] = None,
|
|
205
|
+
sort_order: Optional[str] = None,
|
|
206
|
+
purpose: Optional[Union[FilePurpose, str]] = None,
|
|
207
|
+
) -> FileList:
|
|
208
|
+
"""
|
|
209
|
+
List files with pagination, sorting, and filtering options.
|
|
210
|
+
|
|
211
|
+
All parameter defaults are handled by the API if not specified.
|
|
212
|
+
|
|
213
|
+
Args:
|
|
214
|
+
limit: Maximum number of files to return
|
|
215
|
+
offset: Number of files to skip
|
|
216
|
+
sort_by: Field to sort by ('created_at', 'filename', 'type', or 'size')
|
|
217
|
+
sort_order: Sort order ('asc' or 'desc')
|
|
218
|
+
purpose: Filter by file purpose (FilePurpose enum or string)
|
|
219
|
+
|
|
220
|
+
Returns:
|
|
221
|
+
A FileList object containing the list of files
|
|
222
|
+
|
|
223
|
+
Raises:
|
|
224
|
+
Exception: If the API request fails
|
|
225
|
+
"""
|
|
226
|
+
# Build query parameters, only including non-None values
|
|
227
|
+
params: Dict[str, Any] = {}
|
|
228
|
+
if limit is not None:
|
|
229
|
+
params["limit"] = limit
|
|
230
|
+
if offset is not None:
|
|
231
|
+
params["offset"] = offset
|
|
232
|
+
if sort_by is not None:
|
|
233
|
+
params["sort_by"] = sort_by
|
|
234
|
+
if sort_order is not None:
|
|
235
|
+
params["sort_order"] = sort_order
|
|
236
|
+
|
|
237
|
+
# Add purpose filter if provided, converting from enum if needed
|
|
238
|
+
if purpose is not None:
|
|
239
|
+
params["purpose"] = (
|
|
240
|
+
purpose.value if isinstance(purpose, FilePurpose) else purpose
|
|
241
|
+
)
|
|
242
|
+
|
|
243
|
+
# Create request and use the API requestor
|
|
244
|
+
requestor = api_requestor.APIRequestor(client=self._client)
|
|
245
|
+
|
|
246
|
+
response, _, _ = requestor.request(
|
|
247
|
+
options=SeekrFlowRequest(
|
|
248
|
+
method="GET",
|
|
249
|
+
url="flow/files",
|
|
250
|
+
params=params,
|
|
251
|
+
),
|
|
252
|
+
stream=False,
|
|
253
|
+
)
|
|
254
|
+
|
|
255
|
+
assert isinstance(response, SeekrFlowResponse)
|
|
256
|
+
|
|
257
|
+
return FileList.parse_obj(response.data)
|
|
258
|
+
|
|
259
|
+
def rename(self, id: str, new_filename: str) -> FileResponse:
|
|
260
|
+
"""
|
|
261
|
+
Rename a file.
|
|
262
|
+
|
|
263
|
+
Args:
|
|
264
|
+
id (str): ID of the file to rename.
|
|
265
|
+
new_filename (str): New filename for the file.
|
|
266
|
+
|
|
267
|
+
Returns:
|
|
268
|
+
FileResponse: Object containing information about the renamed file.
|
|
269
|
+
"""
|
|
201
270
|
requestor = api_requestor.APIRequestor(
|
|
202
271
|
client=self._client,
|
|
203
272
|
)
|
|
204
273
|
|
|
205
274
|
response, _, _ = requestor.request(
|
|
206
275
|
options=SeekrFlowRequest(
|
|
207
|
-
method="
|
|
208
|
-
url="flow/files",
|
|
276
|
+
method="PUT",
|
|
277
|
+
url=f"flow/files/{id}/rename",
|
|
278
|
+
params={"new_filename": new_filename},
|
|
209
279
|
),
|
|
210
280
|
stream=False,
|
|
211
281
|
)
|
|
212
282
|
|
|
213
283
|
assert isinstance(response, SeekrFlowResponse)
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
id=file["id"],
|
|
217
|
-
filename=file["filename"],
|
|
218
|
-
created_at=file["created_at"],
|
|
219
|
-
object="file",
|
|
220
|
-
)
|
|
221
|
-
for file in response.data["data"]
|
|
222
|
-
]
|
|
223
|
-
return FileList(object="list", data=files)
|
|
284
|
+
|
|
285
|
+
return FileResponse(**response.data)
|
|
224
286
|
|
|
225
287
|
|
|
226
288
|
class AsyncFiles(ResourceBase):
|
|
@@ -338,19 +400,89 @@ class AsyncFiles(ResourceBase):
|
|
|
338
400
|
|
|
339
401
|
return file_responses
|
|
340
402
|
|
|
341
|
-
async def list(
|
|
403
|
+
async def list(
|
|
404
|
+
self,
|
|
405
|
+
limit: Optional[int] = None,
|
|
406
|
+
offset: Optional[int] = None,
|
|
407
|
+
sort_by: Optional[str] = None,
|
|
408
|
+
sort_order: Optional[str] = None,
|
|
409
|
+
purpose: Optional[Union[FilePurpose, str]] = None,
|
|
410
|
+
) -> FileList:
|
|
411
|
+
"""
|
|
412
|
+
List files with pagination, sorting, and filtering options.
|
|
413
|
+
|
|
414
|
+
All parameter defaults are handled by the API if not specified.
|
|
415
|
+
|
|
416
|
+
Args:
|
|
417
|
+
limit: Maximum number of files to return
|
|
418
|
+
offset: Number of files to skip
|
|
419
|
+
sort_by: Field to sort by ('created_at', 'filename', 'type', or 'size')
|
|
420
|
+
sort_order: Sort order ('asc' or 'desc')
|
|
421
|
+
purpose: Filter by file purpose (FilePurpose enum or string)
|
|
422
|
+
|
|
423
|
+
Returns:
|
|
424
|
+
A FileList object containing the list of files
|
|
425
|
+
|
|
426
|
+
Raises:
|
|
427
|
+
Exception: If the API request fails
|
|
428
|
+
"""
|
|
429
|
+
# Build query parameters, only including non-None values
|
|
430
|
+
params: Dict[str, Any] = {}
|
|
431
|
+
if limit is not None:
|
|
432
|
+
params["limit"] = limit
|
|
433
|
+
if offset is not None:
|
|
434
|
+
params["offset"] = offset
|
|
435
|
+
if sort_by is not None:
|
|
436
|
+
params["sort_by"] = sort_by
|
|
437
|
+
if sort_order is not None:
|
|
438
|
+
params["sort_order"] = sort_order
|
|
439
|
+
|
|
440
|
+
# Add purpose filter if provided, converting from enum if needed
|
|
441
|
+
if purpose is not None:
|
|
442
|
+
params["purpose"] = (
|
|
443
|
+
purpose.value if isinstance(purpose, FilePurpose) else purpose
|
|
444
|
+
)
|
|
445
|
+
|
|
446
|
+
# Create request and use the API requestor
|
|
447
|
+
requestor = api_requestor.APIRequestor(client=self._client)
|
|
448
|
+
|
|
449
|
+
response, _, _ = await requestor.arequest(
|
|
450
|
+
options=SeekrFlowRequest(
|
|
451
|
+
method="GET",
|
|
452
|
+
url="flow/files",
|
|
453
|
+
params=params,
|
|
454
|
+
),
|
|
455
|
+
stream=False,
|
|
456
|
+
)
|
|
457
|
+
|
|
458
|
+
assert isinstance(response, SeekrFlowResponse)
|
|
459
|
+
|
|
460
|
+
return FileList.parse_obj(response.data)
|
|
461
|
+
|
|
462
|
+
async def rename(self, id: str, new_filename: str) -> FileResponse:
|
|
463
|
+
"""
|
|
464
|
+
Rename a file asynchronously.
|
|
465
|
+
|
|
466
|
+
Args:
|
|
467
|
+
id (str): ID of the file to rename.
|
|
468
|
+
new_filename (str): New filename for the file.
|
|
469
|
+
|
|
470
|
+
Returns:
|
|
471
|
+
FileResponse: Object containing information about the renamed file.
|
|
472
|
+
"""
|
|
342
473
|
requestor = api_requestor.APIRequestor(
|
|
343
474
|
client=self._client,
|
|
344
475
|
)
|
|
345
476
|
|
|
346
477
|
response, _, _ = await requestor.arequest(
|
|
347
478
|
options=SeekrFlowRequest(
|
|
348
|
-
method="
|
|
349
|
-
url="flow/files",
|
|
479
|
+
method="PUT",
|
|
480
|
+
url=f"flow/files/{id}/rename",
|
|
481
|
+
params={"new_filename": new_filename},
|
|
350
482
|
),
|
|
351
483
|
stream=False,
|
|
352
484
|
)
|
|
353
485
|
|
|
354
486
|
assert isinstance(response, SeekrFlowResponse)
|
|
355
487
|
|
|
356
|
-
return
|
|
488
|
+
return FileResponse(**response.data)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from pydantic import Field
|
|
2
|
+
|
|
3
|
+
from seekrai.types.agents.tools.env_model_config import EnvConfig
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# TODO: figure out better way of creating tool environment models (within tool ideally), but retaining separate model_configs
|
|
7
|
+
class FileSearchEnv(EnvConfig):
|
|
8
|
+
file_search_index: str = Field(min_length=1)
|
|
9
|
+
document_tool_desc: str = Field(min_length=1)
|
|
10
|
+
top_k: int = Field(
|
|
11
|
+
default=10, ge=1, le=100, description="Top K must be >= 1 and <= 100"
|
|
12
|
+
)
|
|
13
|
+
score_threshold: float = Field(
|
|
14
|
+
default=0, ge=0, lt=1.0, description="Score must be ≥ 0.0 and < 1.0"
|
|
15
|
+
)
|
|
16
|
+
|
|
@@ -14,8 +14,6 @@ class FilePurpose(str, Enum):
|
|
|
14
14
|
FineTune = "fine-tune"
|
|
15
15
|
PreTrain = "pre-train"
|
|
16
16
|
Alignment = "alignment"
|
|
17
|
-
Ingestion = "ingestion"
|
|
18
|
-
VectorIngestion = "vector-ingestion"
|
|
19
17
|
|
|
20
18
|
|
|
21
19
|
class TrainingFileType(str, Enum):
|
|
@@ -96,6 +94,7 @@ class FileResponse(BaseModel):
|
|
|
96
94
|
# file byte size
|
|
97
95
|
bytes: int | None = None
|
|
98
96
|
created_by: str | None = None # TODO - fix this later
|
|
97
|
+
original_file_id: str | None = None
|
|
99
98
|
deleted: bool | None = None
|
|
100
99
|
|
|
101
100
|
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
from pydantic import Field
|
|
2
|
-
|
|
3
|
-
from seekrai.types.agents.tools.env_model_config import EnvConfig
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
# TODO: figure out better way of creating tool environment models (within tool ideally), but retaining separate model_configs
|
|
7
|
-
class FileSearchEnv(EnvConfig):
|
|
8
|
-
file_search_index: str
|
|
9
|
-
document_tool_desc: str
|
|
10
|
-
top_k: int = Field(default=10)
|
|
11
|
-
score_threshold: int = Field(default=0)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|