knowledge2 0.4.0__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.
Files changed (139) hide show
  1. knowledge2-0.4.0.dist-info/METADATA +556 -0
  2. knowledge2-0.4.0.dist-info/RECORD +139 -0
  3. knowledge2-0.4.0.dist-info/WHEEL +5 -0
  4. knowledge2-0.4.0.dist-info/top_level.txt +1 -0
  5. sdk/__init__.py +70 -0
  6. sdk/_async_base.py +525 -0
  7. sdk/_async_paging.py +57 -0
  8. sdk/_base.py +541 -0
  9. sdk/_logging.py +41 -0
  10. sdk/_paging.py +73 -0
  11. sdk/_preview.py +70 -0
  12. sdk/_raw_response.py +25 -0
  13. sdk/_request_options.py +51 -0
  14. sdk/_transport.py +144 -0
  15. sdk/_validation.py +25 -0
  16. sdk/_validation_response.py +36 -0
  17. sdk/_version.py +3 -0
  18. sdk/async_client.py +320 -0
  19. sdk/async_resources/__init__.py +45 -0
  20. sdk/async_resources/_mixin_base.py +42 -0
  21. sdk/async_resources/a2a.py +230 -0
  22. sdk/async_resources/agents.py +489 -0
  23. sdk/async_resources/audit.py +145 -0
  24. sdk/async_resources/auth.py +133 -0
  25. sdk/async_resources/console.py +409 -0
  26. sdk/async_resources/corpora.py +276 -0
  27. sdk/async_resources/deployments.py +106 -0
  28. sdk/async_resources/documents.py +592 -0
  29. sdk/async_resources/feeds.py +248 -0
  30. sdk/async_resources/indexes.py +208 -0
  31. sdk/async_resources/jobs.py +165 -0
  32. sdk/async_resources/metadata.py +48 -0
  33. sdk/async_resources/models.py +102 -0
  34. sdk/async_resources/onboarding.py +538 -0
  35. sdk/async_resources/orgs.py +37 -0
  36. sdk/async_resources/pipelines.py +523 -0
  37. sdk/async_resources/projects.py +90 -0
  38. sdk/async_resources/search.py +262 -0
  39. sdk/async_resources/training.py +357 -0
  40. sdk/async_resources/usage.py +91 -0
  41. sdk/client.py +417 -0
  42. sdk/config.py +182 -0
  43. sdk/errors.py +178 -0
  44. sdk/examples/auth_factory.py +34 -0
  45. sdk/examples/batch_operations.py +57 -0
  46. sdk/examples/document_upload.py +56 -0
  47. sdk/examples/e2e_lifecycle.py +213 -0
  48. sdk/examples/error_handling.py +61 -0
  49. sdk/examples/pagination.py +64 -0
  50. sdk/examples/quickstart.py +36 -0
  51. sdk/examples/request_options.py +44 -0
  52. sdk/examples/search.py +64 -0
  53. sdk/integrations/__init__.py +57 -0
  54. sdk/integrations/_client.py +101 -0
  55. sdk/integrations/langchain/__init__.py +6 -0
  56. sdk/integrations/langchain/retriever.py +166 -0
  57. sdk/integrations/langchain/tools.py +108 -0
  58. sdk/integrations/llamaindex/__init__.py +11 -0
  59. sdk/integrations/llamaindex/filters.py +78 -0
  60. sdk/integrations/llamaindex/retriever.py +162 -0
  61. sdk/integrations/llamaindex/tools.py +109 -0
  62. sdk/integrations/llamaindex/vector_store.py +320 -0
  63. sdk/models/__init__.py +18 -0
  64. sdk/models/_base.py +24 -0
  65. sdk/models/_registry.py +457 -0
  66. sdk/models/a2a.py +92 -0
  67. sdk/models/agents.py +109 -0
  68. sdk/models/audit.py +28 -0
  69. sdk/models/auth.py +49 -0
  70. sdk/models/chunks.py +20 -0
  71. sdk/models/common.py +14 -0
  72. sdk/models/console.py +103 -0
  73. sdk/models/corpora.py +48 -0
  74. sdk/models/deployments.py +13 -0
  75. sdk/models/documents.py +126 -0
  76. sdk/models/embeddings.py +24 -0
  77. sdk/models/evaluation.py +17 -0
  78. sdk/models/feedback.py +9 -0
  79. sdk/models/feeds.py +57 -0
  80. sdk/models/indexes.py +36 -0
  81. sdk/models/jobs.py +52 -0
  82. sdk/models/models.py +26 -0
  83. sdk/models/onboarding.py +323 -0
  84. sdk/models/orgs.py +11 -0
  85. sdk/models/pipelines.py +147 -0
  86. sdk/models/projects.py +19 -0
  87. sdk/models/search.py +149 -0
  88. sdk/models/training.py +57 -0
  89. sdk/models/usage.py +39 -0
  90. sdk/namespaces.py +386 -0
  91. sdk/py.typed +0 -0
  92. sdk/resources/__init__.py +45 -0
  93. sdk/resources/_mixin_base.py +40 -0
  94. sdk/resources/a2a.py +230 -0
  95. sdk/resources/agents.py +487 -0
  96. sdk/resources/audit.py +144 -0
  97. sdk/resources/auth.py +138 -0
  98. sdk/resources/console.py +411 -0
  99. sdk/resources/corpora.py +269 -0
  100. sdk/resources/deployments.py +105 -0
  101. sdk/resources/documents.py +597 -0
  102. sdk/resources/feeds.py +246 -0
  103. sdk/resources/indexes.py +210 -0
  104. sdk/resources/jobs.py +164 -0
  105. sdk/resources/metadata.py +53 -0
  106. sdk/resources/models.py +99 -0
  107. sdk/resources/onboarding.py +542 -0
  108. sdk/resources/orgs.py +35 -0
  109. sdk/resources/pipeline_builder.py +257 -0
  110. sdk/resources/pipelines.py +520 -0
  111. sdk/resources/projects.py +87 -0
  112. sdk/resources/search.py +277 -0
  113. sdk/resources/training.py +358 -0
  114. sdk/resources/usage.py +92 -0
  115. sdk/types/__init__.py +366 -0
  116. sdk/types/a2a.py +88 -0
  117. sdk/types/agents.py +133 -0
  118. sdk/types/audit.py +26 -0
  119. sdk/types/auth.py +45 -0
  120. sdk/types/chunks.py +18 -0
  121. sdk/types/common.py +10 -0
  122. sdk/types/console.py +99 -0
  123. sdk/types/corpora.py +42 -0
  124. sdk/types/deployments.py +11 -0
  125. sdk/types/documents.py +104 -0
  126. sdk/types/embeddings.py +22 -0
  127. sdk/types/evaluation.py +15 -0
  128. sdk/types/feedback.py +7 -0
  129. sdk/types/feeds.py +61 -0
  130. sdk/types/indexes.py +30 -0
  131. sdk/types/jobs.py +50 -0
  132. sdk/types/models.py +22 -0
  133. sdk/types/onboarding.py +395 -0
  134. sdk/types/orgs.py +9 -0
  135. sdk/types/pipelines.py +177 -0
  136. sdk/types/projects.py +14 -0
  137. sdk/types/search.py +116 -0
  138. sdk/types/training.py +55 -0
  139. sdk/types/usage.py +37 -0
@@ -0,0 +1,323 @@
1
+ """Pydantic models for onboarding types."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from sdk.models._base import K2BaseModel
6
+
7
+ # =============================================================================
8
+ # Gold Labels
9
+ # =============================================================================
10
+
11
+
12
+ class GoldLabelDocumentReferenceModel(K2BaseModel):
13
+ type: str | None = None
14
+ value: str | None = None
15
+
16
+
17
+ class GoldLabelChunkReferenceModel(K2BaseModel):
18
+ type: str | None = None
19
+ value: str | int | dict | None = None
20
+
21
+
22
+ class GoldLabelEntryModel(K2BaseModel):
23
+ query: str | None = None
24
+ document_reference: GoldLabelDocumentReferenceModel | None = None
25
+ chunk_reference: GoldLabelChunkReferenceModel | None = None
26
+ relevant_text: str | None = None
27
+ metadata: dict | None = None
28
+
29
+
30
+ class GoldLabelsUploadRequestModel(K2BaseModel):
31
+ labels: list[GoldLabelEntryModel] | None = None
32
+ description: str | None = None
33
+
34
+
35
+ class ResolvedLabelInfoModel(K2BaseModel):
36
+ label_id: str
37
+ query: str
38
+ chunk_id: str | None
39
+ document_id: str | None
40
+ confidence: float
41
+ resolution_method: str
42
+
43
+
44
+ class GoldLabelsUploadResponseModel(K2BaseModel):
45
+ corpus_id: str
46
+ total_uploaded: int
47
+ resolved_count: int
48
+ unmatched_count: int
49
+ labels: list[ResolvedLabelInfoModel]
50
+
51
+
52
+ class GoldLabelListItemModel(K2BaseModel):
53
+ id: str
54
+ query: str
55
+ chunk_id: str | None
56
+ document_id: str | None
57
+ source: str | None
58
+ confidence: float | None
59
+ created_at: str
60
+
61
+
62
+ class GoldLabelsListResponseModel(K2BaseModel):
63
+ corpus_id: str
64
+ total: int
65
+ labels: list[GoldLabelListItemModel]
66
+
67
+
68
+ # =============================================================================
69
+ # Dataset Analysis
70
+ # =============================================================================
71
+
72
+
73
+ class DatasetAnalysisRequestModel(K2BaseModel):
74
+ description: str | None = None
75
+ auto_bootstrap: bool | None = None
76
+ bootstrap_num_samples: int | None = None
77
+ queries_per_chunk: int | None = None
78
+
79
+
80
+ class DatasetAnalysisResponseModel(K2BaseModel):
81
+ analysis_id: str
82
+ corpus_id: str
83
+ status: str
84
+ job_id: str | None
85
+ estimated_duration_seconds: int | None
86
+ created_at: str
87
+
88
+
89
+ class DatasetAnalysisSummaryModel(K2BaseModel):
90
+ analysis_id: str
91
+ status: str
92
+ current_stage: str | None
93
+ stages_completed: list[str]
94
+ has_prompt: bool
95
+ has_evaluation: bool
96
+ bootstrap_enabled: bool
97
+ bootstrap_labels_count: int | None
98
+ documents_at_analysis: int | None
99
+ started_at: str
100
+ created_at: str
101
+ completed_at: str | None
102
+ error_message: str | None
103
+ domain: str | None
104
+ lexical_strategy: str | None
105
+ quality_score: float | None
106
+
107
+
108
+ class OnboardingStatusResponseModel(K2BaseModel):
109
+ corpus_id: str
110
+ latest_analysis: DatasetAnalysisSummaryModel | None
111
+ gold_labels_count: int
112
+ synthetic_batches_count: int
113
+ has_summaries: bool
114
+ analysis_stale: bool
115
+
116
+
117
+ class SearcherPersonaModel(K2BaseModel):
118
+ who: str
119
+ goal: str
120
+ knowledge_state: str
121
+
122
+
123
+ class LexicalStrategyModel(K2BaseModel):
124
+ recommendation: str
125
+ rationale: str
126
+ techniques: list[str]
127
+
128
+
129
+ class DatasetAnalysisDetailsModel(K2BaseModel):
130
+ analysis_id: str
131
+ corpus_id: str
132
+ status: str
133
+ created_at: str
134
+ completed_at: str | None
135
+ config: dict
136
+ schema_analysis: dict | None
137
+ domain: str | None
138
+ expertise_level: str | None
139
+ data_relationship: str | None
140
+ searcher_persona: SearcherPersonaModel | None
141
+ lexical_strategy: LexicalStrategyModel | None
142
+ stage1_analysis: dict | None
143
+ artifact_uri: str | None
144
+ prompt_uri: str | None
145
+ bootstrap_enabled: bool
146
+ bootstrap_labels_count: int | None
147
+ error_message: str | None
148
+
149
+
150
+ # =============================================================================
151
+ # Synthetic Query Generation
152
+ # =============================================================================
153
+
154
+
155
+ class SyntheticQueryGenerationRequestModel(K2BaseModel):
156
+ analysis_id: str | None = None
157
+ sample_size: int | None = None
158
+ queries_per_chunk: int | None = None
159
+ use_document_context: bool | None = None
160
+ eval_sample_size: int | None = None
161
+
162
+
163
+ class SyntheticQueryBatchResponseModel(K2BaseModel):
164
+ batch_id: str
165
+ corpus_id: str
166
+ analysis_id: str
167
+ status: str
168
+ job_id: str | None
169
+ sample_size: int | None
170
+ queries_per_chunk: int
171
+ estimated_queries: int | None
172
+ created_at: str
173
+
174
+
175
+ class SyntheticQueryBatchSummaryModel(K2BaseModel):
176
+ batch_id: str
177
+ status: str
178
+ sample_size: int | None
179
+ queries_per_chunk: int
180
+ total_chunks_processed: int | None
181
+ total_queries_generated: int | None
182
+ created_at: str
183
+ completed_at: str | None
184
+
185
+
186
+ class SyntheticQueryBatchListResponseModel(K2BaseModel):
187
+ corpus_id: str
188
+ batches: list[SyntheticQueryBatchSummaryModel]
189
+
190
+
191
+ class SyntheticQuerySampleModel(K2BaseModel):
192
+ chunk_id: str
193
+ chunk_text_preview: str
194
+ queries: list[str]
195
+
196
+
197
+ class SyntheticQueryBatchDetailsModel(K2BaseModel):
198
+ batch_id: str
199
+ corpus_id: str
200
+ analysis_id: str
201
+ status: str
202
+ created_at: str
203
+ completed_at: str | None
204
+ sample_size: int | None
205
+ queries_per_chunk: int
206
+ use_document_context: bool
207
+ config: dict
208
+ total_chunks_processed: int | None
209
+ total_queries_generated: int | None
210
+ stats: dict
211
+ artifact_uri: str | None
212
+ sample_queries: list[SyntheticQuerySampleModel]
213
+ error_message: str | None
214
+
215
+
216
+ # =============================================================================
217
+ # Evaluation
218
+ # =============================================================================
219
+
220
+
221
+ class EvaluationRequestModel(K2BaseModel):
222
+ batch_id: str | None = None
223
+ sample_size: int | None = None
224
+ generate_report: bool | None = None
225
+ report_formats: list[str] | None = None
226
+
227
+
228
+ class EvaluationResponseModel(K2BaseModel):
229
+ eval_id: str
230
+ corpus_id: str
231
+ batch_id: str
232
+ status: str
233
+ job_id: str | None
234
+ created_at: str
235
+
236
+
237
+ class EvaluationMetricsModel(K2BaseModel):
238
+ total_evaluated: int | None = None
239
+ avg_relevance: float | None = None
240
+ avg_groundedness: float | None = None
241
+ avg_style: float | None = None
242
+ avg_lexical_diversity: float | None = None
243
+ pass_rate: float | None = None
244
+ score_distribution: dict | None = None
245
+
246
+
247
+ class EvaluationSummaryModel(K2BaseModel):
248
+ eval_id: str
249
+ batch_id: str
250
+ status: str
251
+ sample_size: int | None
252
+ metrics: EvaluationMetricsModel | None
253
+ created_at: str
254
+ completed_at: str | None
255
+
256
+
257
+ class EvaluationListResponseModel(K2BaseModel):
258
+ corpus_id: str
259
+ evaluations: list[EvaluationSummaryModel]
260
+
261
+
262
+ class EvaluationDetailsModel(K2BaseModel):
263
+ eval_id: str
264
+ corpus_id: str
265
+ batch_id: str
266
+ status: str
267
+ created_at: str
268
+ completed_at: str | None
269
+ sample_size: int | None
270
+ config: dict
271
+ metrics: EvaluationMetricsModel | None
272
+ artifact_uri: str | None
273
+ report_uri: str | None
274
+ sample_results: list[dict]
275
+ error_message: str | None
276
+
277
+
278
+ class EvaluationReportResponseModel(K2BaseModel):
279
+ eval_id: str
280
+ corpus_id: str
281
+ format: str
282
+ report_uri: str | None
283
+ metrics: EvaluationMetricsModel | None
284
+ recommendations: list[str]
285
+
286
+
287
+ # =============================================================================
288
+ # Document Summarization
289
+ # =============================================================================
290
+
291
+
292
+ class SummarizationRequestModel(K2BaseModel):
293
+ force_regenerate: bool | None = None
294
+
295
+
296
+ class SummarizationResponseModel(K2BaseModel):
297
+ corpus_id: str
298
+ job_id: str | None
299
+ status: str
300
+ total_documents: int
301
+ documents_with_summaries: int
302
+ documents_to_summarize: int
303
+ created_at: str
304
+
305
+
306
+ class SummarizationStatusResponseModel(K2BaseModel):
307
+ corpus_id: str
308
+ total_documents: int
309
+ documents_with_summaries: int
310
+ coverage_percent: float
311
+ latest_job_status: str | None
312
+ latest_job_completed_at: str | None
313
+
314
+
315
+ class DocumentSummaryResponseModel(K2BaseModel):
316
+ document_id: str
317
+ corpus_id: str
318
+ summary: str
319
+ document_type: str | None
320
+ entities: dict
321
+ key_facts: list[str]
322
+ generation_model: str | None
323
+ created_at: str
sdk/models/orgs.py ADDED
@@ -0,0 +1,11 @@
1
+ """Pydantic models for org types."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from sdk.models._base import K2BaseModel
6
+
7
+
8
+ class OrgResponseModel(K2BaseModel):
9
+ id: str | None = None
10
+ name: str | None = None
11
+ contact_email: str | None = None
@@ -0,0 +1,147 @@
1
+ """Pydantic models for pipeline types."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+ from sdk.models._base import K2BaseModel
8
+
9
+
10
+ class ValidationIssueModel(K2BaseModel):
11
+ severity: str | None = None
12
+ code: str | None = None
13
+ message: str | None = None
14
+ path: str | None = None
15
+
16
+
17
+ class PipelineSpecResponseModel(K2BaseModel):
18
+ id: str | None = None
19
+ org_id: str | None = None
20
+ project_id: str | None = None
21
+ name: str | None = None
22
+ description: str | None = None
23
+ topology: dict[str, Any] | None = None
24
+ status: str | None = None
25
+ has_draft: bool | None = None
26
+ parent_pipeline_spec_id: str | None = None
27
+ created_by: str | None = None
28
+ bound_entity_count: int | None = None
29
+ binding_summary: dict[str, Any] | None = None
30
+ created_at: str | None = None
31
+ updated_at: str | None = None
32
+
33
+
34
+ class PipelineSpecListResponseModel(K2BaseModel):
35
+ pipeline_specs: list[PipelineSpecResponseModel]
36
+ total: int
37
+ limit: int
38
+ offset: int
39
+
40
+
41
+ class DryRunResultModel(K2BaseModel):
42
+ valid: bool | None = None
43
+ issues: list[ValidationIssueModel] | None = None
44
+ would_create_agents: int | None = None
45
+ would_create_feeds: int | None = None
46
+ would_create_corpora: int | None = None
47
+ would_bind_existing: int | None = None
48
+
49
+
50
+ class ApplyResultModel(K2BaseModel):
51
+ success: bool | None = None
52
+ created_agent_ids: list[str] | None = None
53
+ created_feed_ids: list[str] | None = None
54
+ created_corpus_ids: list[str] | None = None
55
+ created_subscription_ids: list[str] | None = None
56
+ bound_entity_ids: list[str] | None = None
57
+ issues: list[ValidationIssueModel] | None = None
58
+
59
+
60
+ class SkippedEntityModel(K2BaseModel):
61
+ entity_type: str | None = None
62
+ entity_id: str | None = None
63
+ entity_name: str | None = None
64
+ reason: str | None = None
65
+ other_pipeline_ids: list[str] | None = None
66
+
67
+
68
+ class ArchiveResultModel(K2BaseModel):
69
+ pipeline_spec: PipelineSpecResponseModel | None = None
70
+ archived_agents: list[str] | None = None
71
+ archived_feeds: list[str] | None = None
72
+ deactivated_subscriptions: list[str] | None = None
73
+ skipped_entities: list[SkippedEntityModel] | None = None
74
+
75
+
76
+ class DraftActivateResultModel(K2BaseModel):
77
+ success: bool | None = None
78
+ created_agent_ids: list[str] | None = None
79
+ created_feed_ids: list[str] | None = None
80
+ created_corpus_ids: list[str] | None = None
81
+ created_subscription_ids: list[str] | None = None
82
+ removed_binding_ids: list[str] | None = None
83
+ updated_entity_ids: list[str] | None = None
84
+ issues: list[ValidationIssueModel] | None = None
85
+
86
+
87
+ class FieldDiffModel(K2BaseModel):
88
+ field: str | None = None
89
+ spec_value: str | None = None
90
+ actual_value: str | None = None
91
+
92
+
93
+ class EntityDiffModel(K2BaseModel):
94
+ entity_type: str | None = None
95
+ entity_id: str | None = None
96
+ entity_name: str | None = None
97
+ drift_status: str | None = None
98
+ field_diffs: list[FieldDiffModel] | None = None
99
+
100
+
101
+ class DriftSummaryModel(K2BaseModel):
102
+ total_entities: int | None = None
103
+ in_sync: int | None = None
104
+ drifted: int | None = None
105
+ missing: int | None = None
106
+ untracked: int | None = None
107
+
108
+
109
+ class DriftReportModel(K2BaseModel):
110
+ pipeline_spec_id: str | None = None
111
+ status: str | None = None
112
+ entity_diffs: list[EntityDiffModel] | None = None
113
+ summary: DriftSummaryModel | None = None
114
+
115
+
116
+ class RefreshChangesModel(K2BaseModel):
117
+ updated_entities: list[str] | None = None
118
+ removed_entities: list[str] | None = None
119
+ unchanged_entities: list[str] | None = None
120
+
121
+
122
+ class RefreshResultModel(K2BaseModel):
123
+ draft_id: str | None = None
124
+ changes: RefreshChangesModel | None = None
125
+
126
+
127
+ class GraphNodeModel(K2BaseModel):
128
+ id: str | None = None
129
+ type: str | None = None
130
+ label: str | None = None
131
+ metadata: dict[str, Any] | None = None
132
+ status: str | None = None
133
+ binding_role: str | None = None
134
+
135
+
136
+ class GraphEdgeModel(K2BaseModel):
137
+ source: str | None = None
138
+ target: str | None = None
139
+ type: str | None = None
140
+ metadata: dict[str, Any] | None = None
141
+
142
+
143
+ class GraphResponseModel(K2BaseModel):
144
+ pipeline_spec_id: str | None = None
145
+ status: str | None = None
146
+ nodes: list[GraphNodeModel] | None = None
147
+ edges: list[GraphEdgeModel] | None = None
sdk/models/projects.py ADDED
@@ -0,0 +1,19 @@
1
+ """Pydantic models for project types."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+ from sdk.models._base import K2BaseModel
8
+
9
+
10
+ class ProjectResponseModel(K2BaseModel):
11
+ id: str
12
+ name: str
13
+ org_id: str
14
+ graph_rag_policy: dict[str, Any] | None
15
+
16
+
17
+ class ProjectListResponseModel(K2BaseModel):
18
+ projects: list[ProjectResponseModel]
19
+ total: int
sdk/models/search.py ADDED
@@ -0,0 +1,149 @@
1
+ """Pydantic models for search types."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+ from sdk.models._base import K2BaseModel
8
+
9
+
10
+ class SearchHybridConfigModel(K2BaseModel):
11
+ enabled: bool | None = None
12
+ fusion_mode: str | None = None
13
+ rrf_k: int | None = None
14
+ dense_weight: float | None = None
15
+ sparse_weight: float | None = None
16
+ metadata_sparse_enabled: bool | None = None
17
+
18
+
19
+ class SearchRerankConfigModel(K2BaseModel):
20
+ enabled: bool | None = None
21
+ top_k: int | None = None
22
+
23
+
24
+ class SearchGraphRagConfigModel(K2BaseModel):
25
+ enabled: bool | None = None
26
+ seed_chunks: int | None = None
27
+ seed_docs: int | None = None
28
+ max_entities_per_doc: int | None = None
29
+ candidate_scan_limit: int | None = None
30
+ min_entity_overlap: int | None = None
31
+ max_related_docs: int | None = None
32
+ max_chunks_per_doc: int | None = None
33
+ max_docs_per_entity: int | None = None
34
+ max_expanded_chunks: int | None = None
35
+ timeout_ms: int | None = None
36
+ depth_penalty: float | None = None
37
+ score_boost: float | None = None
38
+ shadow_mode: bool | None = None
39
+
40
+
41
+ class SearchReturnConfigModel(K2BaseModel):
42
+ include_text: bool | None = None
43
+ include_scores: bool | None = None
44
+ include_provenance: bool | None = None
45
+
46
+
47
+ class MetadataFilterModel(K2BaseModel):
48
+ key: str | None = None
49
+ op: str | None = None
50
+ value: Any | None = None
51
+
52
+
53
+ class MetadataFiltersModel(K2BaseModel):
54
+ filters: list[MetadataFilterModel] | None = None
55
+ condition: str | None = None
56
+
57
+
58
+ class SearchGenerationConfigModel(K2BaseModel):
59
+ model: str | None = None
60
+ thinking_budget: int | None = None
61
+ temperature: float | None = None
62
+ max_tokens: int | None = None
63
+ context_top_k: int | None = None
64
+
65
+
66
+ class SearchOptionsModel(K2BaseModel):
67
+ query: str | None = None
68
+ top_k: int | None = None
69
+ filters: dict[str, Any] | MetadataFiltersModel | None = None
70
+ hybrid: SearchHybridConfigModel | None = None
71
+ graph_rag: SearchGraphRagConfigModel | None = None
72
+ rerank: SearchRerankConfigModel | None = None
73
+ return_config: SearchReturnConfigModel | None = None
74
+
75
+
76
+ class SearchGenerateOptionsModel(K2BaseModel):
77
+ query: str | None = None
78
+ top_k: int | None = None
79
+ filters: dict[str, Any] | MetadataFiltersModel | None = None
80
+ hybrid: SearchHybridConfigModel | None = None
81
+ graph_rag: SearchGraphRagConfigModel | None = None
82
+ rerank: SearchRerankConfigModel | None = None
83
+ return_config: SearchReturnConfigModel | None = None
84
+ generation: SearchGenerationConfigModel | None = None
85
+
86
+
87
+ class SearchBatchOptionsModel(K2BaseModel):
88
+ queries: list[str] | None = None
89
+ top_k: int | None = None
90
+ filters: dict[str, Any] | MetadataFiltersModel | None = None
91
+ hybrid: SearchHybridConfigModel | None = None
92
+ graph_rag: SearchGraphRagConfigModel | None = None
93
+ rerank: SearchRerankConfigModel | None = None
94
+ return_config: SearchReturnConfigModel | None = None
95
+
96
+
97
+ class SearchResultModel(K2BaseModel):
98
+ chunk_id: str | None = None
99
+ score: float | None = None
100
+ raw_score: float | None = None
101
+ text: str | None = None
102
+ custom_metadata: dict | None = None
103
+ system_metadata: dict | None = None
104
+ offset_start: int | None = None
105
+ offset_end: int | None = None
106
+ page_start: int | None = None
107
+ page_end: int | None = None
108
+
109
+
110
+ class SearchColdStartMetaModel(K2BaseModel):
111
+ likely: bool | None = None
112
+ dense_cache_hit: bool | None = None
113
+ sparse_cache_hit: bool | None = None
114
+ graph_cache_hit: bool | None = None
115
+
116
+
117
+ class SearchGraphRagMetaModel(K2BaseModel):
118
+ enabled: bool | None = None
119
+ applied: bool | None = None
120
+ shadow_mode: bool | None = None
121
+ expanded_chunks: int | None = None
122
+ related_docs: int | None = None
123
+ source: str | None = None
124
+ fallback_used: bool | None = None
125
+ fallback_reason: str | None = None
126
+ timed_out: bool | None = None
127
+
128
+
129
+ class SearchMetaModel(K2BaseModel):
130
+ cold_start: SearchColdStartMetaModel | None = None
131
+ graph_rag: SearchGraphRagMetaModel | None = None
132
+
133
+
134
+ class SearchResponseModel(K2BaseModel):
135
+ results: list[SearchResultModel] | None = None
136
+ meta: SearchMetaModel | None = None
137
+
138
+
139
+ class SearchBatchResponseModel(K2BaseModel):
140
+ responses: list[SearchResponseModel] | None = None
141
+
142
+
143
+ class SearchGenerateResponseModel(K2BaseModel):
144
+ answer: str | None = None
145
+ model: str | None = None
146
+ thinking_budget: int | None = None
147
+ results: list[SearchResultModel] | None = None
148
+ meta: SearchMetaModel | None = None
149
+ used_sources: list[str] | None = None
sdk/models/training.py ADDED
@@ -0,0 +1,57 @@
1
+ """Pydantic models for training types."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from sdk.models._base import K2BaseModel
6
+
7
+
8
+ class TrainingDataBuildResponseModel(K2BaseModel):
9
+ job_id: str
10
+ dataset_id: str
11
+
12
+
13
+ class TrainingDatasetResponseModel(K2BaseModel):
14
+ id: str | None = None
15
+ corpus_id: str | None = None
16
+ sample_count: int | None = None
17
+ dataset_hash: str | None = None
18
+ created_at: str | None = None
19
+
20
+
21
+ class TrainingDatasetListResponseModel(K2BaseModel):
22
+ datasets: list[TrainingDatasetResponseModel]
23
+
24
+
25
+ class TuningRunResponseModel(K2BaseModel):
26
+ run_id: str
27
+ status: str
28
+ job_id: str
29
+
30
+
31
+ class TuningRunBuildResponseModel(K2BaseModel):
32
+ run_id: str
33
+ status: str
34
+ build_job_id: str
35
+ dataset_id: str
36
+
37
+
38
+ class TuningRunDetailResponseModel(K2BaseModel):
39
+ run_id: str | None = None
40
+ status: str | None = None
41
+ metrics: dict | None = None
42
+
43
+
44
+ class TuningRunLogsResponseModel(K2BaseModel):
45
+ lines: list[str]
46
+
47
+
48
+ class TuningRunListResponseModel(K2BaseModel):
49
+ runs: list[TuningRunDetailResponseModel]
50
+
51
+
52
+ class PromoteResponseModel(K2BaseModel):
53
+ model_id: str
54
+
55
+
56
+ class CancelTuningRunResponseModel(K2BaseModel):
57
+ status: str