Skip to content

Commit de82922

Browse files
committed
feat: add Dataset Intelligence service to Python SDK
- Add dataset_intelligence_service.py resource with create/append/status/list methods - Add dataset_intelligence_service.py models for typed request/response - Wire DI service into resources __init__ and models __init__ Made-with: Cursor
1 parent 08d7597 commit de82922

5 files changed

Lines changed: 442 additions & 2 deletions

File tree

src/latence/_models/__init__.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,12 @@
6666
StageResult,
6767
StageStatus,
6868
)
69+
from .dataset_intelligence_service import (
70+
DatasetIntelligenceDeltaSummary,
71+
DatasetIntelligenceResponse,
72+
DatasetIntelligenceStageTiming,
73+
DatasetIntelligenceUsage,
74+
)
6975
from .redaction import DetectPIIResponse, RedactionConfig
7076

7177
__all__ = [
@@ -128,6 +134,11 @@
128134
# Redaction
129135
"DetectPIIResponse",
130136
"RedactionConfig",
137+
# Dataset Intelligence
138+
"DatasetIntelligenceDeltaSummary",
139+
"DatasetIntelligenceResponse",
140+
"DatasetIntelligenceStageTiming",
141+
"DatasetIntelligenceUsage",
131142
# Jobs
132143
"CreditsResponse",
133144
"JobCancelResponse",
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
"""Pydantic models for the Dataset Intelligence service."""
2+
3+
from __future__ import annotations
4+
5+
from typing import Any
6+
7+
from pydantic import BaseModel, ConfigDict, Field
8+
9+
from .common import BaseResponse
10+
11+
12+
class DatasetIntelligenceStageTiming(BaseModel):
13+
"""Timing information for a single pipeline stage."""
14+
15+
model_config = ConfigDict(extra="allow")
16+
17+
stage: str = ""
18+
elapsed_ms: float = 0.0
19+
status: str = "completed"
20+
21+
22+
class DatasetIntelligenceUsage(BaseModel):
23+
"""Credit usage breakdown."""
24+
25+
model_config = ConfigDict(extra="allow")
26+
27+
credits: float = 0.0
28+
calculation: str = ""
29+
details: dict[str, Any] = Field(default_factory=dict)
30+
31+
32+
class DatasetIntelligenceDeltaSummary(BaseModel):
33+
"""Summary of changes in an incremental (append) ingestion."""
34+
35+
model_config = ConfigDict(extra="allow")
36+
37+
files_added: int = 0
38+
files_updated: int = 0
39+
files_unchanged: int = 0
40+
new_entities: int = 0
41+
merged_entities: int = 0
42+
new_edges: int = 0
43+
removed_edges: int = 0
44+
ontology_types_added: int = 0
45+
rotate_retrain: str = ""
46+
delta_ratio: float = 0.0
47+
train_metrics: dict[str, Any] | None = None
48+
49+
50+
class DatasetIntelligenceResponse(BaseResponse):
51+
"""Response from the Dataset Intelligence service.
52+
53+
Returned by ``enrich()``, ``build_graph()``, ``build_ontology()``,
54+
and ``run()`` on the SDK resource.
55+
"""
56+
57+
model_config = ConfigDict(extra="allow")
58+
59+
endpoint_id: str = "dataset_intelligence"
60+
tier: str = ""
61+
dataset_id: str = ""
62+
mode: str = "create"
63+
data: dict[str, Any] = Field(default_factory=dict)
64+
usage: DatasetIntelligenceUsage = Field(
65+
default_factory=DatasetIntelligenceUsage
66+
)
67+
stage_timings: list[DatasetIntelligenceStageTiming] = Field(
68+
default_factory=list
69+
)
70+
delta_summary: DatasetIntelligenceDeltaSummary | None = None
71+
processing_time_ms: float = 0.0
72+
version: str = ""
73+
error: str | None = None
74+
error_code: str | None = None

src/latence/resources/__init__.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,18 @@
22

33
from __future__ import annotations
44

5+
from .chunking import AsyncChunking, Chunking
56
from .colbert import AsyncColBERT, ColBERT
67
from .colpali import AsyncColPali, ColPali
78
from .compression import AsyncCompression, Compression
89
from .credits import AsyncCredits, Credits
10+
from .dataset_intelligence_service import (
11+
AsyncDatasetIntelligenceService,
12+
DatasetIntelligenceService,
13+
)
914
from .document_intelligence import AsyncDocumentIntelligence, DocumentIntelligence
1015
from .embed import AsyncEmbed, Embed
1116
from .embedding import AsyncEmbedding, Embedding
12-
from .chunking import AsyncChunking, Chunking
1317
from .enrichment import AsyncEnrichment, Enrichment
1418
from .experimental import AsyncExperimentalNamespace, ExperimentalNamespace
1519
from .extraction import AsyncExtraction, Extraction
@@ -25,6 +29,7 @@
2529
"ColPali",
2630
"Compression",
2731
"Credits",
32+
"DatasetIntelligenceService",
2833
"DocumentIntelligence",
2934
"Embed",
3035
"Embedding",
@@ -41,6 +46,7 @@
4146
"AsyncColPali",
4247
"AsyncCompression",
4348
"AsyncCredits",
49+
"AsyncDatasetIntelligenceService",
4450
"AsyncDocumentIntelligence",
4551
"AsyncEmbed",
4652
"AsyncEmbedding",

0 commit comments

Comments
 (0)