dao-ai 0.1.2__tar.gz → 0.1.4__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.
- {dao_ai-0.1.2 → dao_ai-0.1.4}/PKG-INFO +36 -2
- {dao_ai-0.1.2 → dao_ai-0.1.4}/README.md +35 -1
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/03_reranking/vector_search_with_reranking.yaml +9 -7
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/15_complete_applications/hardware_store_lakebase.yaml +1 -1
- {dao_ai-0.1.2 → dao_ai-0.1.4}/databricks.yaml.template +21 -9
- dao_ai-0.1.4/docs/cli-reference.md +237 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/docs/key-capabilities.md +12 -8
- {dao_ai-0.1.2 → dao_ai-0.1.4}/pyproject.toml +1 -1
- {dao_ai-0.1.2 → dao_ai-0.1.4}/schemas/model_config_schema.json +29 -16
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/cli.py +104 -18
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/config.py +149 -40
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/providers/databricks.py +11 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/vector_search.py +37 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_databricks.py +484 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_reranking.py +4 -0
- dao_ai-0.1.2/docs/cli-reference.md +0 -98
- dao_ai-0.1.2/src/quick_serve_restaurant/__init__.py +0 -0
- dao_ai-0.1.2/tests/quick_serve_restaurant/.gitkeep +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/.gitignore +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/.python-version +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/CHANGELOG.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/CONTRIBUTING.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/LICENSE +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/Makefile +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/01_getting_started/README.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/01_getting_started/minimal.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/02_mcp/README.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/02_mcp/custom_mcp.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/02_mcp/external_mcp.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/02_mcp/managed_mcp.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/02_mcp/slack_integration.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/03_reranking/README.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/04_genie/README.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/04_genie/genie_basic.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/04_genie/genie_lru_cache.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/04_genie/genie_semantic_cache.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/04_genie/genie_with_conversation_id.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/05_memory/README.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/05_memory/conversation_summarization.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/05_memory/in_memory_basic.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/05_memory/lakebase_persistence.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/05_memory/postgres_persistence.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/06_on_behalf_of_user/README.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/06_on_behalf_of_user/obo_basic.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/07_human_in_the_loop/README.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/07_human_in_the_loop/human_in_the_loop.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/08_guardrails/README.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/08_guardrails/guardrails_basic.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/09_structured_output/README.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/09_structured_output/structured_output.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/10_agent_integrations/README.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/10_agent_integrations/agent_bricks.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/10_agent_integrations/kasal.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/11_prompt_engineering/README.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/11_prompt_engineering/prompt_optimization.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/11_prompt_engineering/prompt_registry.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/12_middleware/README.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/12_middleware/combined_middleware.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/12_middleware/custom_field_validation.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/12_middleware/logging_middleware.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/13_orchestration/README.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/13_orchestration/supervisor_pattern.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/13_orchestration/swarm_pattern.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/14_basic_tools/README.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/14_basic_tools/sql_tool_example.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/15_complete_applications/README.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/15_complete_applications/brick_store.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/15_complete_applications/deep_research.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/15_complete_applications/executive_assistant.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/15_complete_applications/genie_and_genie_mcp.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/15_complete_applications/genie_vector_search_hybrid.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/15_complete_applications/hardware_store.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/15_complete_applications/hardware_store_swarm.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/15_complete_applications/quick_serve_restaurant.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/15_complete_applications/reservations_system.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/README.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/appointments.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/appointments_data.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/brand_rep_demo_data.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/brand_rep_demo_queries.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/brand_rep_demo_tables.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/brand_rep_demo_validation.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/customers.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/customers_data.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/dim_stores.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/dim_stores_data.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/employee_performance.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/employee_performance_data.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/employee_tasks.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/employee_tasks_data.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/inventory.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/inventory_data.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/managers.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/managers_data.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/product_data.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/products.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/dais2025/task_assignments.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/hardware_store/inventory.snappy.parquet +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/hardware_store/inventory.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/hardware_store/products.snappy.parquet +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/hardware_store/products.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/quick_serve_restaurant/.gitkeep +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/quick_serve_restaurant/fulfil_item_orders.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/quick_serve_restaurant/items_description.csv +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/quick_serve_restaurant/items_description.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/quick_serve_restaurant/items_raw.csv +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/quick_serve_restaurant/items_raw.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/quick_serve_restaurant/orders_raw.csv +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/data/quick_serve_restaurant/orders_raw.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/docs/architecture.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/docs/configuration-reference.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/docs/contributing.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/docs/examples.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/docs/faq.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/docs/hardware_store/README.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/docs/hardware_store/retail_supervisor.png +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/docs/hardware_store/retail_swarm.png +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/docs/images/genie.png +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/docs/python-api.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/docs/quick_serve_restaurant/.gitkeep +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/docs/quick_serve_restaurant/quick-serve-restaurant.png +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/docs/why-dao.md +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/environment.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/examples/dais2025/examples.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/examples/deep_research/examples.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/examples/executive_assistant/examples.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/examples/hardware_store/examples.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/examples/quick_serve_restaurant/.gitkeep +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/examples/quick_serve_restaurant/examples.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/dais2025/extract_store_numbers.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/dais2025/find_inventory_by_sku.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/dais2025/find_inventory_by_upc.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/dais2025/find_product_by_sku.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/dais2025/find_product_by_upc.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/dais2025/find_store_by_number.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/dais2025/find_store_inventory_by_sku.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/dais2025/find_store_inventory_by_upc.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/hardware_store/find_inventory_by_sku.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/hardware_store/find_inventory_by_upc.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/hardware_store/find_product_by_sku.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/hardware_store/find_product_by_upc.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/hardware_store/find_store_inventory_by_sku.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/hardware_store/find_store_inventory_by_upc.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/quick_serve_restaurant/.gitkeep +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/quick_serve_restaurant/insert_coffee_order.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/quick_serve_restaurant/lookup_items_by_descriptions.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/quick_serve_restaurant/match_historical_item_order_by_date.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/functions/quick_serve_restaurant/match_item_by_description_and_price.sql +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/notebooks/01_ingest_and_transform.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/notebooks/02_provision_vector_search.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/notebooks/03_provision_lakebase.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/notebooks/04_unity_catalog_tools.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/notebooks/05_deploy_agent.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/notebooks/06_generate_evaluation_data.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/notebooks/07_run_evaluation.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/notebooks/08_run_examples.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/notebooks/09_evaluate_inferences.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/notebooks/10_optimize_prompts.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/notebooks/99_scratchpad.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/requirements.txt +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/schemas/bundle_config_schema.json +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dais2025/__init__.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dais2025/models.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dais2025/tools/__init__.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dais2025/tools/customer.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dais2025/tools/employee.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dais2025/tools/executive.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dais2025/tools/genie.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dais2025/tools/inventory.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dais2025/tools/models.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dais2025/tools/store.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/__init__.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/agent_as_code.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/catalog.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/genie/__init__.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/genie/cache/__init__.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/genie/cache/base.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/genie/cache/core.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/genie/cache/lru.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/genie/cache/semantic.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/genie/core.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/graph.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/hooks/__init__.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/hooks/core.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/logging.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/memory/__init__.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/memory/base.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/memory/core.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/memory/databricks.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/memory/postgres.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/messages.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/middleware/__init__.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/middleware/assertions.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/middleware/base.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/middleware/core.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/middleware/guardrails.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/middleware/human_in_the_loop.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/middleware/message_validation.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/middleware/summarization.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/models.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/nodes.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/optimization.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/orchestration/__init__.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/orchestration/core.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/orchestration/supervisor.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/orchestration/swarm.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/prompts.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/providers/__init__.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/providers/base.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/state.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/tools/__init__.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/tools/agent.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/tools/core.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/tools/email.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/tools/genie.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/tools/mcp.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/tools/memory.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/tools/python.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/tools/search.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/tools/slack.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/tools/sql.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/tools/time.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/tools/unity_catalog.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/tools/vector_search.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/types.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/src/dao_ai/utils.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/config/test_model_config.yaml +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/conftest.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_agent_response_format.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_assertions_middleware.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_catalog.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_chat_history.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_config.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_function_parsing.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_genie.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_genie_conversation_ids_in_outputs.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_genie_databricks_integration.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_genie_room_model.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_guardrail_retry.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_hitl_config_model.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_hitl_responses_agent.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_hooks.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_human_in_the_loop.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_inference.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_inference_integration.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_input_output_structure.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_interrupt_type.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_llm_interrupt_handling.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_mcp.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_mcp_function_model.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_message_validation_middleware.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_messages.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_models.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_optimization.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_postgres_integration.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_prompt_optimizations.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_prompts.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_reranking_integration.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_resources_model_genie_integration.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_response_format.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_responses_agent_structured_output_unit.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_semantic_cache_context.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_sql_tool.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_sql_tool_integration.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_state.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_summarization_inference.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_swarm_middleware.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_tools.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_types.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_unity_catalog.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_utils.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_utils_type_from_fqn.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/test_vector_search.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/dao_ai/weather_server_mcp.py +0 -0
- {dao_ai-0.1.2/src/quick_serve_restaurant → dao_ai-0.1.4/tests/hardware_store}/.gitkeep +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/hardware_store/test_graph.py +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/images/doritos_upc.png +0 -0
- {dao_ai-0.1.2 → dao_ai-0.1.4}/tests/images/lays_upc.png +0 -0
- {dao_ai-0.1.2/tests/hardware_store → dao_ai-0.1.4/tests/quick_serve_restaurant}/.gitkeep +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dao-ai
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
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
|
|
@@ -79,7 +79,7 @@ Description-Content-Type: text/markdown
|
|
|
79
79
|
|
|
80
80
|
# DAO: Declarative Agent Orchestration
|
|
81
81
|
|
|
82
|
-
[](CHANGELOG.md)
|
|
83
83
|
[](https://www.python.org/)
|
|
84
84
|
[](LICENSE)
|
|
85
85
|
|
|
@@ -293,6 +293,16 @@ This single command:
|
|
|
293
293
|
3. Deploys it to Databricks
|
|
294
294
|
4. Creates a serving endpoint
|
|
295
295
|
|
|
296
|
+
**Deploying to a specific workspace:**
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
# Deploy to AWS workspace
|
|
300
|
+
dao-ai bundle --deploy --run -c config/my_agent.yaml --profile aws-field-eng
|
|
301
|
+
|
|
302
|
+
# Deploy to Azure workspace
|
|
303
|
+
dao-ai bundle --deploy --run -c config/my_agent.yaml --profile azure-retail
|
|
304
|
+
```
|
|
305
|
+
|
|
296
306
|
**Step 5: Interact with your agent**
|
|
297
307
|
|
|
298
308
|
Once deployed, you can chat with your agent using Python:
|
|
@@ -422,10 +432,34 @@ dao-ai graph -c config/my_config.yaml -o workflow.png
|
|
|
422
432
|
# Deploy with Databricks Asset Bundles
|
|
423
433
|
dao-ai bundle --deploy --run -c config/my_config.yaml
|
|
424
434
|
|
|
435
|
+
# Deploy to a specific workspace (multi-cloud support)
|
|
436
|
+
dao-ai bundle --deploy -c config/my_config.yaml --profile aws-field-eng
|
|
437
|
+
dao-ai bundle --deploy -c config/my_config.yaml --profile azure-retail
|
|
438
|
+
|
|
425
439
|
# Interactive chat with agent
|
|
426
440
|
dao-ai chat -c config/my_config.yaml
|
|
427
441
|
```
|
|
428
442
|
|
|
443
|
+
### Multi-Cloud Deployment
|
|
444
|
+
|
|
445
|
+
DAO AI supports deploying to Azure, AWS, and GCP workspaces with automatic cloud detection:
|
|
446
|
+
|
|
447
|
+
```bash
|
|
448
|
+
# Deploy to AWS workspace
|
|
449
|
+
dao-ai bundle --deploy -c config/my_config.yaml --profile aws-prod
|
|
450
|
+
|
|
451
|
+
# Deploy to Azure workspace
|
|
452
|
+
dao-ai bundle --deploy -c config/my_config.yaml --profile azure-prod
|
|
453
|
+
|
|
454
|
+
# Deploy to GCP workspace
|
|
455
|
+
dao-ai bundle --deploy -c config/my_config.yaml --profile gcp-prod
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
The CLI automatically:
|
|
459
|
+
- Detects the cloud provider from your profile's workspace URL
|
|
460
|
+
- Selects appropriate compute node types for each cloud
|
|
461
|
+
- Creates isolated deployment state per profile
|
|
462
|
+
|
|
429
463
|
👉 **Learn more:** [CLI Reference Documentation](docs/cli-reference.md)
|
|
430
464
|
|
|
431
465
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# DAO: Declarative Agent Orchestration
|
|
2
2
|
|
|
3
|
-
[](CHANGELOG.md)
|
|
4
4
|
[](https://www.python.org/)
|
|
5
5
|
[](LICENSE)
|
|
6
6
|
|
|
@@ -214,6 +214,16 @@ This single command:
|
|
|
214
214
|
3. Deploys it to Databricks
|
|
215
215
|
4. Creates a serving endpoint
|
|
216
216
|
|
|
217
|
+
**Deploying to a specific workspace:**
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
# Deploy to AWS workspace
|
|
221
|
+
dao-ai bundle --deploy --run -c config/my_agent.yaml --profile aws-field-eng
|
|
222
|
+
|
|
223
|
+
# Deploy to Azure workspace
|
|
224
|
+
dao-ai bundle --deploy --run -c config/my_agent.yaml --profile azure-retail
|
|
225
|
+
```
|
|
226
|
+
|
|
217
227
|
**Step 5: Interact with your agent**
|
|
218
228
|
|
|
219
229
|
Once deployed, you can chat with your agent using Python:
|
|
@@ -343,10 +353,34 @@ dao-ai graph -c config/my_config.yaml -o workflow.png
|
|
|
343
353
|
# Deploy with Databricks Asset Bundles
|
|
344
354
|
dao-ai bundle --deploy --run -c config/my_config.yaml
|
|
345
355
|
|
|
356
|
+
# Deploy to a specific workspace (multi-cloud support)
|
|
357
|
+
dao-ai bundle --deploy -c config/my_config.yaml --profile aws-field-eng
|
|
358
|
+
dao-ai bundle --deploy -c config/my_config.yaml --profile azure-retail
|
|
359
|
+
|
|
346
360
|
# Interactive chat with agent
|
|
347
361
|
dao-ai chat -c config/my_config.yaml
|
|
348
362
|
```
|
|
349
363
|
|
|
364
|
+
### Multi-Cloud Deployment
|
|
365
|
+
|
|
366
|
+
DAO AI supports deploying to Azure, AWS, and GCP workspaces with automatic cloud detection:
|
|
367
|
+
|
|
368
|
+
```bash
|
|
369
|
+
# Deploy to AWS workspace
|
|
370
|
+
dao-ai bundle --deploy -c config/my_config.yaml --profile aws-prod
|
|
371
|
+
|
|
372
|
+
# Deploy to Azure workspace
|
|
373
|
+
dao-ai bundle --deploy -c config/my_config.yaml --profile azure-prod
|
|
374
|
+
|
|
375
|
+
# Deploy to GCP workspace
|
|
376
|
+
dao-ai bundle --deploy -c config/my_config.yaml --profile gcp-prod
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
The CLI automatically:
|
|
380
|
+
- Detects the cloud provider from your profile's workspace URL
|
|
381
|
+
- Selects appropriate compute node types for each cloud
|
|
382
|
+
- Creates isolated deployment state per profile
|
|
383
|
+
|
|
350
384
|
👉 **Learn more:** [CLI Reference Documentation](docs/cli-reference.md)
|
|
351
385
|
|
|
352
386
|
---
|
{dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/03_reranking/vector_search_with_reranking.yaml
RENAMED
|
@@ -83,7 +83,7 @@ retrievers:
|
|
|
83
83
|
filters: {}
|
|
84
84
|
query_type: ANN
|
|
85
85
|
rerank: # Custom reranking configuration
|
|
86
|
-
model: ms-marco-
|
|
86
|
+
model: ms-marco-TinyBERT-L-2-v2 # Fastest, smallest model (~4MB)
|
|
87
87
|
top_n: 5 # Return top 5 after reranking
|
|
88
88
|
# cache_dir: ~/.dao_ai/cache/flashrank # Cache directory (default shown)
|
|
89
89
|
|
|
@@ -258,7 +258,7 @@ app:
|
|
|
258
258
|
# - Use when: Need better results than standard search
|
|
259
259
|
#
|
|
260
260
|
# 3. Fast Reranking - fast_search_agent
|
|
261
|
-
# - Uses lighter model (ms-marco-
|
|
261
|
+
# - Uses lighter model (ms-marco-TinyBERT-L-2-v2)
|
|
262
262
|
# - Retrieves 100 candidates, returns top 5
|
|
263
263
|
# - Faster than default but still improves results
|
|
264
264
|
# - Use when: High volume, need speed with some accuracy boost
|
|
@@ -286,8 +286,10 @@ app:
|
|
|
286
286
|
# - More candidates = better reranking but slower
|
|
287
287
|
# - Cache directory should be on fast storage
|
|
288
288
|
#
|
|
289
|
-
# Model Selection:
|
|
290
|
-
# - ms-marco-TinyBERT-L-2-v2:
|
|
291
|
-
# - ms-marco-MiniLM-L-
|
|
292
|
-
# -
|
|
293
|
-
# -
|
|
289
|
+
# Model Selection (see https://github.com/PrithivirajDamodaran/FlashRank):
|
|
290
|
+
# - ms-marco-TinyBERT-L-2-v2: ~4MB, fastest
|
|
291
|
+
# - ms-marco-MiniLM-L-12-v2: ~34MB, best cross-encoder (default)
|
|
292
|
+
# - rank-T5-flan: ~110MB, best non cross-encoder
|
|
293
|
+
# - ms-marco-MultiBERT-L-12: ~150MB, multilingual (100+ languages)
|
|
294
|
+
# - ce-esci-MiniLM-L12-v2: e-commerce optimized (Amazon ESCI)
|
|
295
|
+
# - miniReranker_arabic_v1: Arabic language
|
{dao_ai-0.1.2 → dao_ai-0.1.4}/config/examples/15_complete_applications/hardware_store_lakebase.yaml
RENAMED
|
@@ -689,7 +689,7 @@ app:
|
|
|
689
689
|
registered_model: # MLflow registered model configuration
|
|
690
690
|
schema: *retail_schema # Schema where model will be registered
|
|
691
691
|
name: hardware_store_lakebase_dao
|
|
692
|
-
endpoint_name:
|
|
692
|
+
endpoint_name: hardware_store_lakebase_dao # Model serving endpoint name
|
|
693
693
|
environment_vars:
|
|
694
694
|
PGHOST: "{{secrets/retail_ai/PGHOST}}" # Databricks host URL
|
|
695
695
|
RETAIL_AI_DATABRICKS_CLIENT_ID: "{{secrets/retail_ai/RETAIL_AI_DATABRICKS_CLIENT_ID}}"
|
|
@@ -13,8 +13,9 @@ variables:
|
|
|
13
13
|
config_path:
|
|
14
14
|
description: Path to the configuration file for the job.
|
|
15
15
|
node_type:
|
|
16
|
-
description: The job compute node type
|
|
17
|
-
|
|
16
|
+
description: The job compute node type (cloud-specific, set per target)
|
|
17
|
+
cloud:
|
|
18
|
+
description: Cloud provider (azure, aws, gcp) - auto-detected or set per target
|
|
18
19
|
|
|
19
20
|
resources:
|
|
20
21
|
jobs:
|
|
@@ -93,12 +94,23 @@ resources:
|
|
|
93
94
|
config-path: ${var.config_path}
|
|
94
95
|
environment_key: dao-ai-env
|
|
95
96
|
|
|
97
|
+
# Cloud-specific targets with appropriate node types
|
|
98
|
+
# The CLI auto-selects the target based on workspace cloud detection
|
|
96
99
|
targets:
|
|
97
|
-
|
|
100
|
+
azure:
|
|
98
101
|
mode: development
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
102
|
+
variables:
|
|
103
|
+
cloud: azure
|
|
104
|
+
node_type: Standard_D4ads_v5
|
|
105
|
+
|
|
106
|
+
aws:
|
|
107
|
+
mode: development
|
|
108
|
+
variables:
|
|
109
|
+
cloud: aws
|
|
110
|
+
node_type: i3.xlarge
|
|
111
|
+
|
|
112
|
+
gcp:
|
|
113
|
+
mode: development
|
|
114
|
+
variables:
|
|
115
|
+
cloud: gcp
|
|
116
|
+
node_type: n1-standard-4
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
# CLI Reference
|
|
2
|
+
|
|
3
|
+
## Validate Configuration
|
|
4
|
+
|
|
5
|
+
Check your configuration for errors:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
dao-ai validate -c config/my_config.yaml
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Generate JSON Schema
|
|
12
|
+
|
|
13
|
+
Generate JSON schema for IDE support and validation:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
dao-ai schema > schemas/model_config_schema.json
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Visualize Agent Workflow
|
|
20
|
+
|
|
21
|
+
Generate a diagram showing how your agent works:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
dao-ai graph -c config/my_config.yaml -o workflow.png
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Deploy with Databricks Asset Bundles
|
|
28
|
+
|
|
29
|
+
Deploy your agent to Databricks. The CLI supports multi-cloud deployments with automatic cloud detection.
|
|
30
|
+
|
|
31
|
+
### Basic Deployment
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Deploy using default profile or environment
|
|
35
|
+
dao-ai bundle --deploy -c config/my_config.yaml
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Multi-Cloud Deployment
|
|
39
|
+
|
|
40
|
+
The CLI automatically detects the cloud provider from your Databricks workspace and selects the appropriate configuration (node types, etc.):
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Deploy to AWS workspace
|
|
44
|
+
dao-ai bundle --deploy -c config/my_config.yaml --profile aws-field-eng
|
|
45
|
+
|
|
46
|
+
# Deploy to Azure workspace
|
|
47
|
+
dao-ai bundle --deploy -c config/my_config.yaml --profile azure-retail
|
|
48
|
+
|
|
49
|
+
# Deploy to GCP workspace
|
|
50
|
+
dao-ai bundle --deploy -c config/my_config.yaml --profile gcp-analytics
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Deploy and Run
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# Deploy and immediately run the job
|
|
57
|
+
dao-ai bundle --deploy --run -c config/my_config.yaml --profile aws-field-eng
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Explicit Cloud Override
|
|
61
|
+
|
|
62
|
+
If cloud auto-detection doesn't work, you can specify the cloud explicitly:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
dao-ai bundle --deploy -c config/my_config.yaml --cloud aws
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Dry Run
|
|
69
|
+
|
|
70
|
+
Preview commands without executing:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
dao-ai bundle --deploy -c config/my_config.yaml --profile aws-field-eng --dry-run
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Interactive Chat
|
|
77
|
+
|
|
78
|
+
Start an interactive chat session with your agent:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
dao-ai chat -c config/my_config.yaml
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Verbose Output
|
|
85
|
+
|
|
86
|
+
Increase verbosity for debugging (use `-v` through `-vvvv`):
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
dao-ai -vvvv validate -c config/my_config.yaml
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Command Options
|
|
95
|
+
|
|
96
|
+
### Common Options
|
|
97
|
+
|
|
98
|
+
| Option | Description |
|
|
99
|
+
|--------|-------------|
|
|
100
|
+
| `-c, --config FILE` | Path to configuration file (required) |
|
|
101
|
+
| `-p, --profile NAME` | Databricks CLI profile to use |
|
|
102
|
+
| `-v, --verbose` | Increase verbosity (can be repeated up to 4 times) |
|
|
103
|
+
| `--help` | Show help message |
|
|
104
|
+
|
|
105
|
+
### Validate Options
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
dao-ai validate -c config/my_config.yaml [OPTIONS]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Graph Options
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
dao-ai graph -c config/my_config.yaml -o output.png [OPTIONS]
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
| Option | Description |
|
|
118
|
+
|--------|-------------|
|
|
119
|
+
| `-o, --output FILE` | Output file path (supports .png, .pdf, .svg) |
|
|
120
|
+
|
|
121
|
+
### Bundle Options
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
dao-ai bundle -c config/my_config.yaml [OPTIONS]
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
| Option | Description |
|
|
128
|
+
|--------|-------------|
|
|
129
|
+
| `-d, --deploy` | Deploy the bundle to Databricks |
|
|
130
|
+
| `-r, --run` | Run the deployment job after deploying |
|
|
131
|
+
| `--destroy` | Destroy the deployed bundle |
|
|
132
|
+
| `-p, --profile NAME` | Databricks CLI profile to use |
|
|
133
|
+
| `--cloud {azure,aws,gcp}` | Cloud provider (auto-detected if not specified) |
|
|
134
|
+
| `-t, --target NAME` | Bundle target name (auto-generated if not specified) |
|
|
135
|
+
| `--dry-run` | Preview commands without executing |
|
|
136
|
+
|
|
137
|
+
### Chat Options
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
dao-ai chat -c config/my_config.yaml [OPTIONS]
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Starts an interactive REPL session where you can chat with your agent locally.
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Multi-Cloud Support
|
|
148
|
+
|
|
149
|
+
DAO AI supports deploying to Azure, AWS, and GCP Databricks workspaces. The CLI handles cloud-specific configurations automatically.
|
|
150
|
+
|
|
151
|
+
### How It Works
|
|
152
|
+
|
|
153
|
+
1. **Cloud Detection**: When you specify a `--profile`, the CLI detects the cloud provider from the workspace URL
|
|
154
|
+
2. **Target Selection**: The CLI uses the profile name as the deployment target for per-profile isolation
|
|
155
|
+
3. **Node Types**: Cloud-appropriate compute node types are automatically selected:
|
|
156
|
+
- Azure: `Standard_D4ads_v5`
|
|
157
|
+
- AWS: `i3.xlarge`
|
|
158
|
+
- GCP: `n1-standard-4`
|
|
159
|
+
|
|
160
|
+
### Profile Configuration
|
|
161
|
+
|
|
162
|
+
Profiles are configured in `~/.databrickscfg`:
|
|
163
|
+
|
|
164
|
+
```ini
|
|
165
|
+
[aws-field-eng]
|
|
166
|
+
host = https://my-workspace.cloud.databricks.com
|
|
167
|
+
token = dapi...
|
|
168
|
+
|
|
169
|
+
[azure-retail]
|
|
170
|
+
host = https://adb-123456789.azuredatabricks.net
|
|
171
|
+
token = dapi...
|
|
172
|
+
|
|
173
|
+
[gcp-analytics]
|
|
174
|
+
host = https://my-workspace.gcp.databricks.com
|
|
175
|
+
token = dapi...
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Deployment Isolation
|
|
179
|
+
|
|
180
|
+
Each profile gets its own isolated deployment state:
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
/.bundle/my_app/aws-field-eng/files # AWS deployment
|
|
184
|
+
/.bundle/my_app/azure-retail/files # Azure deployment
|
|
185
|
+
/.bundle/my_app/gcp-analytics/files # GCP deployment
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
This allows you to deploy the same application to multiple workspaces without conflicts.
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Examples
|
|
193
|
+
|
|
194
|
+
### Deploy to Multiple Clouds
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
# Deploy to AWS
|
|
198
|
+
dao-ai bundle --deploy -c config/hardware_store.yaml --profile aws-prod
|
|
199
|
+
|
|
200
|
+
# Deploy same app to Azure
|
|
201
|
+
dao-ai bundle --deploy -c config/hardware_store.yaml --profile azure-prod
|
|
202
|
+
|
|
203
|
+
# Deploy same app to GCP
|
|
204
|
+
dao-ai bundle --deploy -c config/hardware_store.yaml --profile gcp-prod
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Development vs Production
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# Deploy to development workspace
|
|
211
|
+
dao-ai bundle --deploy -c config/my_app.yaml --profile aws-dev
|
|
212
|
+
|
|
213
|
+
# Deploy to production workspace
|
|
214
|
+
dao-ai bundle --deploy -c config/my_app.yaml --profile aws-prod
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Full Deployment Pipeline
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
# Validate configuration
|
|
221
|
+
dao-ai validate -c config/my_app.yaml
|
|
222
|
+
|
|
223
|
+
# Generate workflow diagram
|
|
224
|
+
dao-ai graph -c config/my_app.yaml -o workflow.png
|
|
225
|
+
|
|
226
|
+
# Deploy and run
|
|
227
|
+
dao-ai bundle --deploy --run -c config/my_app.yaml --profile aws-field-eng
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Navigation
|
|
233
|
+
|
|
234
|
+
- [← Previous: Examples](examples.md)
|
|
235
|
+
- [↑ Back to Documentation Index](../README.md#-documentation)
|
|
236
|
+
- [Next: Python API →](python-api.md)
|
|
237
|
+
|
|
@@ -298,12 +298,16 @@ Vector embeddings capture semantic similarity but may rank loosely related docum
|
|
|
298
298
|
|
|
299
299
|
### Available Models
|
|
300
300
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
|
304
|
-
|
|
305
|
-
| `ms-marco-
|
|
306
|
-
| `
|
|
301
|
+
See [FlashRank](https://github.com/PrithivirajDamodaran/FlashRank) for the full list of supported models.
|
|
302
|
+
|
|
303
|
+
| Model | Size | Speed | Use Case |
|
|
304
|
+
|-------|------|-------|----------|
|
|
305
|
+
| `ms-marco-TinyBERT-L-2-v2` | ~4MB | ⚡⚡⚡ Fastest | High-throughput, latency-sensitive |
|
|
306
|
+
| `ms-marco-MiniLM-L-12-v2` | ~34MB | ⚡⚡ Fast | Default, best cross-encoder |
|
|
307
|
+
| `rank-T5-flan` | ~110MB | ⚡ Moderate | Best non cross-encoder |
|
|
308
|
+
| `ms-marco-MultiBERT-L-12` | ~150MB | Slower | Multilingual (100+ languages) |
|
|
309
|
+
| `ce-esci-MiniLM-L12-v2` | - | ⚡⚡ Fast | E-commerce optimized |
|
|
310
|
+
| `miniReranker_arabic_v1` | - | ⚡⚡ Fast | Arabic language |
|
|
307
311
|
|
|
308
312
|
### Configuration Options
|
|
309
313
|
|
|
@@ -311,11 +315,11 @@ Vector embeddings capture semantic similarity but may rank loosely related docum
|
|
|
311
315
|
rerank:
|
|
312
316
|
model: ms-marco-MiniLM-L-12-v2 # FlashRank model name
|
|
313
317
|
top_n: 10 # Documents to return (default: all)
|
|
314
|
-
cache_dir: /
|
|
318
|
+
cache_dir: ~/.dao_ai/cache/flashrank # Model weights cache location
|
|
315
319
|
columns: [description, name] # Columns for Databricks Reranker (optional)
|
|
316
320
|
```
|
|
317
321
|
|
|
318
|
-
**Note:** Model weights are downloaded automatically on first use (~
|
|
322
|
+
**Note:** Model weights are downloaded automatically on first use (~34MB for MiniLM-L-12-v2).
|
|
319
323
|
|
|
320
324
|
## 5. Human-in-the-Loop Approvals
|
|
321
325
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "dao-ai"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.4"
|
|
8
8
|
description = "DAO AI: A modular, multi-agent orchestration framework for complex AI workflows. Supports agent handoff, tool integration, and dynamic configuration via YAML."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "MIT" }
|
|
@@ -3402,7 +3402,7 @@
|
|
|
3402
3402
|
},
|
|
3403
3403
|
"RerankParametersModel": {
|
|
3404
3404
|
"additionalProperties": false,
|
|
3405
|
-
"description": "Configuration for reranking retrieved documents using FlashRank.\n\nFlashRank provides fast, local reranking without API calls using lightweight\ncross-encoder models. Reranking improves retrieval quality by reordering results\nbased on semantic relevance to the query.\n\nTypical workflow:\n1. Retrieve more documents than needed (e.g., 50 via num_results)\n2. Rerank all retrieved documents\n3. Return top_n best matches (e.g., 5)\n\nExample:\n ```yaml\n retriever:\n search_parameters:\n num_results: 50 # Retrieve more candidates\n rerank:\n model: ms-marco-MiniLM-L-12-v2\n top_n: 5 # Return top 5 after reranking\n ```\n\nAvailable models (
|
|
3405
|
+
"description": "Configuration for reranking retrieved documents using FlashRank.\n\nFlashRank provides fast, local reranking without API calls using lightweight\ncross-encoder models. Reranking improves retrieval quality by reordering results\nbased on semantic relevance to the query.\n\nTypical workflow:\n1. Retrieve more documents than needed (e.g., 50 via num_results)\n2. Rerank all retrieved documents\n3. Return top_n best matches (e.g., 5)\n\nExample:\n ```yaml\n retriever:\n search_parameters:\n num_results: 50 # Retrieve more candidates\n rerank:\n model: ms-marco-MiniLM-L-12-v2\n top_n: 5 # Return top 5 after reranking\n ```\n\nAvailable models (see https://github.com/PrithivirajDamodaran/FlashRank):\n- \"ms-marco-TinyBERT-L-2-v2\" (~4MB, fastest)\n- \"ms-marco-MiniLM-L-12-v2\" (~34MB, best cross-encoder, default)\n- \"rank-T5-flan\" (~110MB, best non cross-encoder)\n- \"ms-marco-MultiBERT-L-12\" (~150MB, multilingual 100+ languages)\n- \"ce-esci-MiniLM-L12-v2\" (e-commerce optimized, Amazon ESCI)\n- \"miniReranker_arabic_v1\" (Arabic language)",
|
|
3406
3406
|
"properties": {
|
|
3407
3407
|
"model": {
|
|
3408
3408
|
"default": "ms-marco-MiniLM-L-12-v2",
|
|
@@ -4336,6 +4336,7 @@
|
|
|
4336
4336
|
},
|
|
4337
4337
|
"VectorStoreModel": {
|
|
4338
4338
|
"additionalProperties": false,
|
|
4339
|
+
"description": "Configuration model for a Databricks Vector Search store.\n\nSupports two modes:\n1. **Use Existing Index**: Provide only `index` (fully qualified name).\n Used for querying an existing vector search index at runtime.\n2. **Provisioning Mode**: Provide `source_table` + `embedding_source_column`.\n Used for creating a new vector search index.\n\nExamples:\n Minimal configuration (use existing index):\n ```yaml\n vector_stores:\n products_search:\n index:\n name: catalog.schema.my_index\n ```\n\n Full provisioning configuration:\n ```yaml\n vector_stores:\n products_search:\n source_table:\n schema: *my_schema\n name: products\n embedding_source_column: description\n endpoint:\n name: my_endpoint\n ```",
|
|
4339
4340
|
"properties": {
|
|
4340
4341
|
"on_behalf_of_user": {
|
|
4341
4342
|
"anyOf": [
|
|
@@ -4492,10 +4493,10 @@
|
|
|
4492
4493
|
"default": null,
|
|
4493
4494
|
"title": "Pat"
|
|
4494
4495
|
},
|
|
4495
|
-
"
|
|
4496
|
+
"index": {
|
|
4496
4497
|
"anyOf": [
|
|
4497
4498
|
{
|
|
4498
|
-
"$ref": "#/$defs/
|
|
4499
|
+
"$ref": "#/$defs/IndexModel"
|
|
4499
4500
|
},
|
|
4500
4501
|
{
|
|
4501
4502
|
"type": "null"
|
|
@@ -4503,10 +4504,33 @@
|
|
|
4503
4504
|
],
|
|
4504
4505
|
"default": null
|
|
4505
4506
|
},
|
|
4506
|
-
"
|
|
4507
|
+
"source_table": {
|
|
4507
4508
|
"anyOf": [
|
|
4508
4509
|
{
|
|
4509
|
-
"$ref": "#/$defs/
|
|
4510
|
+
"$ref": "#/$defs/TableModel"
|
|
4511
|
+
},
|
|
4512
|
+
{
|
|
4513
|
+
"type": "null"
|
|
4514
|
+
}
|
|
4515
|
+
],
|
|
4516
|
+
"default": null
|
|
4517
|
+
},
|
|
4518
|
+
"embedding_source_column": {
|
|
4519
|
+
"anyOf": [
|
|
4520
|
+
{
|
|
4521
|
+
"type": "string"
|
|
4522
|
+
},
|
|
4523
|
+
{
|
|
4524
|
+
"type": "null"
|
|
4525
|
+
}
|
|
4526
|
+
],
|
|
4527
|
+
"default": null,
|
|
4528
|
+
"title": "Embedding Source Column"
|
|
4529
|
+
},
|
|
4530
|
+
"embedding_model": {
|
|
4531
|
+
"anyOf": [
|
|
4532
|
+
{
|
|
4533
|
+
"$ref": "#/$defs/LLMModel"
|
|
4510
4534
|
},
|
|
4511
4535
|
{
|
|
4512
4536
|
"type": "null"
|
|
@@ -4525,9 +4549,6 @@
|
|
|
4525
4549
|
],
|
|
4526
4550
|
"default": null
|
|
4527
4551
|
},
|
|
4528
|
-
"source_table": {
|
|
4529
|
-
"$ref": "#/$defs/TableModel"
|
|
4530
|
-
},
|
|
4531
4552
|
"source_path": {
|
|
4532
4553
|
"anyOf": [
|
|
4533
4554
|
{
|
|
@@ -4587,16 +4608,8 @@
|
|
|
4587
4608
|
],
|
|
4588
4609
|
"default": null,
|
|
4589
4610
|
"title": "Doc Uri"
|
|
4590
|
-
},
|
|
4591
|
-
"embedding_source_column": {
|
|
4592
|
-
"title": "Embedding Source Column",
|
|
4593
|
-
"type": "string"
|
|
4594
4611
|
}
|
|
4595
4612
|
},
|
|
4596
|
-
"required": [
|
|
4597
|
-
"source_table",
|
|
4598
|
-
"embedding_source_column"
|
|
4599
|
-
],
|
|
4600
4613
|
"title": "VectorStoreModel",
|
|
4601
4614
|
"type": "object"
|
|
4602
4615
|
},
|