seekrai 0.5.17__py3-none-any.whl → 0.5.25__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.
- seekrai/client.py +2 -0
- seekrai/resources/__init__.py +16 -4
- seekrai/resources/alignment.py +460 -1
- seekrai/resources/finetune.py +44 -0
- seekrai/resources/tools.py +384 -0
- seekrai/resources/vectordb.py +30 -0
- seekrai/types/__init__.py +50 -3
- seekrai/types/agents/__init__.py +7 -6
- seekrai/types/agents/agent.py +18 -15
- seekrai/types/agents/tools/__init__.py +4 -4
- seekrai/types/agents/tools/schemas/file_search.py +10 -3
- seekrai/types/agents/tools/schemas/file_search_env.py +6 -0
- seekrai/types/agents/tools/schemas/run_python.py +10 -3
- seekrai/types/agents/tools/schemas/run_python_env.py +6 -0
- seekrai/types/agents/tools/schemas/web_search.py +10 -3
- seekrai/types/agents/tools/schemas/web_search_env.py +6 -0
- seekrai/types/agents/tools/tool.py +12 -9
- seekrai/types/alignment.py +36 -0
- seekrai/types/deployments.py +1 -0
- seekrai/types/enums.py +30 -0
- seekrai/types/files.py +2 -1
- seekrai/types/finetune.py +24 -7
- seekrai/types/tools.py +141 -0
- {seekrai-0.5.17.dist-info → seekrai-0.5.25.dist-info}/METADATA +7 -5
- {seekrai-0.5.17.dist-info → seekrai-0.5.25.dist-info}/RECORD +28 -25
- {seekrai-0.5.17.dist-info → seekrai-0.5.25.dist-info}/WHEEL +1 -1
- {seekrai-0.5.17.dist-info → seekrai-0.5.25.dist-info}/entry_points.txt +0 -0
- {seekrai-0.5.17.dist-info → seekrai-0.5.25.dist-info/licenses}/LICENSE +0 -0
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
from typing import Literal
|
|
2
2
|
|
|
3
3
|
from seekrai.types.agents.tools.schemas.run_python_env import RunPythonEnv
|
|
4
|
-
from seekrai.types.agents.tools.tool import ToolBase
|
|
4
|
+
from seekrai.types.agents.tools.tool import ToolBase
|
|
5
|
+
from seekrai.types.enums import ToolType
|
|
5
6
|
|
|
6
7
|
|
|
7
|
-
class RunPython(ToolBase[RunPythonEnv]):
|
|
8
|
-
name: Literal[
|
|
8
|
+
class RunPython(ToolBase[Literal["run_python"], RunPythonEnv]):
|
|
9
|
+
name: Literal["run_python"] = ToolType.RUN_PYTHON.value
|
|
9
10
|
tool_env: RunPythonEnv
|
|
11
|
+
|
|
12
|
+
model_config = {
|
|
13
|
+
"json_schema_extra": {
|
|
14
|
+
"deprecated": True,
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -6,3 +6,9 @@ from seekrai.types.agents.tools.env_model_config import EnvConfig
|
|
|
6
6
|
class RunPythonEnv(EnvConfig):
|
|
7
7
|
run_python_tool_desc: Optional[str] = None
|
|
8
8
|
function_ids: Optional[list[str]] = None
|
|
9
|
+
|
|
10
|
+
model_config = {
|
|
11
|
+
"json_schema_extra": {
|
|
12
|
+
"deprecated": True,
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
from typing import Literal
|
|
2
2
|
|
|
3
3
|
from seekrai.types.agents.tools.schemas.web_search_env import WebSearchEnv
|
|
4
|
-
from seekrai.types.agents.tools.tool import ToolBase
|
|
4
|
+
from seekrai.types.agents.tools.tool import ToolBase
|
|
5
|
+
from seekrai.types.enums import ToolType
|
|
5
6
|
|
|
6
7
|
|
|
7
|
-
class WebSearch(ToolBase[WebSearchEnv]):
|
|
8
|
-
name: Literal[
|
|
8
|
+
class WebSearch(ToolBase[Literal["web_search"], WebSearchEnv]):
|
|
9
|
+
name: Literal["web_search"] = ToolType.WEB_SEARCH.value
|
|
9
10
|
tool_env: WebSearchEnv
|
|
11
|
+
|
|
12
|
+
model_config = {
|
|
13
|
+
"json_schema_extra": {
|
|
14
|
+
"deprecated": True,
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -1,20 +1,23 @@
|
|
|
1
|
-
import enum
|
|
2
1
|
from typing import Generic, TypeVar
|
|
3
2
|
|
|
4
3
|
from pydantic import BaseModel
|
|
5
4
|
|
|
6
5
|
from seekrai.types.agents.tools.env_model_config import EnvConfig
|
|
6
|
+
from seekrai.types.enums import ToolType as SeekrToolType
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
FILE_SEARCH = "file_search"
|
|
11
|
-
WEB_SEARCH = "web_search"
|
|
12
|
-
RUN_PYTHON = "run_python"
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
TName = TypeVar("TName", bound=str)
|
|
15
10
|
TEnv = TypeVar("TEnv", bound=EnvConfig)
|
|
16
11
|
|
|
12
|
+
ToolType = SeekrToolType
|
|
13
|
+
|
|
17
14
|
|
|
18
|
-
class ToolBase(BaseModel, Generic[TEnv]):
|
|
19
|
-
name:
|
|
15
|
+
class ToolBase(BaseModel, Generic[TName, TEnv]):
|
|
16
|
+
name: TName
|
|
20
17
|
tool_env: TEnv
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
__all__ = [
|
|
21
|
+
"ToolBase",
|
|
22
|
+
"ToolType",
|
|
23
|
+
] # explicitly re-export ToolType from old namespace to keep backward compatibility
|
seekrai/types/alignment.py
CHANGED
|
@@ -7,6 +7,7 @@ from typing import List, Literal, Optional
|
|
|
7
7
|
from pydantic import Field
|
|
8
8
|
|
|
9
9
|
from seekrai.types.abstract import BaseModel
|
|
10
|
+
from seekrai.types.files import FilePurpose, FileType
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
class AlignmentType(str, Enum):
|
|
@@ -16,6 +17,28 @@ class AlignmentType(str, Enum):
|
|
|
16
17
|
CONTEXT_DATA = "context_data"
|
|
17
18
|
|
|
18
19
|
|
|
20
|
+
class SystemPrompt(BaseModel):
|
|
21
|
+
id: str
|
|
22
|
+
source_id: str
|
|
23
|
+
content: str
|
|
24
|
+
is_custom: bool
|
|
25
|
+
created_at: datetime | None = None
|
|
26
|
+
updated_at: datetime | None = None
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class SystemPromptRequest(BaseModel):
|
|
30
|
+
instructions: str | None = None
|
|
31
|
+
content: str | None = None
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class SystemPromptCreateRequest(BaseModel):
|
|
35
|
+
instructions: str
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class SystemPromptUpdateRequest(BaseModel):
|
|
39
|
+
content: str
|
|
40
|
+
|
|
41
|
+
|
|
19
42
|
class AlignmentRequest(BaseModel):
|
|
20
43
|
instructions: str = Field(
|
|
21
44
|
default=..., description="Task description/instructions for the alignment task"
|
|
@@ -27,6 +50,10 @@ class AlignmentRequest(BaseModel):
|
|
|
27
50
|
default=AlignmentType.PRINCIPLE,
|
|
28
51
|
description="Type of alignment task (principle, chain_of_thought, or context_data)",
|
|
29
52
|
)
|
|
53
|
+
vector_database_id: str | None = Field(
|
|
54
|
+
default=None,
|
|
55
|
+
description="Optional vector database id to use for context retrieval during context_data alignment",
|
|
56
|
+
)
|
|
30
57
|
|
|
31
58
|
|
|
32
59
|
class AlignmentEstimationRequest(BaseModel):
|
|
@@ -66,6 +93,15 @@ class AlignmentResponse(BaseModel):
|
|
|
66
93
|
progress: str | None = None
|
|
67
94
|
|
|
68
95
|
|
|
96
|
+
class AlignmentOutput(BaseModel):
|
|
97
|
+
id: str
|
|
98
|
+
filename: str
|
|
99
|
+
bytes: int | None = None
|
|
100
|
+
created_at: datetime | None = None
|
|
101
|
+
file_type: FileType | None = None
|
|
102
|
+
purpose: FilePurpose | None = None
|
|
103
|
+
|
|
104
|
+
|
|
69
105
|
class AlignmentList(BaseModel):
|
|
70
106
|
# object type
|
|
71
107
|
object: Literal["list"] | None = None
|
seekrai/types/deployments.py
CHANGED
seekrai/types/enums.py
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class AgentStatus(str, Enum):
|
|
5
|
+
INACTIVE = "Inactive"
|
|
6
|
+
PENDING = "Pending"
|
|
7
|
+
ACTIVE = "Active"
|
|
8
|
+
UPDATING = "Updating"
|
|
9
|
+
FAILED = "Failed"
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ReasoningEffort(str, Enum):
|
|
13
|
+
PERFORMANCE_OPTIMIZED = "performance_optimized"
|
|
14
|
+
SPEED_OPTIMIZED = "speed_optimized"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class ToolStatus(str, Enum):
|
|
18
|
+
"""Tool status enumeration."""
|
|
19
|
+
|
|
20
|
+
ACTIVE = "Active"
|
|
21
|
+
INACTIVE = "Inactive"
|
|
22
|
+
DEPRECATED = "Deprecated"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class ToolType(str, Enum):
|
|
26
|
+
"""Tool type enumeration used to discriminate the union."""
|
|
27
|
+
|
|
28
|
+
FILE_SEARCH = "file_search"
|
|
29
|
+
WEB_SEARCH = "web_search"
|
|
30
|
+
RUN_PYTHON = "run_python"
|
seekrai/types/files.py
CHANGED
|
@@ -13,6 +13,7 @@ from seekrai.types.common import (
|
|
|
13
13
|
class FilePurpose(str, Enum):
|
|
14
14
|
ReinforcementFineTune = "reinforcement-fine-tune"
|
|
15
15
|
FineTune = "fine-tune"
|
|
16
|
+
PreferenceFineTune = "preference-fine-tune"
|
|
16
17
|
PreTrain = "pre-train"
|
|
17
18
|
Alignment = "alignment"
|
|
18
19
|
|
|
@@ -95,7 +96,7 @@ class FileResponse(BaseModel):
|
|
|
95
96
|
# file byte size
|
|
96
97
|
bytes: int | None = None
|
|
97
98
|
created_by: str | None = None # TODO - fix this later
|
|
98
|
-
|
|
99
|
+
origin_file_id: str | None = None
|
|
99
100
|
deleted: bool | None = None
|
|
100
101
|
|
|
101
102
|
|
seekrai/types/finetune.py
CHANGED
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from datetime import datetime
|
|
4
4
|
from enum import Enum
|
|
5
|
-
from typing import List, Literal, Optional
|
|
5
|
+
from typing import Any, Dict, List, Literal, Optional
|
|
6
6
|
|
|
7
7
|
from pydantic import Field
|
|
8
8
|
|
|
@@ -77,7 +77,7 @@ class FinetuneEventType(str, Enum):
|
|
|
77
77
|
|
|
78
78
|
class FineTuneType(str, Enum):
|
|
79
79
|
STANDARD = "STANDARD"
|
|
80
|
-
|
|
80
|
+
PREFERENCE = "PREFERENCE"
|
|
81
81
|
GRPO = "GRPO"
|
|
82
82
|
|
|
83
83
|
|
|
@@ -95,6 +95,22 @@ class FinetuneEvent(BaseModel):
|
|
|
95
95
|
epoch: float | None = None
|
|
96
96
|
|
|
97
97
|
|
|
98
|
+
class LoRAConfig(BaseModel):
|
|
99
|
+
r: int = Field(8, gt=0, description="Rank of the update matrices.")
|
|
100
|
+
alpha: int = Field(32, gt=0, description="Scaling factor applied to LoRA updates.")
|
|
101
|
+
dropout: float = Field(
|
|
102
|
+
0.1,
|
|
103
|
+
ge=0.0,
|
|
104
|
+
le=1.0,
|
|
105
|
+
description="Fraction of LoRA neurons dropped during training.",
|
|
106
|
+
)
|
|
107
|
+
bias: Literal["none", "all", "lora_only"] = Field(
|
|
108
|
+
"none",
|
|
109
|
+
description="Bias terms to train; choose from 'none', 'all', or 'lora_only'.",
|
|
110
|
+
)
|
|
111
|
+
extras: Dict[str, Any] = Field(default_factory=dict)
|
|
112
|
+
|
|
113
|
+
|
|
98
114
|
class TrainingConfig(BaseModel):
|
|
99
115
|
# training file ID
|
|
100
116
|
training_files: List[str]
|
|
@@ -118,6 +134,8 @@ class TrainingConfig(BaseModel):
|
|
|
118
134
|
pre_train: bool = False
|
|
119
135
|
# fine-tune type
|
|
120
136
|
fine_tune_type: FineTuneType = FineTuneType.STANDARD
|
|
137
|
+
# LoRA config
|
|
138
|
+
lora_config: Optional[LoRAConfig] = None
|
|
121
139
|
|
|
122
140
|
|
|
123
141
|
class AcceleratorType(str, Enum):
|
|
@@ -132,6 +150,7 @@ class AcceleratorType(str, Enum):
|
|
|
132
150
|
class InfrastructureConfig(BaseModel):
|
|
133
151
|
accel_type: AcceleratorType
|
|
134
152
|
n_accel: int
|
|
153
|
+
n_node: int = 1
|
|
135
154
|
|
|
136
155
|
|
|
137
156
|
class FinetuneRequest(BaseModel):
|
|
@@ -161,6 +180,7 @@ class FinetuneResponse(BaseModel):
|
|
|
161
180
|
model: str | None = None
|
|
162
181
|
accel_type: AcceleratorType
|
|
163
182
|
n_accel: int
|
|
183
|
+
n_node: int | None = None
|
|
164
184
|
# number of epochs
|
|
165
185
|
n_epochs: int | None = None
|
|
166
186
|
# number of checkpoints to save
|
|
@@ -169,13 +189,10 @@ class FinetuneResponse(BaseModel):
|
|
|
169
189
|
batch_size: int | None = None
|
|
170
190
|
# training learning rate
|
|
171
191
|
learning_rate: float | None = None
|
|
192
|
+
# LoRA configuration returned when LoRA fine-tuning is enabled
|
|
193
|
+
lora_config: Optional[LoRAConfig] = None
|
|
172
194
|
# number of steps between evals
|
|
173
195
|
# eval_steps: int | None = None TODO
|
|
174
|
-
# is LoRA finetune boolean
|
|
175
|
-
# lora: bool | None = None
|
|
176
|
-
# lora_r: int | None = None
|
|
177
|
-
# lora_alpha: int | None = None
|
|
178
|
-
# lora_dropout: int | None = None
|
|
179
196
|
# created/updated datetime stamps
|
|
180
197
|
created_at: datetime | None = None
|
|
181
198
|
# updated_at: str | None = None
|
seekrai/types/tools.py
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
from datetime import datetime
|
|
2
|
+
from typing import Annotated, Literal, Optional, Union
|
|
3
|
+
|
|
4
|
+
from pydantic import AfterValidator, ConfigDict, Field
|
|
5
|
+
from pydantic_core.core_schema import ValidationInfo
|
|
6
|
+
|
|
7
|
+
from seekrai.types.abstract import BaseModel
|
|
8
|
+
from seekrai.types.enums import AgentStatus, ToolType
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def validate_length(value: str, info: ValidationInfo) -> str:
|
|
12
|
+
"""Validate that string fields have meaningful content."""
|
|
13
|
+
if len(value) <= 0:
|
|
14
|
+
raise ValueError(f"{info.field_name} needs to have a length of at least 1")
|
|
15
|
+
if len(value.strip()) <= 0:
|
|
16
|
+
raise ValueError(f"{info.field_name} cannot be only whitespace")
|
|
17
|
+
return value
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class ToolConfig(BaseModel):
|
|
21
|
+
model_config = ConfigDict(
|
|
22
|
+
alias_generator=lambda k: k.upper(), populate_by_name=True
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class CreateTool(BaseModel):
|
|
27
|
+
model_config = ConfigDict(from_attributes=True, extra="forbid")
|
|
28
|
+
|
|
29
|
+
type: ToolType
|
|
30
|
+
name: Annotated[str, AfterValidator(validate_length)]
|
|
31
|
+
description: Annotated[str, AfterValidator(validate_length)]
|
|
32
|
+
config: ToolConfig
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class FileSearchConfig(ToolConfig):
|
|
36
|
+
file_search_index: str = Field(min_length=1)
|
|
37
|
+
embedding_model: Union[str, None] = None
|
|
38
|
+
top_k: int = Field(
|
|
39
|
+
default=10, ge=1, le=100, description="Top K must be >= 1 and <= 100"
|
|
40
|
+
)
|
|
41
|
+
score_threshold: float = Field(
|
|
42
|
+
default=0, ge=0, lt=1.0, description="Score must be ≥ 0.0 and < 1.0"
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class CreateFileSearch(CreateTool):
|
|
47
|
+
type: Literal[ToolType.FILE_SEARCH] = ToolType.FILE_SEARCH
|
|
48
|
+
config: FileSearchConfig
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class CreateWebSearch(CreateTool):
|
|
52
|
+
type: Literal[ToolType.WEB_SEARCH] = ToolType.WEB_SEARCH
|
|
53
|
+
config: ToolConfig = ToolConfig()
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class RunPythonConfig(ToolConfig):
|
|
57
|
+
function_ids: Union[list[str], None] = None
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class CreateRunPython(CreateTool):
|
|
61
|
+
type: Literal[ToolType.RUN_PYTHON] = ToolType.RUN_PYTHON
|
|
62
|
+
config: RunPythonConfig
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class Tool(BaseModel):
|
|
66
|
+
type: ToolType
|
|
67
|
+
name: Annotated[str, AfterValidator(validate_length)]
|
|
68
|
+
description: Union[str, None]
|
|
69
|
+
config: ToolConfig
|
|
70
|
+
id: str
|
|
71
|
+
version: int
|
|
72
|
+
created_at: datetime
|
|
73
|
+
updated_at: datetime
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
class FileSearchTool(Tool):
|
|
77
|
+
type: Literal[ToolType.FILE_SEARCH] = ToolType.FILE_SEARCH
|
|
78
|
+
config: FileSearchConfig
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
class WebSearchTool(Tool):
|
|
82
|
+
type: Literal[ToolType.WEB_SEARCH] = ToolType.WEB_SEARCH
|
|
83
|
+
config: ToolConfig = ToolConfig()
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
class RunPythonTool(Tool):
|
|
87
|
+
type: Literal[ToolType.RUN_PYTHON] = ToolType.RUN_PYTHON
|
|
88
|
+
config: RunPythonConfig
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
CreateToolRequest = Annotated[
|
|
92
|
+
Union[CreateFileSearch, CreateRunPython, CreateWebSearch],
|
|
93
|
+
Field(discriminator="type"),
|
|
94
|
+
]
|
|
95
|
+
|
|
96
|
+
ToolResponse = Annotated[
|
|
97
|
+
Union[FileSearchTool, WebSearchTool, RunPythonTool], Field(discriminator="type")
|
|
98
|
+
]
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class UpdateFileSearch(CreateFileSearch):
|
|
102
|
+
pass
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
class UpdateWebSearch(CreateWebSearch):
|
|
106
|
+
pass
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
class UpdateRunPython(CreateRunPython):
|
|
110
|
+
pass
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
UpdateToolRequest = Annotated[
|
|
114
|
+
Union[UpdateFileSearch, UpdateWebSearch, UpdateRunPython],
|
|
115
|
+
Field(discriminator="type"),
|
|
116
|
+
]
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
class GetToolsResponse(BaseModel):
|
|
120
|
+
"""Response schema for paginated tool list."""
|
|
121
|
+
|
|
122
|
+
data: list[ToolResponse]
|
|
123
|
+
total: Optional[int] = None
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
class ToolAgentSummaryResponse(BaseModel):
|
|
127
|
+
"""Schema for the summary for agents linked to a given tool."""
|
|
128
|
+
|
|
129
|
+
model_config = ConfigDict(from_attributes=True)
|
|
130
|
+
|
|
131
|
+
id: str
|
|
132
|
+
name: str
|
|
133
|
+
status: AgentStatus
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
class ToolDeleteResponse(BaseModel):
|
|
137
|
+
"""Response schema for tool deletion."""
|
|
138
|
+
|
|
139
|
+
id: str
|
|
140
|
+
deleted: bool
|
|
141
|
+
message: str
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: seekrai
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.25
|
|
4
4
|
Summary: Python client for SeekrAI
|
|
5
|
-
Home-page: https://gitlab.cb.ntent.com/ml/seekr-py
|
|
6
5
|
License: Apache-2.0
|
|
6
|
+
License-File: LICENSE
|
|
7
7
|
Author: SeekrFlow
|
|
8
8
|
Author-email: support@seekr.com
|
|
9
9
|
Requires-Python: >=3.9,<4.0
|
|
@@ -13,6 +13,9 @@ Classifier: Programming Language :: Python :: 3
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.9
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.10
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
16
19
|
Requires-Dist: click (>=8.1.7,<9.0.0)
|
|
17
20
|
Requires-Dist: eval-type-backport (>=0.1.3,<0.3.0)
|
|
18
21
|
Requires-Dist: filelock (>=3.13.1,<4.0.0)
|
|
@@ -26,8 +29,7 @@ Requires-Dist: requests (>=2.31.0,<3.0.0)
|
|
|
26
29
|
Requires-Dist: tabulate (>=0.9.0,<0.10.0)
|
|
27
30
|
Requires-Dist: tqdm (>=4.66.2,<5.0.0)
|
|
28
31
|
Requires-Dist: typer (>=0.9,<0.13)
|
|
29
|
-
Project-URL: Homepage, https://www.seekr.com
|
|
30
|
-
Project-URL: Repository, https://gitlab.cb.ntent.com/ml/seekr-py
|
|
32
|
+
Project-URL: Homepage, https://www.seekr.com
|
|
31
33
|
Description-Content-Type: text/markdown
|
|
32
34
|
|
|
33
35
|
The Seekr Python Library is the official Python client for SeekrFlow's API platform, providing a convenient way for interacting with the REST APIs and enables easy integrations with Python 3.9+ applications with easy to use synchronous and asynchronous clients.
|
|
@@ -2,18 +2,18 @@ seekrai/__init__.py,sha256=b3kBCTm-FoxCrNJ4hDieNBNN3Cj2xvevMUXEJQbntiE,900
|
|
|
2
2
|
seekrai/abstract/__init__.py,sha256=wNiOTW9TJpUgfCJCG-wAbhhWWH2PtoVpAuL3nxvQGps,56
|
|
3
3
|
seekrai/abstract/api_requestor.py,sha256=MfAEHsmjzjHM3Vr3BrNu2Oy_4YmDC5pHeYPFrtd9yAs,13582
|
|
4
4
|
seekrai/abstract/response_parsing.py,sha256=saREmIuJAPMkrzypR8zzFNAQwdF6wXn6VkXfFSQ_Ots,2931
|
|
5
|
-
seekrai/client.py,sha256=
|
|
5
|
+
seekrai/client.py,sha256=c29zFoh1EAdUa9kGeEma05gh9J0eam2zEa5UK8z94HE,6573
|
|
6
6
|
seekrai/constants.py,sha256=hoR2iF5te5Ydjt_lxIOSGID4vESIakG4F-3xAWdwxaU,1854
|
|
7
7
|
seekrai/error.py,sha256=rAYL8qEd8INwYMMKvhS-HKeC3QkWL4Wq-zfazFU-zBg,4861
|
|
8
8
|
seekrai/filemanager.py,sha256=bO2OvjZ9Cx5r2vr3Ocpd_0qVc3owRDT2LCU4Zmp2uDY,15489
|
|
9
|
-
seekrai/resources/__init__.py,sha256=
|
|
9
|
+
seekrai/resources/__init__.py,sha256=bDfQHJ93s1JbxgkVwMakfvfBj5No-SKOiH1o8GxNRts,1896
|
|
10
10
|
seekrai/resources/agents/__init__.py,sha256=8zQIr2LEJyuaVwbU6WmItGu0F8VWTa7eYrquyHUY1QY,700
|
|
11
11
|
seekrai/resources/agents/agent_inference.py,sha256=KIxdEV9qMA7tscrVGp4-Fe1H_iBqdY7Oh7rkpPDNfjo,10568
|
|
12
12
|
seekrai/resources/agents/agent_observability.py,sha256=VC_iyJnTwZ6PdQPp0T9XzipXOruh8P7h_UCwLjbY1Sk,4253
|
|
13
13
|
seekrai/resources/agents/agents.py,sha256=frmLHvrqeUxnMkE9Xn4w1ugChM14S9ik4MwWyklPMWI,9607
|
|
14
14
|
seekrai/resources/agents/python_functions.py,sha256=VL1JSsPP5nN1m8I0Ihe3AYlb8TMRg2n9-FWsWeNZH2s,9277
|
|
15
15
|
seekrai/resources/agents/threads.py,sha256=BwZ2_6wlezsb12PQjEw1fgdJh5S83SPgD6qZQoGvyIM,14544
|
|
16
|
-
seekrai/resources/alignment.py,sha256=
|
|
16
|
+
seekrai/resources/alignment.py,sha256=htpwu41NPOb_3aAM6fCilVBcEXlzIYF_req-Cf6OrpI,19627
|
|
17
17
|
seekrai/resources/chat/__init__.py,sha256=KmtPupgECtEN80NyvcnSmieTAFXhwmVxhMHP0qhspA4,618
|
|
18
18
|
seekrai/resources/chat/completions.py,sha256=-nFk5aL1ejZ9WUi_ksDHqCnEnT2CjPX-RaigT3N35gA,12317
|
|
19
19
|
seekrai/resources/completions.py,sha256=JhTN_lW2mblfHHONFmPC7QZei3wo5vx6GliMs9FkbOY,8452
|
|
@@ -21,47 +21,50 @@ seekrai/resources/deployments.py,sha256=DY7IN7QgqDduCHGNuHENSVwrE5PXFL88jWgh8SES
|
|
|
21
21
|
seekrai/resources/embeddings.py,sha256=7G-VisYrT9J35-hcKB8cXhs8BSi93IfveQKfVSC7diA,2585
|
|
22
22
|
seekrai/resources/explainability.py,sha256=Z0JllD5ruvrMu7fbgVlKuUOHkMIO1x9FWbFRao2TLm8,3546
|
|
23
23
|
seekrai/resources/files.py,sha256=bEn4jfYWfsI2OqKRGCUpnefIN-udNnafItgT2A7m-e4,15329
|
|
24
|
-
seekrai/resources/finetune.py,sha256=
|
|
24
|
+
seekrai/resources/finetune.py,sha256=BFtNE0nq_jQ6B3RLPCI2ytPGrkxebO2TKsq3J4hAo3E,12898
|
|
25
25
|
seekrai/resources/images.py,sha256=VjZiU2cxq2uNrJzm-EwNpOW3rBIgFyRHss8_DF1OuVE,4799
|
|
26
26
|
seekrai/resources/ingestion.py,sha256=RPnUWbHJCXRwVT4BUhmdE5nH4xD8JQBiR2zYrMJsywY,4956
|
|
27
27
|
seekrai/resources/models.py,sha256=q_lW0yzumasl4xTMg5jEDcyaycWe8Gm9C_ibRHWVxZM,2246
|
|
28
28
|
seekrai/resources/projects.py,sha256=Nmuh0_BwWoAO89r-p0ZEM8p4NHIH1EUeP83ivRoW5hw,3682
|
|
29
29
|
seekrai/resources/resource_base.py,sha256=rFIHFeqKPiAEbMYcMiIGHIym7qxwmh-EGsWiZcMDHdk,224
|
|
30
|
-
seekrai/resources/
|
|
30
|
+
seekrai/resources/tools.py,sha256=NH47V0Ks6yXLr0yzSVegWGKJNF1PblUhkYThz0BBKO0,11259
|
|
31
|
+
seekrai/resources/vectordb.py,sha256=1uUsyCUJdVAVUnua9RJWqf-j0HDD74EPeERUBjqVvmg,15797
|
|
31
32
|
seekrai/seekrflow_response.py,sha256=5RFEQzamDy7sTSDkxSsZQThZ3biNmeCPeHWdrFId5Go,1320
|
|
32
|
-
seekrai/types/__init__.py,sha256
|
|
33
|
+
seekrai/types/__init__.py,sha256=-9Z2sTV_qsdQ0VOoh3_R8amGFJpQiESFxcTOrTXgCC4,5816
|
|
33
34
|
seekrai/types/abstract.py,sha256=TqWFQV_6bPblywfCH-r8FCkXWvPkc9KlJ4QVgyrnaMc,642
|
|
34
|
-
seekrai/types/agents/__init__.py,sha256=
|
|
35
|
-
seekrai/types/agents/agent.py,sha256=
|
|
35
|
+
seekrai/types/agents/__init__.py,sha256=yEyuhWaiBP0e5l669O0FqSEnRMPhJC473JgYG7YFPUs,2356
|
|
36
|
+
seekrai/types/agents/agent.py,sha256=VIMF6gXhlLViVsCBGgPo54UdJqpMjb_ystNNx9n94FY,1543
|
|
36
37
|
seekrai/types/agents/observability.py,sha256=kOpBrNsrOzSbf-AsRBWAxRB9FqO0063CshUr-r2hHBE,963
|
|
37
38
|
seekrai/types/agents/python_functions.py,sha256=31Jm46gryHsgNsC7nlivuyY0TSko58y2YVxsu_7bEAg,653
|
|
38
39
|
seekrai/types/agents/runs.py,sha256=JgvasNM_eesGbwnqeAbRzPNvbzLAG1_N2IU7M7OHD1w,4933
|
|
39
40
|
seekrai/types/agents/threads.py,sha256=TinCMKv1bi5LzboDyCx1XI4Zzd8UzUZos4VOrTNhmEc,6835
|
|
40
|
-
seekrai/types/agents/tools/__init__.py,sha256=
|
|
41
|
+
seekrai/types/agents/tools/__init__.py,sha256=Uh9kzxdUQw8RPpeazUqP3FYMmbfLzeSldGgL8dD4K5U,509
|
|
41
42
|
seekrai/types/agents/tools/env_model_config.py,sha256=9POx2DPwfSXgoaziJv7QvKeMrhMsYD1exnanSRK48vw,177
|
|
42
43
|
seekrai/types/agents/tools/schemas/__init__.py,sha256=_HQoqgBk4T1IvlD0Yt3REz0_x_oVFTgITTd7H2ZJXws,562
|
|
43
|
-
seekrai/types/agents/tools/schemas/file_search.py,sha256=
|
|
44
|
-
seekrai/types/agents/tools/schemas/file_search_env.py,sha256=
|
|
45
|
-
seekrai/types/agents/tools/schemas/run_python.py,sha256=
|
|
46
|
-
seekrai/types/agents/tools/schemas/run_python_env.py,sha256=
|
|
47
|
-
seekrai/types/agents/tools/schemas/web_search.py,sha256=
|
|
48
|
-
seekrai/types/agents/tools/schemas/web_search_env.py,sha256=
|
|
49
|
-
seekrai/types/agents/tools/tool.py,sha256=
|
|
44
|
+
seekrai/types/agents/tools/schemas/file_search.py,sha256=0e9jL4B7-GSYGrkGBA4I6PHd2vP6vz8KfLSp2DIeg2A,459
|
|
45
|
+
seekrai/types/agents/tools/schemas/file_search_env.py,sha256=VGM3fkBjbp0wJVwgtgxKw_kEKP0qwvkGpJQZsvlOtcY,683
|
|
46
|
+
seekrai/types/agents/tools/schemas/run_python.py,sha256=Gq-LAXyXswW_IhHBfdEvw3WZuuI62R9HRfj5YoLp06c,451
|
|
47
|
+
seekrai/types/agents/tools/schemas/run_python_env.py,sha256=0GcyrKILbRRz-6CufG9io3BhwYx076nc9pfm-2Oa8lE,321
|
|
48
|
+
seekrai/types/agents/tools/schemas/web_search.py,sha256=jAF9OMQbUODd5egzbct5CgFtMm-0Y62lvXFRbEONAlk,451
|
|
49
|
+
seekrai/types/agents/tools/schemas/web_search_env.py,sha256=R3fGXV43ZacbgoSy-M43rsTe5FFPU-t2VPMBnTVj7M8,283
|
|
50
|
+
seekrai/types/agents/tools/tool.py,sha256=XdbYzSn0Rr-m9s34Aa1NDQ-35Kpzk4rcaXY3dKrg-Ys,514
|
|
50
51
|
seekrai/types/agents/tools/tool_types.py,sha256=1tF_kE6Z_zzuZpOAK1HrHsHkXFPEoK0PdYv-pbTLfkY,360
|
|
51
|
-
seekrai/types/alignment.py,sha256=
|
|
52
|
+
seekrai/types/alignment.py,sha256=nWcc4kQLs40-T0_HC3MnGkLd-StwBvwCXQrjUVJ5dEI,2973
|
|
52
53
|
seekrai/types/chat_completions.py,sha256=Z7H1MkMgb4O0O5LDMKotQqhjGVCYk5eBeZ8n--RJpf8,3736
|
|
53
54
|
seekrai/types/common.py,sha256=YI1pE-i_lDLU2o6FjoINdIhPXsV9lUl2MeAg2aRtT-M,2062
|
|
54
55
|
seekrai/types/completions.py,sha256=lm9AFdZR3Xg5AHPkV-qETHikkwMJmkHrLGr5GG-YR-M,2171
|
|
55
|
-
seekrai/types/deployments.py,sha256=
|
|
56
|
+
seekrai/types/deployments.py,sha256=a0zew1DuB9vPQXcBT2R4Tdn_8z5qleh6V6i4T4xyYZo,1798
|
|
56
57
|
seekrai/types/embeddings.py,sha256=OANoLNOs0aceS8NppVvvcNYQbF7-pAOAmcr30pw64OU,749
|
|
58
|
+
seekrai/types/enums.py,sha256=sQ1CW-ctbhpV2jM1cEAEy7ZUdzZa0IC85YvycjvudHE,633
|
|
57
59
|
seekrai/types/error.py,sha256=uTKISs9aRC4_6zwirtNkanxepN8KY-SqCq0kNbfZylQ,370
|
|
58
60
|
seekrai/types/explainability.py,sha256=Ih-8hCm5r22EMMtr83cDy8vePo7_Ik7UdUcXhsj5Zm0,835
|
|
59
|
-
seekrai/types/files.py,sha256=
|
|
60
|
-
seekrai/types/finetune.py,sha256=
|
|
61
|
+
seekrai/types/files.py,sha256=kOy4s8D4tlsenyWmiiEyAS0jDAdxMScBu5j1GwQCf3E,2808
|
|
62
|
+
seekrai/types/finetune.py,sha256=VHAzIvU-B99TEVsuwl0pf8TODFOMYKT1dxr0kRX4Z4o,7218
|
|
61
63
|
seekrai/types/images.py,sha256=Fusj8OhVYFsT8kz636lRGGivLbPXo_ZNgakKwmzJi3U,914
|
|
62
64
|
seekrai/types/ingestion.py,sha256=uUdKOR4xqSfAXWQOR1UOltSlOnuyAwKVA1Q2a6Yslk8,919
|
|
63
65
|
seekrai/types/models.py,sha256=9Z0nvLdlAfpF8mNRW5-IqBdDHoE-3qQ5przmIDJgwLo,1345
|
|
64
66
|
seekrai/types/projects.py,sha256=JFgpZdovia8Orcnhp6QkIEAXzyPCfKT_bUiwjxUaHHQ,670
|
|
67
|
+
seekrai/types/tools.py,sha256=k6CcZwFhP_is-9KwZhRMWhhp6-z6HKwbbnrg0LOsS2I,3525
|
|
65
68
|
seekrai/types/vectordb.py,sha256=Fw3ZrEvWU5OHzXNIUXtD24JVG7pCULfudX_WDOazJnk,2454
|
|
66
69
|
seekrai/utils/__init__.py,sha256=dfbiYEc47EBVRkq6C4O9y6tTGuPuV3LbV3__v01Mbds,658
|
|
67
70
|
seekrai/utils/_log.py,sha256=Cayw5B394H2WGVTXPXS2AN8znQdxsgrLqADXgqmokvU,1649
|
|
@@ -69,8 +72,8 @@ seekrai/utils/api_helpers.py,sha256=0Y8BblNIr9h_R12zdmhkxgTlxgoRkbq84QNi4nNWGu8,
|
|
|
69
72
|
seekrai/utils/files.py,sha256=7ixn_hgV-6pEhYqLyOp-EN0o8c1CzUwJzX9n3PQ5oqo,7164
|
|
70
73
|
seekrai/utils/tools.py,sha256=jgJTL-dOIouDbEJLdQpQfpXhqaz_poQYS52adyUtBjo,1781
|
|
71
74
|
seekrai/version.py,sha256=q6iGQVFor8zXiPP5F-3vy9TndOxKv5JXbaNJ2kdOQws,125
|
|
72
|
-
seekrai-0.5.
|
|
73
|
-
seekrai-0.5.
|
|
74
|
-
seekrai-0.5.
|
|
75
|
-
seekrai-0.5.
|
|
76
|
-
seekrai-0.5.
|
|
75
|
+
seekrai-0.5.25.dist-info/METADATA,sha256=SWvIVZI3Tb-_0QVntTa7DoRoqHYPsXOSCfhEl5fSn4M,4788
|
|
76
|
+
seekrai-0.5.25.dist-info/WHEEL,sha256=3ny-bZhpXrU6vSQ1UPG34FoxZBp3lVcvK0LkgUz6VLk,88
|
|
77
|
+
seekrai-0.5.25.dist-info/entry_points.txt,sha256=N49yOEGi1sK7Xr13F_rkkcOxQ88suyiMoOmRhUHTZ_U,48
|
|
78
|
+
seekrai-0.5.25.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
79
|
+
seekrai-0.5.25.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|