dao-ai 0.0.12__py3-none-any.whl → 0.0.13__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.
- dao_ai/config.py +70 -52
- dao_ai/providers/databricks.py +7 -0
- {dao_ai-0.0.12.dist-info → dao_ai-0.0.13.dist-info}/METADATA +1 -1
- {dao_ai-0.0.12.dist-info → dao_ai-0.0.13.dist-info}/RECORD +7 -7
- {dao_ai-0.0.12.dist-info → dao_ai-0.0.13.dist-info}/WHEEL +0 -0
- {dao_ai-0.0.12.dist-info → dao_ai-0.0.13.dist-info}/entry_points.txt +0 -0
- {dao_ai-0.0.12.dist-info → dao_ai-0.0.13.dist-info}/licenses/LICENSE +0 -0
dao_ai/config.py
CHANGED
|
@@ -351,12 +351,82 @@ class IndexModel(BaseModel, HasFullName, IsDatabricksResource):
|
|
|
351
351
|
)
|
|
352
352
|
|
|
353
353
|
|
|
354
|
+
class GenieRoomModel(BaseModel, IsDatabricksResource):
|
|
355
|
+
model_config = ConfigDict(use_enum_values=True, extra="forbid")
|
|
356
|
+
name: str
|
|
357
|
+
description: Optional[str] = None
|
|
358
|
+
space_id: str
|
|
359
|
+
|
|
360
|
+
@property
|
|
361
|
+
def api_scopes(self) -> Sequence[str]:
|
|
362
|
+
return [
|
|
363
|
+
"dashboards.genie",
|
|
364
|
+
]
|
|
365
|
+
|
|
366
|
+
def as_resource(self) -> DatabricksResource:
|
|
367
|
+
return DatabricksGenieSpace(
|
|
368
|
+
genie_space_id=self.space_id, on_behalf_of_user=self.on_behalf_of_user
|
|
369
|
+
)
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
class VolumeModel(BaseModel, HasFullName):
|
|
373
|
+
model_config = ConfigDict(use_enum_values=True, extra="forbid")
|
|
374
|
+
schema_model: Optional[SchemaModel] = Field(default=None, alias="schema")
|
|
375
|
+
name: str
|
|
376
|
+
|
|
377
|
+
@property
|
|
378
|
+
def full_name(self) -> str:
|
|
379
|
+
if self.schema_model:
|
|
380
|
+
return f"{self.schema_model.catalog_name}.{self.schema_model.schema_name}.{self.name}"
|
|
381
|
+
return self.name
|
|
382
|
+
|
|
383
|
+
def create(self, w: WorkspaceClient | None = None) -> None:
|
|
384
|
+
from dao_ai.providers.base import ServiceProvider
|
|
385
|
+
from dao_ai.providers.databricks import DatabricksProvider
|
|
386
|
+
|
|
387
|
+
provider: ServiceProvider = DatabricksProvider(w=w)
|
|
388
|
+
provider.create_volume(self)
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
class VolumePathModel(BaseModel, HasFullName):
|
|
392
|
+
model_config = ConfigDict(use_enum_values=True, extra="forbid")
|
|
393
|
+
volume: Optional[VolumeModel] = None
|
|
394
|
+
path: Optional[str] = None
|
|
395
|
+
|
|
396
|
+
@model_validator(mode="after")
|
|
397
|
+
def validate_path_or_volume(self):
|
|
398
|
+
if not self.volume and not self.path:
|
|
399
|
+
raise ValueError("Either 'volume' or 'path' must be provided")
|
|
400
|
+
return self
|
|
401
|
+
|
|
402
|
+
@property
|
|
403
|
+
def full_name(self) -> str:
|
|
404
|
+
if self.volume and self.volume.schema_model:
|
|
405
|
+
catalog_name: str = self.volume.schema_model.catalog_name
|
|
406
|
+
schema_name: str = self.volume.schema_model.schema_name
|
|
407
|
+
volume_name: str = self.volume.name
|
|
408
|
+
path = f"/{self.path}" if self.path else ""
|
|
409
|
+
return f"/Volumes/{catalog_name}/{schema_name}/{volume_name}{path}"
|
|
410
|
+
return self.path
|
|
411
|
+
|
|
412
|
+
def create(self, w: WorkspaceClient | None = None) -> None:
|
|
413
|
+
from dao_ai.providers.databricks import DatabricksProvider
|
|
414
|
+
|
|
415
|
+
if self.volume:
|
|
416
|
+
self.volume.create(w=w)
|
|
417
|
+
|
|
418
|
+
provider: DatabricksProvider = DatabricksProvider(w=w)
|
|
419
|
+
provider.create_path(self)
|
|
420
|
+
|
|
421
|
+
|
|
354
422
|
class VectorStoreModel(BaseModel, IsDatabricksResource):
|
|
355
423
|
model_config = ConfigDict(use_enum_values=True, extra="forbid")
|
|
356
424
|
embedding_model: Optional[LLMModel] = None
|
|
357
425
|
index: Optional[IndexModel] = None
|
|
358
426
|
endpoint: Optional[VectorSearchEndpoint] = None
|
|
359
427
|
source_table: TableModel
|
|
428
|
+
source_path: Optional[VolumePathModel] = None
|
|
429
|
+
checkpoint_path: Optional[VolumePathModel] = None
|
|
360
430
|
primary_key: Optional[str] = None
|
|
361
431
|
columns: Optional[list[str]] = Field(default_factory=list)
|
|
362
432
|
doc_uri: Optional[str] = None
|
|
@@ -448,43 +518,6 @@ class VectorStoreModel(BaseModel, IsDatabricksResource):
|
|
|
448
518
|
provider.create_vector_store(self)
|
|
449
519
|
|
|
450
520
|
|
|
451
|
-
class GenieRoomModel(BaseModel, IsDatabricksResource):
|
|
452
|
-
model_config = ConfigDict(use_enum_values=True, extra="forbid")
|
|
453
|
-
name: str
|
|
454
|
-
description: Optional[str] = None
|
|
455
|
-
space_id: str
|
|
456
|
-
|
|
457
|
-
@property
|
|
458
|
-
def api_scopes(self) -> Sequence[str]:
|
|
459
|
-
return [
|
|
460
|
-
"dashboards.genie",
|
|
461
|
-
]
|
|
462
|
-
|
|
463
|
-
def as_resource(self) -> DatabricksResource:
|
|
464
|
-
return DatabricksGenieSpace(
|
|
465
|
-
genie_space_id=self.space_id, on_behalf_of_user=self.on_behalf_of_user
|
|
466
|
-
)
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
class VolumeModel(BaseModel, HasFullName):
|
|
470
|
-
model_config = ConfigDict(use_enum_values=True, extra="forbid")
|
|
471
|
-
schema_model: Optional[SchemaModel] = Field(default=None, alias="schema")
|
|
472
|
-
name: str
|
|
473
|
-
|
|
474
|
-
@property
|
|
475
|
-
def full_name(self) -> str:
|
|
476
|
-
if self.schema_model:
|
|
477
|
-
return f"{self.schema_model.catalog_name}.{self.schema_model.schema_name}.{self.name}"
|
|
478
|
-
return self.name
|
|
479
|
-
|
|
480
|
-
def create(self, w: WorkspaceClient | None = None) -> None:
|
|
481
|
-
from dao_ai.providers.base import ServiceProvider
|
|
482
|
-
from dao_ai.providers.databricks import DatabricksProvider
|
|
483
|
-
|
|
484
|
-
provider: ServiceProvider = DatabricksProvider(w=w)
|
|
485
|
-
provider.create_volume(self)
|
|
486
|
-
|
|
487
|
-
|
|
488
521
|
class FunctionModel(BaseModel, HasFullName, IsDatabricksResource):
|
|
489
522
|
model_config = ConfigDict()
|
|
490
523
|
schema_model: Optional[SchemaModel] = Field(default=None, alias="schema")
|
|
@@ -1107,21 +1140,6 @@ class DatasetFormat(str, Enum):
|
|
|
1107
1140
|
EXCEL = "excel"
|
|
1108
1141
|
|
|
1109
1142
|
|
|
1110
|
-
class VolumePathModel(BaseModel, HasFullName):
|
|
1111
|
-
model_config = ConfigDict(use_enum_values=True, extra="forbid")
|
|
1112
|
-
volume: VolumeModel
|
|
1113
|
-
path: str
|
|
1114
|
-
|
|
1115
|
-
@property
|
|
1116
|
-
def full_name(self) -> str:
|
|
1117
|
-
if self.volume.schema_model:
|
|
1118
|
-
catalog_name: str = self.volume.schema_model.catalog_name
|
|
1119
|
-
schema_name: str = self.volume.schema_model.schema_name
|
|
1120
|
-
volume_name: str = self.volume.name
|
|
1121
|
-
return f"/Volumes/{catalog_name}/{schema_name}/{volume_name}/{self.path}"
|
|
1122
|
-
return f"/Volumes/{volume_name}/{self.path}"
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
1143
|
class DatasetModel(BaseModel):
|
|
1126
1144
|
model_config = ConfigDict(use_enum_values=True, extra="forbid")
|
|
1127
1145
|
table: Optional[TableModel] = None
|
dao_ai/providers/databricks.py
CHANGED
|
@@ -54,6 +54,7 @@ from dao_ai.config import (
|
|
|
54
54
|
UnityCatalogFunctionSqlModel,
|
|
55
55
|
VectorStoreModel,
|
|
56
56
|
VolumeModel,
|
|
57
|
+
VolumePathModel,
|
|
57
58
|
WarehouseModel,
|
|
58
59
|
)
|
|
59
60
|
from dao_ai.models import get_latest_model_version
|
|
@@ -441,6 +442,12 @@ class DatabricksProvider(ServiceProvider):
|
|
|
441
442
|
)
|
|
442
443
|
return volume_info
|
|
443
444
|
|
|
445
|
+
def create_path(self, volume_path: VolumePathModel) -> Path:
|
|
446
|
+
path: Path = volume_path.full_name
|
|
447
|
+
logger.info(f"Creating volume path: {path}")
|
|
448
|
+
self.w.files.create_directory(path)
|
|
449
|
+
return path
|
|
450
|
+
|
|
444
451
|
def create_dataset(self, dataset: DatasetModel) -> None:
|
|
445
452
|
current_dir: Path = "file:///" / Path.cwd().relative_to("/")
|
|
446
453
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dao-ai
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.13
|
|
4
4
|
Summary: DAO AI: A modular, multi-agent orchestration framework for complex AI workflows. Supports agent handoff, tool integration, and dynamic configuration via YAML.
|
|
5
5
|
Project-URL: Homepage, https://github.com/natefleming/dao-ai
|
|
6
6
|
Project-URL: Documentation, https://natefleming.github.io/dao-ai
|
|
@@ -3,7 +3,7 @@ dao_ai/agent_as_code.py,sha256=WjBUJzHMAEX7joMaQGgBgnofiKxjJjdQEVsBJ4VSkPA,655
|
|
|
3
3
|
dao_ai/catalog.py,sha256=sPZpHTD3lPx4EZUtIWeQV7VQM89WJ6YH__wluk1v2lE,4947
|
|
4
4
|
dao_ai/chat_models.py,sha256=uhwwOTeLyHWqoTTgHrs4n5iSyTwe4EQcLKnh3jRxPWI,8626
|
|
5
5
|
dao_ai/cli.py,sha256=Aez2TQW3Q8Ho1IaIkRggt0NevDxAAVPjXkePC5GPJF0,20429
|
|
6
|
-
dao_ai/config.py,sha256=
|
|
6
|
+
dao_ai/config.py,sha256=UrETOJK_sTJAaKD91Pkc_alG9wfzfWbMeHxtxdnUZhQ,44881
|
|
7
7
|
dao_ai/graph.py,sha256=rIm6cLsWwViB3L1dIZp9qc-U-JgFNB5ngEi22Y3iVGQ,7806
|
|
8
8
|
dao_ai/guardrails.py,sha256=-Qh0f_2Db9t4Nbrrx9FM7tnpqShjMoyxepZ0HByItfU,4027
|
|
9
9
|
dao_ai/messages.py,sha256=tRZQTeb5YFKu8cm1xeaCkKhidq-0tdzncNEzVePvits,6806
|
|
@@ -22,7 +22,7 @@ dao_ai/memory/core.py,sha256=K45iCEFbqJCVxMi4m3vmBJi4c6TQ-UtKGzyugDTkPP0,4141
|
|
|
22
22
|
dao_ai/memory/postgres.py,sha256=YILzA7xtqawPAOLFaGG_i17zW7cQxXTzTD8yd-ipe8k,12480
|
|
23
23
|
dao_ai/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
24
|
dao_ai/providers/base.py,sha256=-fjKypCOk28h6vioPfMj9YZSw_3Kcbi2nMuAyY7vX9k,1383
|
|
25
|
-
dao_ai/providers/databricks.py,sha256=
|
|
25
|
+
dao_ai/providers/databricks.py,sha256=XRPOqwF5SeA9rPAOWMg2gSMC7lw31BI5VI_4K0KIOqo,27931
|
|
26
26
|
dao_ai/tools/__init__.py,sha256=ye6MHaJY7tUnJ8336YJiLxuZr55zDPNdOw6gm7j5jlc,1103
|
|
27
27
|
dao_ai/tools/agent.py,sha256=_XMz6HtrybpVthhRyStADechF6vXLFyK97i01XTBhtw,1868
|
|
28
28
|
dao_ai/tools/core.py,sha256=Kei33S8vrmvPOAyrFNekaWmV2jqZ-IPS1QDSvU7RZF0,1984
|
|
@@ -33,8 +33,8 @@ dao_ai/tools/python.py,sha256=XcQiTMshZyLUTVR5peB3vqsoUoAAy8gol9_pcrhddfI,1831
|
|
|
33
33
|
dao_ai/tools/time.py,sha256=Y-23qdnNHzwjvnfkWvYsE7PoWS1hfeKy44tA7sCnNac,8759
|
|
34
34
|
dao_ai/tools/unity_catalog.py,sha256=PXfLj2EgyQgaXq4Qq3t25AmTC4KyVCF_-sCtg6enens,1404
|
|
35
35
|
dao_ai/tools/vector_search.py,sha256=kLveW-JGwc4IbJ7fKclJFmDXhP3h5XBrjljgab2tRD4,2559
|
|
36
|
-
dao_ai-0.0.
|
|
37
|
-
dao_ai-0.0.
|
|
38
|
-
dao_ai-0.0.
|
|
39
|
-
dao_ai-0.0.
|
|
40
|
-
dao_ai-0.0.
|
|
36
|
+
dao_ai-0.0.13.dist-info/METADATA,sha256=rSKZRiJlzOUFYJXyo-ofNYVWWXjr_-dnrmbX34fb_8s,41338
|
|
37
|
+
dao_ai-0.0.13.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
38
|
+
dao_ai-0.0.13.dist-info/entry_points.txt,sha256=Xa-UFyc6gWGwMqMJOt06ZOog2vAfygV_DSwg1AiP46g,43
|
|
39
|
+
dao_ai-0.0.13.dist-info/licenses/LICENSE,sha256=YZt3W32LtPYruuvHE9lGk2bw6ZPMMJD8yLrjgHybyz4,1069
|
|
40
|
+
dao_ai-0.0.13.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|