dao-ai 0.1.17__tar.gz → 0.1.18__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.18/CONTRIBUTORS.md +16 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/PKG-INFO +2 -2
- dao_ai-0.1.18/config/examples/01_getting_started/README.md +221 -0
- dao_ai-0.1.18/config/examples/02_mcp/README.md +513 -0
- dao_ai-0.1.18/config/examples/03_reranking/README.md +365 -0
- dao_ai-0.1.18/config/examples/03_reranking/instruction_aware_reranking.yaml +213 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/03_reranking/vector_search_with_reranking.yaml +44 -78
- dao_ai-0.1.18/config/examples/04_genie/README.md +268 -0
- dao_ai-0.1.18/config/examples/05_memory/README.md +271 -0
- dao_ai-0.1.18/config/examples/06_on_behalf_of_user/README.md +206 -0
- dao_ai-0.1.18/config/examples/07_human_in_the_loop/README.md +276 -0
- dao_ai-0.1.18/config/examples/08_guardrails/README.md +311 -0
- dao_ai-0.1.18/config/examples/09_structured_output/README.md +284 -0
- dao_ai-0.1.18/config/examples/10_agent_integrations/README.md +277 -0
- dao_ai-0.1.18/config/examples/11_prompt_engineering/README.md +269 -0
- dao_ai-0.1.18/config/examples/12_middleware/README.md +286 -0
- dao_ai-0.1.18/config/examples/13_orchestration/README.md +313 -0
- dao_ai-0.1.18/config/examples/14_basic_tools/README.md +386 -0
- dao_ai-0.1.18/config/examples/15_complete_applications/README.md +369 -0
- dao_ai-0.1.18/config/examples/15_complete_applications/hardware_store_instructed.yaml +531 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/hardware_store_lakebase.yaml +4 -3
- dao_ai-0.1.18/config/examples/16_instructed_retriever/README.md +464 -0
- dao_ai-0.1.18/config/examples/16_instructed_retriever/full_pipeline.yaml +256 -0
- dao_ai-0.1.18/config/examples/16_instructed_retriever/instructed_retriever.yaml +245 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/README.md +1 -1
- {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/architecture.md +51 -9
- dao_ai-0.1.18/docs/hardware_store/retail_supervisor.png +0 -0
- dao_ai-0.1.18/docs/hardware_store/retail_swarm.png +0 -0
- dao_ai-0.1.18/notebooks/07_run_evaluation.py +332 -0
- dao_ai-0.1.18/notebooks/09_evaluate_inferences.py +275 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/pyproject.toml +2 -2
- {dao_ai-0.1.17 → dao_ai-0.1.18}/requirements.txt +65 -70
- {dao_ai-0.1.17 → dao_ai-0.1.18}/schemas/model_config_schema.json +345 -12
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/cli.py +8 -3
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/config.py +414 -32
- dao_ai-0.1.18/src/dao_ai/evaluation.py +543 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/memory/postgres.py +146 -35
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/orchestration/core.py +33 -9
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/orchestration/supervisor.py +23 -8
- dao_ai-0.1.17/src/dao_ai/prompts.py → dao_ai-0.1.18/src/dao_ai/prompts/__init__.py +10 -1
- dao_ai-0.1.18/src/dao_ai/prompts/instructed_retriever_decomposition.yaml +58 -0
- dao_ai-0.1.18/src/dao_ai/prompts/instruction_reranker.yaml +14 -0
- dao_ai-0.1.18/src/dao_ai/prompts/router.yaml +37 -0
- dao_ai-0.1.18/src/dao_ai/prompts/verifier.yaml +46 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/providers/databricks.py +33 -12
- dao_ai-0.1.18/src/dao_ai/tools/instructed_retriever.py +366 -0
- dao_ai-0.1.18/src/dao_ai/tools/instruction_reranker.py +202 -0
- dao_ai-0.1.18/src/dao_ai/tools/router.py +89 -0
- dao_ai-0.1.18/src/dao_ai/tools/vector_search.py +725 -0
- dao_ai-0.1.18/src/dao_ai/tools/verifier.py +159 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/utils.py +182 -2
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/vector_search.py +9 -1
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/conftest.py +11 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_databricks.py +116 -0
- dao_ai-0.1.18/tests/dao_ai/test_evaluation.py +542 -0
- dao_ai-0.1.18/tests/dao_ai/test_instructed_retriever.py +616 -0
- dao_ai-0.1.18/tests/dao_ai/test_instruction_reranker.py +363 -0
- dao_ai-0.1.18/tests/dao_ai/test_instruction_reranker_integration.py +145 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_mcp_filtering_integration.py +10 -9
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_reranking.py +25 -6
- dao_ai-0.1.18/tests/dao_ai/test_router.py +151 -0
- dao_ai-0.1.18/tests/dao_ai/test_verifier.py +273 -0
- dao_ai-0.1.17/config/examples/01_getting_started/README.md +0 -74
- dao_ai-0.1.17/config/examples/02_mcp/README.md +0 -281
- dao_ai-0.1.17/config/examples/03_reranking/README.md +0 -322
- dao_ai-0.1.17/config/examples/04_genie/README.md +0 -106
- dao_ai-0.1.17/config/examples/05_memory/README.md +0 -127
- dao_ai-0.1.17/config/examples/06_on_behalf_of_user/README.md +0 -172
- dao_ai-0.1.17/config/examples/07_human_in_the_loop/README.md +0 -151
- dao_ai-0.1.17/config/examples/08_guardrails/README.md +0 -201
- dao_ai-0.1.17/config/examples/09_structured_output/README.md +0 -96
- dao_ai-0.1.17/config/examples/10_agent_integrations/README.md +0 -450
- dao_ai-0.1.17/config/examples/11_prompt_engineering/README.md +0 -172
- dao_ai-0.1.17/config/examples/12_middleware/README.md +0 -1253
- dao_ai-0.1.17/config/examples/13_orchestration/README.md +0 -170
- dao_ai-0.1.17/config/examples/14_basic_tools/README.md +0 -123
- dao_ai-0.1.17/config/examples/15_complete_applications/README.md +0 -308
- dao_ai-0.1.17/docs/hardware_store/retail_supervisor.png +0 -0
- dao_ai-0.1.17/docs/hardware_store/retail_swarm.png +0 -0
- dao_ai-0.1.17/notebooks/07_run_evaluation.py +0 -288
- dao_ai-0.1.17/notebooks/09_evaluate_inferences.py +0 -217
- dao_ai-0.1.17/src/dais2025/models.py +0 -183
- dao_ai-0.1.17/src/dais2025/tools/__init__.py +0 -62
- dao_ai-0.1.17/src/dais2025/tools/customer.py +0 -1578
- dao_ai-0.1.17/src/dais2025/tools/employee.py +0 -737
- dao_ai-0.1.17/src/dais2025/tools/executive.py +0 -93
- dao_ai-0.1.17/src/dais2025/tools/genie.py +0 -76
- dao_ai-0.1.17/src/dais2025/tools/inventory.py +0 -469
- dao_ai-0.1.17/src/dais2025/tools/models.py +0 -183
- dao_ai-0.1.17/src/dais2025/tools/store.py +0 -211
- dao_ai-0.1.17/src/dao_ai/providers/__init__.py +0 -0
- dao_ai-0.1.17/src/dao_ai/tools/vector_search.py +0 -418
- {dao_ai-0.1.17 → dao_ai-0.1.18}/.gitignore +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/.python-version +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/CHANGELOG.md +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/CONTRIBUTING.md +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/LICENSE +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/Makefile +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/README.md +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/app.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/01_getting_started/minimal.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/02_mcp/custom_mcp.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/02_mcp/external_mcp.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/02_mcp/filtered_mcp.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/02_mcp/managed_mcp.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/02_mcp/slack_integration.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/04_genie/genie_basic.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/04_genie/genie_lru_cache.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/04_genie/genie_semantic_cache.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/04_genie/genie_with_conversation_id.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/05_memory/conversation_summarization.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/05_memory/in_memory_basic.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/05_memory/lakebase_persistence.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/05_memory/postgres_persistence.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/06_on_behalf_of_user/obo_basic.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/07_human_in_the_loop/human_in_the_loop.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/08_guardrails/guardrails_basic.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/09_structured_output/structured_output.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/10_agent_integrations/agent_bricks.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/10_agent_integrations/kasal.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/11_prompt_engineering/prompt_optimization.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/11_prompt_engineering/prompt_registry.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/12_middleware/combined_middleware.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/12_middleware/context_management.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/12_middleware/custom_field_validation.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/12_middleware/limit_middleware.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/12_middleware/logging_middleware.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/12_middleware/pii_middleware.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/12_middleware/retry_middleware.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/12_middleware/tool_selector_middleware.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/13_orchestration/supervisor_pattern.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/13_orchestration/swarm_pattern.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/14_basic_tools/sql_tool_example.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/brick_store.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/deep_research.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/executive_assistant.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/genie_and_genie_mcp.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/genie_vector_search_hybrid.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/hardware_store.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/hardware_store_swarm.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/quick_serve_restaurant.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/reservations_system.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/appointments.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/appointments_data.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/brand_rep_demo_data.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/brand_rep_demo_queries.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/brand_rep_demo_tables.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/brand_rep_demo_validation.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/customers.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/customers_data.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/dim_stores.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/dim_stores_data.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/employee_performance.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/employee_performance_data.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/employee_tasks.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/employee_tasks_data.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/inventory.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/inventory_data.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/managers.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/managers_data.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/product_data.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/products.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/task_assignments.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/hardware_store/inventory.snappy.parquet +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/hardware_store/inventory.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/hardware_store/products.snappy.parquet +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/hardware_store/products.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/quick_serve_restaurant/.gitkeep +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/quick_serve_restaurant/fulfil_item_orders.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/quick_serve_restaurant/items_description.csv +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/quick_serve_restaurant/items_description.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/quick_serve_restaurant/items_raw.csv +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/quick_serve_restaurant/items_raw.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/quick_serve_restaurant/orders_raw.csv +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/data/quick_serve_restaurant/orders_raw.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/databricks.yaml.template +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/cli-reference.md +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/configuration-reference.md +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/contributing.md +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/examples.md +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/faq.md +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/hardware_store/README.md +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/images/genie.png +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/key-capabilities.md +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/python-api.md +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/quick_serve_restaurant/.gitkeep +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/quick_serve_restaurant/quick-serve-restaurant.png +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/why-dao.md +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/environment.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/examples/dais2025/examples.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/examples/deep_research/examples.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/examples/executive_assistant/examples.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/examples/hardware_store/examples.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/examples/quick_serve_restaurant/.gitkeep +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/examples/quick_serve_restaurant/examples.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/dais2025/extract_store_numbers.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/dais2025/find_inventory_by_sku.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/dais2025/find_inventory_by_upc.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/dais2025/find_product_by_sku.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/dais2025/find_product_by_upc.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/dais2025/find_store_by_number.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/dais2025/find_store_inventory_by_sku.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/dais2025/find_store_inventory_by_upc.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/hardware_store/find_inventory_by_sku.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/hardware_store/find_inventory_by_upc.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/hardware_store/find_product_by_sku.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/hardware_store/find_product_by_upc.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/hardware_store/find_store_inventory_by_sku.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/hardware_store/find_store_inventory_by_upc.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/quick_serve_restaurant/.gitkeep +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/quick_serve_restaurant/insert_coffee_order.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/quick_serve_restaurant/lookup_items_by_descriptions.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/quick_serve_restaurant/match_historical_item_order_by_date.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/quick_serve_restaurant/match_item_by_description_and_price.sql +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/01_ingest_and_transform.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/02_provision_vector_search.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/03_provision_lakebase.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/04_unity_catalog_tools.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/05_deploy_agent.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/06_generate_evaluation_data.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/08_run_examples.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/10_optimize_prompts.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/99_scratchpad.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/schemas/bundle_config_schema.json +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/__init__.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/apps/__init__.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/apps/handlers.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/apps/model_serving.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/apps/resources.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/apps/server.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/catalog.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/genie/__init__.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/genie/cache/__init__.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/genie/cache/base.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/genie/cache/core.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/genie/cache/lru.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/genie/cache/semantic.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/genie/core.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/graph.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/hooks/__init__.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/hooks/core.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/logging.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/memory/__init__.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/memory/base.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/memory/core.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/memory/databricks.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/messages.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/__init__.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/assertions.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/base.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/context_editing.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/core.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/guardrails.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/human_in_the_loop.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/message_validation.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/model_call_limit.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/model_retry.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/pii.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/summarization.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/tool_call_limit.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/tool_retry.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/tool_selector.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/models.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/nodes.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/optimization.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/orchestration/__init__.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/orchestration/swarm.py +0 -0
- {dao_ai-0.1.17/src/dais2025 → dao_ai-0.1.18/src/dao_ai/providers}/__init__.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/providers/base.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/state.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/__init__.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/agent.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/core.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/email.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/genie.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/mcp.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/memory.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/python.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/search.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/slack.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/sql.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/time.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/unity_catalog.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/types.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/config/test_model_config.yaml +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_context_editing.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_model_call_limit.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_model_retry.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_pii.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_tool_call_limit.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_tool_retry.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_tool_selector.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_agent_response_format.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_assertions_middleware.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_catalog.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_chat_history.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_config.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_function_parsing.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_genie.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_genie_conversation_ids_in_outputs.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_genie_databricks_integration.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_genie_room_model.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_guardrail_retry.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_hitl_config_model.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_hitl_responses_agent.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_hooks.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_human_in_the_loop.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_inference.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_inference_integration.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_input_output_structure.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_interrupt_type.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_llm_interrupt_handling.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_mcp.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_mcp_filtering.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_mcp_function_model.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_message_validation_middleware.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_messages.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_models.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_optimization.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_postgres_integration.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_prompt_optimizations.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_prompts.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_reranking_integration.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_resources_model_genie_integration.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_response_format.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_responses_agent_structured_output_unit.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_semantic_cache_context.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_sql_tool.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_sql_tool_integration.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_state.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_summarization_inference.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_swarm_middleware.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_tools.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_types.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_unity_catalog.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_utils.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_utils_type_from_fqn.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_vector_search.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_warehouse_model.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/weather_server_mcp.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/hardware_store/.gitkeep +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/hardware_store/test_graph.py +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/images/doritos_upc.png +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/images/lays_upc.png +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/quick_serve_restaurant/.gitkeep +0 -0
- {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/test_mcp_app_auth.py +0 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Contributors
|
|
2
|
+
|
|
3
|
+
Thank you to all the contributors who have helped make dao-ai possible!
|
|
4
|
+
|
|
5
|
+
## Core Contributors
|
|
6
|
+
|
|
7
|
+
- **Nate Fleming** ([@natefleming-db](https://github.com/natefleming-db)) - Project creator and lead maintainer
|
|
8
|
+
|
|
9
|
+
## Contributors
|
|
10
|
+
|
|
11
|
+
- **Peter Park** ([@park-peter](https://github.com/park-peter))
|
|
12
|
+
- **Dipankar Kush** ([@dipankarkush-db](https://github.com/dipankarkush-db))
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
We appreciate every contribution, whether it's code, documentation, bug reports, or feature suggestions. If you'd like to contribute, please see our [Contributing Guide](CONTRIBUTING.md).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dao-ai
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.18
|
|
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
|
|
@@ -26,7 +26,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
26
26
|
Classifier: Topic :: System :: Distributed Computing
|
|
27
27
|
Requires-Python: >=3.11
|
|
28
28
|
Requires-Dist: databricks-agents>=1.9.0
|
|
29
|
-
Requires-Dist: databricks-langchain[memory]>=0.
|
|
29
|
+
Requires-Dist: databricks-langchain[memory]>=0.13.0
|
|
30
30
|
Requires-Dist: databricks-mcp>=0.5.0
|
|
31
31
|
Requires-Dist: databricks-sdk[openai]>=0.77.0
|
|
32
32
|
Requires-Dist: ddgs>=9.10.0
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
# 01. Getting Started
|
|
2
|
+
|
|
3
|
+
**Foundation concepts for beginners**
|
|
4
|
+
|
|
5
|
+
Your starting point for DAO AI. These examples introduce core concepts with minimal complexity.
|
|
6
|
+
|
|
7
|
+
## Architecture Overview
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#1565c0', 'primaryTextColor': '#fff'}}}%%
|
|
11
|
+
flowchart TB
|
|
12
|
+
subgraph User["👤 User"]
|
|
13
|
+
Query["What products do you have?"]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
subgraph DAO["🤖 DAO AI Application"]
|
|
17
|
+
subgraph Agent["Simple Agent"]
|
|
18
|
+
direction TB
|
|
19
|
+
LLM["🧠 Claude Sonnet 4<br/><i>Language Model</i>"]
|
|
20
|
+
Prompt["📝 System Prompt<br/><i>Retail Assistant</i>"]
|
|
21
|
+
LLM --- Prompt
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
subgraph Tools["🔧 Available Tools"]
|
|
25
|
+
direction LR
|
|
26
|
+
Genie["🧞 Genie Tool<br/><i>Natural Language → SQL</i>"]
|
|
27
|
+
VS["🔍 Vector Search<br/><i>Semantic Search</i>"]
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
Agent --> Tools
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
subgraph Databricks["☁️ Databricks Platform"]
|
|
34
|
+
direction TB
|
|
35
|
+
GenieRoom["🧞 Genie Room<br/><i>retail_genie_room</i>"]
|
|
36
|
+
VectorStore["📊 Vector Store<br/><i>products_vector_store</i>"]
|
|
37
|
+
UC["🗄️ Unity Catalog<br/><i>retail_consumer_goods.hardware_store</i>"]
|
|
38
|
+
|
|
39
|
+
GenieRoom --> UC
|
|
40
|
+
VectorStore --> UC
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
Query --> Agent
|
|
44
|
+
Genie --> GenieRoom
|
|
45
|
+
VS --> VectorStore
|
|
46
|
+
Agent -->|"Response"| Query
|
|
47
|
+
|
|
48
|
+
style User fill:#f5f5f5,stroke:#424242
|
|
49
|
+
style Agent fill:#e3f2fd,stroke:#1565c0
|
|
50
|
+
style Tools fill:#fff3e0,stroke:#e65100
|
|
51
|
+
style Databricks fill:#e8f5e9,stroke:#2e7d32
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Examples
|
|
55
|
+
|
|
56
|
+
| File | Description | Prerequisites |
|
|
57
|
+
|------|-------------|---------------|
|
|
58
|
+
| [`minimal.yaml`](./minimal.yaml) | Simplest agent with Genie and Vector Search | Databricks workspace, LLM endpoint |
|
|
59
|
+
|
|
60
|
+
## Configuration Structure
|
|
61
|
+
|
|
62
|
+
```mermaid
|
|
63
|
+
%%{init: {'theme': 'base'}}%%
|
|
64
|
+
flowchart TB
|
|
65
|
+
subgraph YAML["📄 minimal.yaml Structure"]
|
|
66
|
+
direction TB
|
|
67
|
+
|
|
68
|
+
subgraph S1["1️⃣ schemas:"]
|
|
69
|
+
Schema["Define Unity Catalog location<br/><code>catalog_name: retail_consumer_goods</code><br/><code>schema_name: hardware_store</code>"]
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
subgraph S2["2️⃣ resources:"]
|
|
73
|
+
LLMs["<b>llms:</b> Language models"]
|
|
74
|
+
VS["<b>vector_stores:</b> Search indexes"]
|
|
75
|
+
GR["<b>genie_rooms:</b> Genie spaces"]
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
subgraph S3["3️⃣ tools:"]
|
|
79
|
+
GT["<b>genie_tool:</b> Natural language SQL"]
|
|
80
|
+
VST["<b>vector_search_tool:</b> Semantic search"]
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
subgraph S4["4️⃣ agents:"]
|
|
84
|
+
Agent["<b>simple_agent:</b><br/>• model: *default_llm<br/>• tools: [*genie_tool, *vector_search_tool]<br/>• prompt: You are a helpful..."]
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
subgraph S5["5️⃣ app:"]
|
|
88
|
+
App["<b>name:</b> minimal_dao<br/><b>agents:</b> [*simple_agent]<br/><b>registered_model:</b> ..."]
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
S1 --> S2 --> S3 --> S4 --> S5
|
|
93
|
+
|
|
94
|
+
style S1 fill:#e3f2fd,stroke:#1565c0
|
|
95
|
+
style S2 fill:#e8f5e9,stroke:#2e7d32
|
|
96
|
+
style S3 fill:#fff3e0,stroke:#e65100
|
|
97
|
+
style S4 fill:#f3e5f5,stroke:#7b1fa2
|
|
98
|
+
style S5 fill:#fce4ec,stroke:#c2185b
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Data Flow
|
|
102
|
+
|
|
103
|
+
```mermaid
|
|
104
|
+
%%{init: {'theme': 'base'}}%%
|
|
105
|
+
sequenceDiagram
|
|
106
|
+
autonumber
|
|
107
|
+
participant 👤 as User
|
|
108
|
+
participant 🤖 as Agent
|
|
109
|
+
participant 🧞 as Genie Tool
|
|
110
|
+
participant 🔍 as Vector Search
|
|
111
|
+
participant ☁️ as Databricks
|
|
112
|
+
|
|
113
|
+
👤->>🤖: What products are in stock?
|
|
114
|
+
🤖->>🤖: Analyze query intent
|
|
115
|
+
|
|
116
|
+
alt Structured Data Query
|
|
117
|
+
🤖->>🧞: Call Genie tool
|
|
118
|
+
🧞->>☁️: Natural language → SQL
|
|
119
|
+
☁️-->>🧞: Query results
|
|
120
|
+
🧞-->>🤖: Formatted data
|
|
121
|
+
else Semantic Search
|
|
122
|
+
🤖->>🔍: Call Vector Search
|
|
123
|
+
🔍->>☁️: Embedding search
|
|
124
|
+
☁️-->>🔍: Similar products
|
|
125
|
+
🔍-->>🤖: Search results
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
🤖->>🤖: Synthesize response
|
|
129
|
+
🤖-->>👤: Here are the products in stock...
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Key Concepts
|
|
133
|
+
|
|
134
|
+
```mermaid
|
|
135
|
+
%%{init: {'theme': 'base'}}%%
|
|
136
|
+
graph TB
|
|
137
|
+
subgraph Concepts["📚 Core Concepts"]
|
|
138
|
+
subgraph YAML["YAML Anchors & Aliases"]
|
|
139
|
+
Anchor["<code>&default_llm</code> — Define anchor"]
|
|
140
|
+
Alias["<code>*default_llm</code> — Reference it"]
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
subgraph Resources["Resource Types"]
|
|
144
|
+
R1["🧠 <b>LLMs</b> — Language models"]
|
|
145
|
+
R2["📊 <b>Vector Stores</b> — Semantic search"]
|
|
146
|
+
R3["🧞 <b>Genie Rooms</b> — Natural language SQL"]
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
subgraph Tools["Tool Patterns"]
|
|
150
|
+
T1["🏭 <b>Factory</b> — dao_ai.tools.create_*"]
|
|
151
|
+
T2["🐍 <b>Python</b> — Custom functions"]
|
|
152
|
+
T3["🔌 <b>MCP</b> — External services"]
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
style YAML fill:#e3f2fd,stroke:#1565c0
|
|
157
|
+
style Resources fill:#e8f5e9,stroke:#2e7d32
|
|
158
|
+
style Tools fill:#fff3e0,stroke:#e65100
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Quick Start
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# Validate configuration
|
|
165
|
+
dao-ai validate -c config/examples/01_getting_started/minimal.yaml
|
|
166
|
+
|
|
167
|
+
# Chat with the agent
|
|
168
|
+
dao-ai chat -c config/examples/01_getting_started/minimal.yaml
|
|
169
|
+
|
|
170
|
+
# Visualize architecture
|
|
171
|
+
dao-ai graph -c config/examples/01_getting_started/minimal.yaml -o graph.png
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Example queries:**
|
|
175
|
+
- "What products do you have?"
|
|
176
|
+
- "Show me power tools"
|
|
177
|
+
- "What's in the hardware department?"
|
|
178
|
+
|
|
179
|
+
## Prerequisites
|
|
180
|
+
|
|
181
|
+
```mermaid
|
|
182
|
+
%%{init: {'theme': 'base'}}%%
|
|
183
|
+
graph LR
|
|
184
|
+
subgraph Required["✅ Prerequisites"]
|
|
185
|
+
P1["☁️ Databricks workspace"]
|
|
186
|
+
P2["🧠 LLM endpoint access"]
|
|
187
|
+
P3["🧞 Genie space (optional)"]
|
|
188
|
+
P4["📊 Vector index (optional)"]
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
style Required fill:#e8f5e9,stroke:#2e7d32
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Next Steps
|
|
195
|
+
|
|
196
|
+
```mermaid
|
|
197
|
+
%%{init: {'theme': 'base'}}%%
|
|
198
|
+
graph LR
|
|
199
|
+
Start["01_getting_started"] --> MCP["02_mcp<br/><i>Tool integrations</i>"]
|
|
200
|
+
Start --> Genie["04_genie<br/><i>Caching</i>"]
|
|
201
|
+
Start --> HITL["07_human_in_the_loop<br/><i>Safety</i>"]
|
|
202
|
+
|
|
203
|
+
style Start fill:#e3f2fd,stroke:#1565c0
|
|
204
|
+
style MCP fill:#fff3e0,stroke:#e65100
|
|
205
|
+
style Genie fill:#e8f5e9,stroke:#2e7d32
|
|
206
|
+
style HITL fill:#fce4ec,stroke:#c2185b
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## Troubleshooting
|
|
210
|
+
|
|
211
|
+
| Issue | Solution |
|
|
212
|
+
|-------|----------|
|
|
213
|
+
| "Model endpoint not found" | Verify endpoint name, check access |
|
|
214
|
+
| "Genie space not accessible" | Confirm space_id, check permissions |
|
|
215
|
+
| "Vector search failed" | Verify index exists and is active |
|
|
216
|
+
|
|
217
|
+
## Related Documentation
|
|
218
|
+
|
|
219
|
+
- [Configuration Reference](../../../docs/configuration-reference.md)
|
|
220
|
+
- [Key Capabilities](../../../docs/key-capabilities.md)
|
|
221
|
+
- [Python API](../../../docs/python-api.md)
|