dao-ai 0.0.12__tar.gz → 0.0.14__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.
Files changed (335) hide show
  1. {dao_ai-0.0.12 → dao_ai-0.0.14}/PKG-INFO +2 -2
  2. {dao_ai-0.0.12 → dao_ai-0.0.14}/config/examples/genie.yaml +40 -8
  3. {dao_ai-0.0.12 → dao_ai-0.0.14}/notebooks/01_ingest_and_transform.py +1 -1
  4. {dao_ai-0.0.12 → dao_ai-0.0.14}/notebooks/02_provision_vector_search.py +3 -3
  5. {dao_ai-0.0.12 → dao_ai-0.0.14}/notebooks/03_generate_evaluation_data.py +35 -18
  6. {dao_ai-0.0.12 → dao_ai-0.0.14}/notebooks/04_unity_catalog_tools.py +3 -3
  7. {dao_ai-0.0.12 → dao_ai-0.0.14}/notebooks/05_agent_as_code_driver.py +3 -3
  8. {dao_ai-0.0.12 → dao_ai-0.0.14}/notebooks/06_run_evaluation.py +4 -9
  9. {dao_ai-0.0.12 → dao_ai-0.0.14}/notebooks/08_run_examples.py +4 -12
  10. {dao_ai-0.0.12 → dao_ai-0.0.14}/pyproject.toml +2 -2
  11. {dao_ai-0.0.12 → dao_ai-0.0.14}/requirements.txt +6 -2
  12. {dao_ai-0.0.12 → dao_ai-0.0.14}/schemas/model_config_schema.json +65 -7
  13. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/agent_as_code.py +1 -6
  14. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/config.py +79 -52
  15. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/providers/databricks.py +7 -0
  16. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/tools/vector_search.py +2 -0
  17. {dao_ai-0.0.12 → dao_ai-0.0.14}/.gitignore +0 -0
  18. {dao_ai-0.0.12 → dao_ai-0.0.14}/.python-version +0 -0
  19. {dao_ai-0.0.12 → dao_ai-0.0.14}/CHANGELOG.md +0 -0
  20. {dao_ai-0.0.12 → dao_ai-0.0.14}/CONTRIBUTING.md +0 -0
  21. {dao_ai-0.0.12 → dao_ai-0.0.14}/LICENSE +0 -0
  22. {dao_ai-0.0.12 → dao_ai-0.0.14}/Makefile +0 -0
  23. {dao_ai-0.0.12 → dao_ai-0.0.14}/README.md +0 -0
  24. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/Makefile +0 -0
  25. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/REFACTORING_SUMMARY.md +0 -0
  26. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/base-environment-serverless.yaml +0 -0
  27. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/demo_docs/BRAND_REP_DEMO_SUMMARY.md +0 -0
  28. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/demo_docs/demo_scripts/brand_rep_product_education_demo.md +0 -0
  29. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/demo_docs/demo_scripts/store_associate_ai_assistant_demo.md +0 -0
  30. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/demo_docs/demo_scripts/store_manager_alert_response_demo.md +0 -0
  31. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/development_workflows.md +0 -0
  32. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/.gitkeep +0 -0
  33. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/Makefile +0 -0
  34. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/agent_implementation.mmd +0 -0
  35. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/agent_tools_architecture.mmd +0 -0
  36. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/agents-and-tools/agent-troubleshooting.md +0 -0
  37. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-best-practices.md +0 -0
  38. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-development-patterns.md +0 -0
  39. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-performance.md +0 -0
  40. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-quickstart.md +0 -0
  41. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/agents-and-tools/ai-agents.md +0 -0
  42. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/agents-and-tools/overview.md +0 -0
  43. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/agents-and-tools/references/agent-reference.md +0 -0
  44. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/agents-and-tools/references/tools-reference.md +0 -0
  45. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/applications/streamlit-app.md +0 -0
  46. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/architecture/overview.md +0 -0
  47. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/architecture.mmd +0 -0
  48. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/architecture.png +0 -0
  49. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/customer_preparation_guide.md +0 -0
  50. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/databricks_integration.mmd +0 -0
  51. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/deployment/production.md +0 -0
  52. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/development/contributing.md +0 -0
  53. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/employee_tools_guide.md +0 -0
  54. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/getting-started/installation.md +0 -0
  55. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/getting-started/mkdocs-quickstart.md +0 -0
  56. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/getting-started/quick-start.md +0 -0
  57. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/index.md +0 -0
  58. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/mkdocs.yml +0 -0
  59. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/scenario_1_architecture.mmd +0 -0
  60. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/scenario_1_flow.mmd +0 -0
  61. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/setup-docs.sh +0 -0
  62. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/task_assignment_workflow_guide.md +0 -0
  63. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/docs/tools/overview.md +0 -0
  64. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/examples/customer_preparation_workflow.py +0 -0
  65. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/examples/task_assignment_workflow.py +0 -0
  66. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/load-env.sh +0 -0
  67. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/CSS_REFACTORING_SUMMARY.md +0 -0
  68. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/DEMO_CONTROLS_RESTORED.md +0 -0
  69. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/DEMO_IMPLEMENTATION_SUMMARY.md +0 -0
  70. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/DEMO_QUICK_START.md +0 -0
  71. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/Dockerfile +0 -0
  72. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/HOMEPAGE_README.md +0 -0
  73. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/Makefile +0 -0
  74. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/README.md +0 -0
  75. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/app.py +0 -0
  76. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/app.yaml +0 -0
  77. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/__init__.py +0 -0
  78. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/backup_homepage.py +0 -0
  79. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/chat.py +0 -0
  80. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/enhanced_charts.py +0 -0
  81. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/enhanced_navigation.py +0 -0
  82. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/__init__.py +0 -0
  83. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/__init__.py +0 -0
  84. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/associate_homepage.py +0 -0
  85. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/dashboard_tab.py +0 -0
  86. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/my_tasks_tab.py +0 -0
  87. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/performance_tab.py +0 -0
  88. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/products_tab.py +0 -0
  89. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/schedule_tab.py +0 -0
  90. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/__init__.py +0 -0
  91. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/chat_integration.py +0 -0
  92. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/kpi_summary.py +0 -0
  93. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/notifications.py +0 -0
  94. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/homepage.py +0 -0
  95. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/__init__.py +0 -0
  96. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/alerts_tab.py +0 -0
  97. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/analytics_tab.py +0 -0
  98. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/dashboard_tab.py +0 -0
  99. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/demo_alerts.py +0 -0
  100. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/inventory_tab.py +0 -0
  101. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/manager_homepage.py +0 -0
  102. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/operations_tab.py +0 -0
  103. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/team_tab.py +0 -0
  104. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/__init__.py +0 -0
  105. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/ai_insights_tab.py +0 -0
  106. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/executive_dashboard_tab.py +0 -0
  107. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/geographical_analysis_tab.py +0 -0
  108. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/performance_metrics_tab.py +0 -0
  109. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/strategic_insights_tab.py +0 -0
  110. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/vp_homepage.py +0 -0
  111. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/metrics.py +0 -0
  112. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/navigation.py +0 -0
  113. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/oldhomepage.py +0 -0
  114. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/components/styles.py +0 -0
  115. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/config.yaml +0 -0
  116. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/demo_docs/BRAND_REP_DEMO_SUMMARY.md +0 -0
  117. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/demo_docs/comprehensive_demo_script.md +0 -0
  118. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/brand_rep_product_education_demo.md +0 -0
  119. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/store_associate_ai_assistant_demo.md +0 -0
  120. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/store_manager_alert_response_demo.md +0 -0
  121. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/dev/README.md +0 -0
  122. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/dev/__init__.py +0 -0
  123. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/dev/components/__init__.py +0 -0
  124. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/dev/components/dashboard_card.py +0 -0
  125. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/dev/demo_alerts.py +0 -0
  126. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/dev/examples/sample_dashboard.py +0 -0
  127. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/pages/__init__.py +0 -0
  128. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/pages/component_showcase.py +0 -0
  129. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/pages/dev_playground.py +0 -0
  130. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/pages/playground.py +0 -0
  131. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/pages_wip/daily_operations.py +0 -0
  132. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/pages_wip/inventory.py +0 -0
  133. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/pages_wip/my_schedule.py +0 -0
  134. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/pages_wip/my_tasks.py +0 -0
  135. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/pages_wip/orders.py +0 -0
  136. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/pages_wip/products_promotions.py +0 -0
  137. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/pages_wip/staff.py +0 -0
  138. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/pages_wip/team_insights.py +0 -0
  139. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/pyproject.toml +0 -0
  140. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/requirements.txt +0 -0
  141. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/static/css/style.css +0 -0
  142. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/styles/README.md +0 -0
  143. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/styles/__init__.py +0 -0
  144. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/styles/base.py +0 -0
  145. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/styles/components.py +0 -0
  146. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/styles/dashboard.py +0 -0
  147. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/styles/homepage.py +0 -0
  148. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/styles/theme.py +0 -0
  149. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/test_vip_notification.py +0 -0
  150. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/tests/test_calculations.py +0 -0
  151. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/utils/config.py +0 -0
  152. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/utils/database.py +0 -0
  153. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/utils/model_serving.py +0 -0
  154. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app/utils/store_context.py +0 -0
  155. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/Makefile +0 -0
  156. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/README.md +0 -0
  157. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/app.py +0 -0
  158. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/__init__.py +0 -0
  159. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/__init__.py +0 -0
  160. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_components.py +0 -0
  161. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_components_enhanced.py +0 -0
  162. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_styles.py +0 -0
  163. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin_styles.py +0 -0
  164. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/TAILADMIN_README.md +0 -0
  165. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/homepage_tailadmin.py +0 -0
  166. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/tailadmin_demo.py +0 -0
  167. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/tailadmin_implementation_guide.py +0 -0
  168. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/test_vp_dashboard.py +0 -0
  169. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/vp_dashboard_enhanced.py +0 -0
  170. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/vp_dashboard_tailadmin.py +0 -0
  171. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/components_demo.py +0 -0
  172. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/homepage.py +0 -0
  173. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/implementation_guide.py +0 -0
  174. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/vp_dashboard_clean.py +0 -0
  175. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/vp_dashboard_enhanced.py +0 -0
  176. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pyproject.toml +0 -0
  177. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/tests/__init__.py +0 -0
  178. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/streamlit_store_app_tailadmin/tests/test_imports.py +0 -0
  179. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/tests/.gitkeep +0 -0
  180. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/tests/README.md +0 -0
  181. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/tests/images/doritos_upc.png +0 -0
  182. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/tests/images/lays_upc.png +0 -0
  183. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/tests/manager_demo_script.md +0 -0
  184. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/tests/notebook_vector_search_test.py +0 -0
  185. {dao_ai-0.0.12 → dao_ai-0.0.14}/apps/dais2025/store-app/tests/test_vector_search_integration.py +0 -0
  186. {dao_ai-0.0.12 → dao_ai-0.0.14}/config/dais2025/model_config_dais.yaml +0 -0
  187. {dao_ai-0.0.12 → dao_ai-0.0.14}/config/examples/genie_and_vector_search.yaml +0 -0
  188. {dao_ai-0.0.12 → dao_ai-0.0.14}/config/examples/human_in_the_loop.yaml +0 -0
  189. {dao_ai-0.0.12 → dao_ai-0.0.14}/config/examples/jira.yaml +0 -0
  190. {dao_ai-0.0.12 → dao_ai-0.0.14}/config/examples/mcp.yaml +0 -0
  191. {dao_ai-0.0.12 → dao_ai-0.0.14}/config/examples/minimal.yaml +0 -0
  192. {dao_ai-0.0.12 → dao_ai-0.0.14}/config/examples/reservations.yaml +0 -0
  193. {dao_ai-0.0.12 → dao_ai-0.0.14}/config/hardware_store/supervisor.yaml +0 -0
  194. {dao_ai-0.0.12 → dao_ai-0.0.14}/config/hardware_store/supervisor_postgres.yaml +0 -0
  195. {dao_ai-0.0.12 → dao_ai-0.0.14}/config/hardware_store/swarm.yaml +0 -0
  196. {dao_ai-0.0.12 → dao_ai-0.0.14}/config/quick_serve_restaurant/.gitkeep +0 -0
  197. {dao_ai-0.0.12 → dao_ai-0.0.14}/config/quick_serve_restaurant/quick-serve-restaurant.yaml +0 -0
  198. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/appointments.sql +0 -0
  199. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/appointments_data.sql +0 -0
  200. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/brand_rep_demo_data.sql +0 -0
  201. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/brand_rep_demo_queries.sql +0 -0
  202. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/brand_rep_demo_tables.sql +0 -0
  203. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/brand_rep_demo_validation.sql +0 -0
  204. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/customers.sql +0 -0
  205. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/customers_data.sql +0 -0
  206. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/dim_stores.sql +0 -0
  207. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/dim_stores_data.sql +0 -0
  208. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/employee_performance.sql +0 -0
  209. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/employee_performance_data.sql +0 -0
  210. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/employee_tasks.sql +0 -0
  211. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/employee_tasks_data.sql +0 -0
  212. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/inventory.sql +0 -0
  213. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/inventory_data.sql +0 -0
  214. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/managers.sql +0 -0
  215. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/managers_data.sql +0 -0
  216. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/product_data.sql +0 -0
  217. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/products.sql +0 -0
  218. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/dais2025/task_assignments.sql +0 -0
  219. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/hardware_store/inventory.snappy.parquet +0 -0
  220. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/hardware_store/inventory.sql +0 -0
  221. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/hardware_store/products.snappy.parquet +0 -0
  222. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/hardware_store/products.sql +0 -0
  223. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/quick_serve_restaurant/.gitkeep +0 -0
  224. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/quick_serve_restaurant/fulfil_item_orders.sql +0 -0
  225. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/quick_serve_restaurant/items_description.csv +0 -0
  226. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/quick_serve_restaurant/items_description.sql +0 -0
  227. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/quick_serve_restaurant/items_raw.csv +0 -0
  228. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/quick_serve_restaurant/items_raw.sql +0 -0
  229. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/quick_serve_restaurant/orders_raw.csv +0 -0
  230. {dao_ai-0.0.12 → dao_ai-0.0.14}/data/quick_serve_restaurant/orders_raw.sql +0 -0
  231. {dao_ai-0.0.12 → dao_ai-0.0.14}/databricks.yaml +0 -0
  232. {dao_ai-0.0.12 → dao_ai-0.0.14}/docs/genie.png +0 -0
  233. {dao_ai-0.0.12 → dao_ai-0.0.14}/docs/hardware_store/README.md +0 -0
  234. {dao_ai-0.0.12 → dao_ai-0.0.14}/docs/hardware_store/retail_supervisor.png +0 -0
  235. {dao_ai-0.0.12 → dao_ai-0.0.14}/docs/hardware_store/retail_swarm.png +0 -0
  236. {dao_ai-0.0.12 → dao_ai-0.0.14}/docs/quick_serve_restaurant/.gitkeep +0 -0
  237. {dao_ai-0.0.12 → dao_ai-0.0.14}/docs/quick_serve_restaurant/quick-serve-restaurant.png +0 -0
  238. {dao_ai-0.0.12 → dao_ai-0.0.14}/environment.yaml +0 -0
  239. {dao_ai-0.0.12 → dao_ai-0.0.14}/examples/dais2025/examples.yaml +0 -0
  240. {dao_ai-0.0.12 → dao_ai-0.0.14}/examples/hardware_store/examples.yaml +0 -0
  241. {dao_ai-0.0.12 → dao_ai-0.0.14}/examples/quick_serve_restaurant/.gitkeep +0 -0
  242. {dao_ai-0.0.12 → dao_ai-0.0.14}/examples/quick_serve_restaurant/examples.yaml +0 -0
  243. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/dais2025/extract_store_numbers.sql +0 -0
  244. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/dais2025/find_inventory_by_sku.sql +0 -0
  245. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/dais2025/find_inventory_by_upc.sql +0 -0
  246. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/dais2025/find_product_by_sku.sql +0 -0
  247. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/dais2025/find_product_by_upc.sql +0 -0
  248. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/dais2025/find_store_by_number.sql +0 -0
  249. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/dais2025/find_store_inventory_by_sku.sql +0 -0
  250. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/dais2025/find_store_inventory_by_upc.sql +0 -0
  251. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/hardware_store/find_inventory_by_sku.sql +0 -0
  252. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/hardware_store/find_inventory_by_upc.sql +0 -0
  253. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/hardware_store/find_product_by_sku.sql +0 -0
  254. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/hardware_store/find_product_by_upc.sql +0 -0
  255. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/hardware_store/find_store_inventory_by_sku.sql +0 -0
  256. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/hardware_store/find_store_inventory_by_upc.sql +0 -0
  257. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/quick_serve_restaurant/.gitkeep +0 -0
  258. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/quick_serve_restaurant/insert_coffee_order.sql +0 -0
  259. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/quick_serve_restaurant/lookup_items_by_descriptions.sql +0 -0
  260. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/quick_serve_restaurant/match_historical_item_order_by_date.sql +0 -0
  261. {dao_ai-0.0.12 → dao_ai-0.0.14}/functions/quick_serve_restaurant/match_item_by_description_and_price.sql +0 -0
  262. {dao_ai-0.0.12 → dao_ai-0.0.14}/notebooks/09_evaluate_inferences.py +0 -0
  263. {dao_ai-0.0.12 → dao_ai-0.0.14}/notebooks/99_scratchpad.py +0 -0
  264. {dao_ai-0.0.12 → dao_ai-0.0.14}/schemas/bundle_config_schema.json +0 -0
  265. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dais2025/__init__.py +0 -0
  266. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dais2025/models.py +0 -0
  267. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dais2025/tools/__init__.py +0 -0
  268. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dais2025/tools/customer.py +0 -0
  269. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dais2025/tools/employee.py +0 -0
  270. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dais2025/tools/executive.py +0 -0
  271. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dais2025/tools/genie.py +0 -0
  272. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dais2025/tools/inventory.py +0 -0
  273. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dais2025/tools/models.py +0 -0
  274. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dais2025/tools/store.py +0 -0
  275. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/__init__.py +0 -0
  276. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/catalog.py +0 -0
  277. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/chat_models.py +0 -0
  278. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/cli.py +0 -0
  279. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/graph.py +0 -0
  280. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/guardrails.py +0 -0
  281. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/hooks/__init__.py +0 -0
  282. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/hooks/core.py +0 -0
  283. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/memory/__init__.py +0 -0
  284. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/memory/base.py +0 -0
  285. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/memory/core.py +0 -0
  286. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/memory/postgres.py +0 -0
  287. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/messages.py +0 -0
  288. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/models.py +0 -0
  289. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/nodes.py +0 -0
  290. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/prompts.py +0 -0
  291. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/providers/__init__.py +0 -0
  292. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/providers/base.py +0 -0
  293. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/state.py +0 -0
  294. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/tools/__init__.py +0 -0
  295. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/tools/agent.py +0 -0
  296. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/tools/core.py +0 -0
  297. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/tools/genie.py +0 -0
  298. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/tools/human_in_the_loop.py +0 -0
  299. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/tools/mcp.py +0 -0
  300. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/tools/python.py +0 -0
  301. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/tools/time.py +0 -0
  302. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/tools/unity_catalog.py +0 -0
  303. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/types.py +0 -0
  304. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/utils.py +0 -0
  305. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/dao_ai/vector_search.py +0 -0
  306. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/hardware_store/__init__.py +0 -0
  307. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/hardware_store/hooks.py +0 -0
  308. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/hardware_store/tools.py +0 -0
  309. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/quick_serve_restaurant/.gitkeep +0 -0
  310. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/quick_serve_restaurant/__init__.py +0 -0
  311. {dao_ai-0.0.12 → dao_ai-0.0.14}/src/quick_serve_restaurant/tools.py +0 -0
  312. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/config/test_model_config.yaml +0 -0
  313. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/conftest.py +0 -0
  314. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/dao_ai/test_catalog.py +0 -0
  315. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/dao_ai/test_chat_history.py +0 -0
  316. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/dao_ai/test_config.py +0 -0
  317. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/dao_ai/test_databricks.py +0 -0
  318. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/dao_ai/test_function_parsing.py +0 -0
  319. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/dao_ai/test_hooks.py +0 -0
  320. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/dao_ai/test_inference.py +0 -0
  321. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/dao_ai/test_mcp.py +0 -0
  322. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/dao_ai/test_messages.py +0 -0
  323. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/dao_ai/test_models.py +0 -0
  324. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/dao_ai/test_state.py +0 -0
  325. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/dao_ai/test_summarization_inference.py +0 -0
  326. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/dao_ai/test_tools.py +0 -0
  327. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/dao_ai/test_types.py +0 -0
  328. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/dao_ai/test_utils.py +0 -0
  329. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/dao_ai/test_vector_search.py +0 -0
  330. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/dao_ai/weather_server_mcp.py +0 -0
  331. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/hardware_store/.gitkeep +0 -0
  332. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/hardware_store/test_graph.py +0 -0
  333. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/images/doritos_upc.png +0 -0
  334. {dao_ai-0.0.12 → dao_ai-0.0.14}/tests/images/lays_upc.png +0 -0
  335. {dao_ai-0.0.12 → dao_ai-0.0.14}/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.0.12
3
+ Version: 0.0.14
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
@@ -38,7 +38,7 @@ Requires-Dist: langgraph>=0.6.5
38
38
  Requires-Dist: langmem>=0.0.29
39
39
  Requires-Dist: loguru>=0.7.3
40
40
  Requires-Dist: mcp>=1.9.1
41
- Requires-Dist: mlflow>=3.1.1
41
+ Requires-Dist: mlflow>=3.3.2
42
42
  Requires-Dist: nest-asyncio>=1.6.0
43
43
  Requires-Dist: openevals>=0.0.19
44
44
  Requires-Dist: openpyxl>=3.1.5
@@ -5,11 +5,10 @@ schemas:
5
5
  retail_schema: &retail_schema
6
6
  catalog_name: nfleming # Unity Catalog name
7
7
  schema_name: retail_ai # Schema within the catalog
8
- # permissions: # Access permissions for the schema
9
- # - principals: [users] # Grant access to all users
10
- # privileges:
11
- # - ALL_PRIVILEGES # Full permissions for demo purposes
12
8
 
9
+ quick_serve_retaurant_schema: &quick_serve_retaurant_schema
10
+ catalog_name: retail_consumer_goods # Unity Catalog name
11
+ schema_name: quick_serve_restaurant # Schema within the catalog
13
12
 
14
13
  resources:
15
14
  llms:
@@ -20,6 +19,40 @@ resources:
20
19
  max_tokens: 8192 # Maximum tokens per response
21
20
  on_behalf_of_user: False
22
21
 
22
+ tables:
23
+ product_table: &product_table
24
+ schema: *quick_serve_retaurant_schema # Reference to schema defined above
25
+ name: products # Table name
26
+
27
+ inventory_table: &inventory_table
28
+ schema: *quick_serve_retaurant_schema
29
+ name: inventory
30
+
31
+ items_description: &items_description
32
+ schema: *quick_serve_retaurant_schema
33
+ name: items_description
34
+
35
+ fulfil_item_orders: &fulfil_item_orders
36
+ schema: *quick_serve_retaurant_schema
37
+ name: fulfil_item_orders
38
+
39
+ orders: &orders
40
+ schema: *quick_serve_retaurant_schema
41
+ name: orders
42
+
43
+ functions:
44
+
45
+ lookup_items_by_descriptions: &lookup_items_by_descriptions
46
+ schema: *quick_serve_retaurant_schema
47
+ name: lookup_items_by_descriptions
48
+
49
+ match_item_by_description_and_price: &match_item_by_description_and_price
50
+ schema: *quick_serve_retaurant_schema
51
+ name: match_item_by_description_and_price
52
+
53
+ match_historical_item_order_by_date: &match_historical_item_order_by_date
54
+ schema: *quick_serve_retaurant_schema
55
+ name: match_historical_item_order_by_date
23
56
 
24
57
  genie_rooms:
25
58
  # Genie space for retail data queries
@@ -37,7 +70,7 @@ tools:
37
70
  name: dao_ai.tools.create_genie_tool # Factory function path
38
71
  args: # Arguments passed to factory
39
72
  name: my_genie_tool
40
- description: My Answers questions about genie
73
+ description: Answers questions about retail products and inventory
41
74
  genie_room: *retail_genie_room # Reference to Genie room config
42
75
 
43
76
 
@@ -49,9 +82,8 @@ agents:
49
82
  tools: # Tools available to this agent
50
83
  - *genie_tool
51
84
  prompt: | # System prompt defining agent behavior
52
- Answers foobar questions about genie
53
- handoff_prompt: | # Conditions for routing to this agent
54
- Answers all foobar questions
85
+ Answers questions about retail products and inventory
86
+
55
87
 
56
88
  app:
57
89
  name: genie_example # Application name
@@ -1,5 +1,5 @@
1
1
  # Databricks notebook source
2
- # MAGIC %pip install --quiet -r ../requirements.txt
2
+ # MAGIC %pip install --quiet --upgrade -r ../requirements.txt
3
3
  # MAGIC %restart_python
4
4
 
5
5
  # COMMAND ----------
@@ -1,7 +1,7 @@
1
1
  # Databricks notebook source
2
- # MAGIC %pip install --quiet -r ../requirements.txt
3
- # MAGIC %pip uninstall -y databricks-connect pyspark pyspark-connect
4
- # MAGIC %pip install databricks-connect
2
+ # MAGIC %pip install --quiet --upgrade -r ../requirements.txt
3
+ # MAGIC %pip uninstall --quiet -y databricks-connect pyspark pyspark-connect
4
+ # MAGIC %pip install --quiet databricks-connect
5
5
  # MAGIC %restart_python
6
6
 
7
7
  # COMMAND ----------
@@ -1,7 +1,7 @@
1
1
  # Databricks notebook source
2
- # MAGIC %pip install --quiet -r ../requirements.txt
3
- # MAGIC %pip uninstall -y databricks-connect pyspark pyspark-connect
4
- # MAGIC %pip install databricks-connect
2
+ # MAGIC %pip install --quiet --upgrade -r ../requirements.txt
3
+ # MAGIC %pip uninstall --quiet -y databricks-connect pyspark pyspark-connect
4
+ # MAGIC %pip install --quiet databricks-connect
5
5
  # MAGIC %restart_python
6
6
 
7
7
  # COMMAND ----------
@@ -65,26 +65,43 @@ for _, vector_store in config.resources.vector_stores.items():
65
65
  spark.table(vector_store.source_table.full_name)
66
66
  .withColumn("id", F.col(vector_store.primary_key))
67
67
  .withColumn("content", F.col(vector_store.embedding_source_column))
68
- .withColumn("doc_uri", F.lit("source"))
68
+ .withColumn("doc_uri", doc_uri)
69
69
  )
70
70
  parsed_docs_pdf: pd.DataFrame = parsed_docs_df.toPandas()
71
71
 
72
72
  display(parsed_docs_pdf)
73
73
 
74
- agent_description = f"""
75
- The agent is a RAG chatbot that answers questions about retail hardware and gives recommendations for purchases.
76
- """
77
- question_guidelines = f"""
78
- # User personas
79
- - An employee or client asking about products and inventory
80
-
81
-
82
- # Example questions
83
- - What grills do you have in stock?
84
- - Can you recommend a accessories for my Toro lawn mower?
85
-
86
- # Additional Guidelines
87
- - Questions should be succinct, and human-like
74
+ agent_description: str = evaluation.agent_description
75
+ if not agent_description:
76
+ agent_description = """
77
+ A general-purpose chatbot AI agent is designed to engage in natural conversations
78
+ across diverse topics and tasks, drawing from broad knowledge to answer questions,
79
+ assist with writing, solve problems, and provide explanations while maintaining
80
+ context throughout interactions. It aims to be a versatile, adaptable assistant
81
+ that can help with the wide spectrum of things people encounter in daily life,
82
+ adjusting its communication style and level of detail based on user needs.
83
+ """
84
+
85
+ question_guidelines: str = evaluation.question_guidelines
86
+ if not question_guidelines:
87
+ question_guidelines = f"""
88
+ # User personas
89
+ - A curious individual seeking information or explanations
90
+ - A student looking for homework help or learning assistance
91
+ - A professional needing quick research or writing support
92
+ - A creative person brainstorming ideas or seeking inspiration
93
+
94
+ # Example questions
95
+ - Can you explain how photosynthesis works?
96
+ - Help me write a professional email to my boss
97
+ - What are some good books similar to Harry Potter?
98
+ - How do I fix a leaky faucet?
99
+
100
+ # Additional Guidelines
101
+ - Questions should be conversational and natural
102
+ - Users may ask follow-up questions to dig deeper into topics
103
+ - Requests can range from simple facts to complex multi-step tasks
104
+ - Tone can vary from casual chat to formal assistance
88
105
  """
89
106
 
90
107
  evals_pdf: pd.DataFrame = generate_evals_df(
@@ -1,7 +1,7 @@
1
1
  # Databricks notebook source
2
- # MAGIC %pip install --quiet -r ../requirements.txt
3
- # MAGIC %pip uninstall -y databricks-connect pyspark pyspark-connect
4
- # MAGIC %pip install databricks-connect
2
+ # MAGIC %pip install --quiet --upgrade -r ../requirements.txt
3
+ # MAGIC %pip uninstall --quiet -y databricks-connect pyspark pyspark-connect
4
+ # MAGIC %pip install --quiet databricks-connect
5
5
  # MAGIC %restart_python
6
6
 
7
7
  # COMMAND ----------
@@ -1,7 +1,7 @@
1
1
  # Databricks notebook source
2
- # MAGIC %pip install --quiet -r ../requirements.txt
3
- # MAGIC %pip uninstall -y databricks-connect pyspark pyspark-connect
4
- # MAGIC %pip install databricks-connect
2
+ # MAGIC %pip install --quiet --upgrade -r ../requirements.txt
3
+ # MAGIC %pip uninstall --quiet -y databricks-connect pyspark pyspark-connect
4
+ # MAGIC %pip install --quiet databricks-connect
5
5
  # MAGIC %restart_python
6
6
 
7
7
  # COMMAND ----------
@@ -1,8 +1,8 @@
1
1
  # Databricks notebook source
2
2
  # DBTITLE 1,Install Required Python Packages and Restart Kernel
3
- # MAGIC %pip install --quiet -r ../requirements.txt
4
- # MAGIC %pip uninstall -y databricks-connect pyspark pyspark-connect
5
- # MAGIC %pip install databricks-connect
3
+ # MAGIC %pip install --quiet --upgrade -r ../requirements.txt
4
+ # MAGIC %pip uninstall --quiet -y databricks-connect pyspark pyspark-connect
5
+ # MAGIC %pip install --quiet databricks-connect
6
6
  # MAGIC %restart_python
7
7
 
8
8
  # COMMAND ----------
@@ -127,11 +127,6 @@ from mlflow.genai.scorers import scorer, Safety, Guidelines
127
127
  from mlflow.entities import Feedback, Trace
128
128
 
129
129
 
130
- clarity = Guidelines(
131
- name="clarity",
132
- guidelines=["The response must be clear, coherent, and concise"],
133
- )
134
-
135
130
  @scorer
136
131
  def response_completeness(outputs: dict[str, Any]) -> Feedback:
137
132
 
@@ -225,7 +220,7 @@ eval_df: pd.DataFrame = spark.read.table(payload_table).toPandas()
225
220
 
226
221
  evaluation_table_name: str = config.evaluation.table.full_name
227
222
 
228
- scorers = [Safety(), clarity, response_completeness, tool_call_efficiency]
223
+ scorers = [Safety(), response_completeness, tool_call_efficiency]
229
224
  custom_scorers = []
230
225
 
231
226
  if config.evaluation.guidelines:
@@ -1,7 +1,7 @@
1
1
  # Databricks notebook source
2
- # MAGIC %pip install --quiet -r ../requirements.txt
3
- # MAGIC %pip uninstall -y databricks-connect pyspark pyspark-connect
4
- # MAGIC %pip install databricks-connect
2
+ # MAGIC %pip install --quiet --upgrade -r ../requirements.txt
3
+ # MAGIC %pip uninstall --quiet -y databricks-connect pyspark pyspark-connect
4
+ # MAGIC %pip install --quiet databricks-connect
5
5
  # MAGIC %restart_python
6
6
 
7
7
  # COMMAND ----------
@@ -50,15 +50,7 @@ mlflow.langchain.autolog()
50
50
 
51
51
  config: AppConfig = AppConfig.from_file(path=config_path)
52
52
 
53
- log_level: str = config.app.log_level
54
-
55
- logger.remove()
56
- logger.add(sys.stderr, level=log_level)
57
-
58
- graph: CompiledStateGraph = create_dao_ai_graph(config=config)
59
-
60
- app: ChatModel = create_agent(graph)
61
-
53
+ app: ChatModel = config.as_chat_model()
62
54
 
63
55
  # COMMAND ----------
64
56
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "dao-ai"
7
- version = "0.0.12"
7
+ version = "0.0.14"
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" }
@@ -56,7 +56,7 @@ dependencies = [
56
56
  "langmem>=0.0.29",
57
57
  "loguru>=0.7.3",
58
58
  "mcp>=1.9.1",
59
- "mlflow>=3.1.1",
59
+ "mlflow>=3.3.2",
60
60
  "nest-asyncio>=1.6.0",
61
61
  "openevals>=0.0.19",
62
62
  "openpyxl>=3.1.5",
@@ -12,11 +12,13 @@ boto3==1.40.1
12
12
  botocore==1.40.1
13
13
  cachetools==5.5.2
14
14
  certifi==2025.6.15
15
+ cffi==1.17.1
15
16
  cfgv==3.4.0
16
17
  charset-normalizer==3.4.2
17
18
  click==8.2.1
18
19
  cloudpickle==3.1.1
19
20
  contourpy==1.3.2
21
+ cryptography==45.0.7
20
22
  cycler==0.12.1
21
23
  databricks-agents==1.2.0
22
24
  databricks-ai-bridge==0.5.1
@@ -88,8 +90,9 @@ marshmallow==3.26.1
88
90
  matplotlib==3.10.3
89
91
  mcp==1.9.4
90
92
  mdurl==0.1.2
91
- mlflow==3.1.1
92
- mlflow-skinny==3.1.1
93
+ mlflow==3.3.2
94
+ mlflow-skinny==3.3.2
95
+ mlflow-tracing==3.3.2
93
96
  multidict==6.5.0
94
97
  mypy==1.16.1
95
98
  mypy-extensions==1.1.0
@@ -121,6 +124,7 @@ py4j==0.10.9.7
121
124
  pyarrow==20.0.0
122
125
  pyasn1==0.6.1
123
126
  pyasn1-modules==0.4.2
127
+ pycparser==2.22
124
128
  pydantic==2.11.7
125
129
  pydantic-core==2.33.2
126
130
  pydantic-settings==2.10.0
@@ -1086,6 +1086,30 @@
1086
1086
  "title": "Num Evals",
1087
1087
  "type": "integer"
1088
1088
  },
1089
+ "agent_description": {
1090
+ "anyOf": [
1091
+ {
1092
+ "type": "string"
1093
+ },
1094
+ {
1095
+ "type": "null"
1096
+ }
1097
+ ],
1098
+ "default": null,
1099
+ "title": "Agent Description"
1100
+ },
1101
+ "question_guidelines": {
1102
+ "anyOf": [
1103
+ {
1104
+ "type": "string"
1105
+ },
1106
+ {
1107
+ "type": "null"
1108
+ }
1109
+ ],
1110
+ "default": null,
1111
+ "title": "Question Guidelines"
1112
+ },
1089
1113
  "custom_inputs": {
1090
1114
  "additionalProperties": true,
1091
1115
  "title": "Custom Inputs",
@@ -2547,6 +2571,28 @@
2547
2571
  "source_table": {
2548
2572
  "$ref": "#/$defs/TableModel"
2549
2573
  },
2574
+ "source_path": {
2575
+ "anyOf": [
2576
+ {
2577
+ "$ref": "#/$defs/VolumePathModel"
2578
+ },
2579
+ {
2580
+ "type": "null"
2581
+ }
2582
+ ],
2583
+ "default": null
2584
+ },
2585
+ "checkpoint_path": {
2586
+ "anyOf": [
2587
+ {
2588
+ "$ref": "#/$defs/VolumePathModel"
2589
+ },
2590
+ {
2591
+ "type": "null"
2592
+ }
2593
+ ],
2594
+ "default": null
2595
+ },
2550
2596
  "primary_key": {
2551
2597
  "anyOf": [
2552
2598
  {
@@ -2626,17 +2672,29 @@
2626
2672
  "additionalProperties": false,
2627
2673
  "properties": {
2628
2674
  "volume": {
2629
- "$ref": "#/$defs/VolumeModel"
2675
+ "anyOf": [
2676
+ {
2677
+ "$ref": "#/$defs/VolumeModel"
2678
+ },
2679
+ {
2680
+ "type": "null"
2681
+ }
2682
+ ],
2683
+ "default": null
2630
2684
  },
2631
2685
  "path": {
2632
- "title": "Path",
2633
- "type": "string"
2686
+ "anyOf": [
2687
+ {
2688
+ "type": "string"
2689
+ },
2690
+ {
2691
+ "type": "null"
2692
+ }
2693
+ ],
2694
+ "default": null,
2695
+ "title": "Path"
2634
2696
  }
2635
2697
  },
2636
- "required": [
2637
- "volume",
2638
- "path"
2639
- ],
2640
2698
  "title": "VolumePathModel",
2641
2699
  "type": "object"
2642
2700
  },
@@ -1,14 +1,11 @@
1
1
  import sys
2
2
 
3
3
  import mlflow
4
- from langgraph.graph.state import CompiledStateGraph
5
4
  from loguru import logger
6
5
  from mlflow.models import ModelConfig
7
6
  from mlflow.pyfunc import ChatModel
8
7
 
9
8
  from dao_ai.config import AppConfig
10
- from dao_ai.graph import create_dao_ai_graph
11
- from dao_ai.models import create_agent
12
9
 
13
10
  mlflow.langchain.autolog()
14
11
 
@@ -20,8 +17,6 @@ log_level: str = config.app.log_level
20
17
  logger.remove()
21
18
  logger.add(sys.stderr, level=log_level)
22
19
 
23
- graph: CompiledStateGraph = create_dao_ai_graph(config=config)
24
-
25
- app: ChatModel = create_agent(graph)
20
+ app: ChatModel = config.as_chat_model()
26
21
 
27
22
  mlflow.models.set_model(app)
@@ -351,12 +351,85 @@ 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 as_path(self) -> Path:
413
+ return Path(self.full_name)
414
+
415
+ def create(self, w: WorkspaceClient | None = None) -> None:
416
+ from dao_ai.providers.databricks import DatabricksProvider
417
+
418
+ if self.volume:
419
+ self.volume.create(w=w)
420
+
421
+ provider: DatabricksProvider = DatabricksProvider(w=w)
422
+ provider.create_path(self)
423
+
424
+
354
425
  class VectorStoreModel(BaseModel, IsDatabricksResource):
355
426
  model_config = ConfigDict(use_enum_values=True, extra="forbid")
356
427
  embedding_model: Optional[LLMModel] = None
357
428
  index: Optional[IndexModel] = None
358
429
  endpoint: Optional[VectorSearchEndpoint] = None
359
430
  source_table: TableModel
431
+ source_path: Optional[VolumePathModel] = None
432
+ checkpoint_path: Optional[VolumePathModel] = None
360
433
  primary_key: Optional[str] = None
361
434
  columns: Optional[list[str]] = Field(default_factory=list)
362
435
  doc_uri: Optional[str] = None
@@ -448,43 +521,6 @@ class VectorStoreModel(BaseModel, IsDatabricksResource):
448
521
  provider.create_vector_store(self)
449
522
 
450
523
 
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
524
  class FunctionModel(BaseModel, HasFullName, IsDatabricksResource):
489
525
  model_config = ConfigDict()
490
526
  schema_model: Optional[SchemaModel] = Field(default=None, alias="schema")
@@ -1093,6 +1129,8 @@ class EvaluationModel(BaseModel):
1093
1129
  model: LLMModel
1094
1130
  table: TableModel
1095
1131
  num_evals: int
1132
+ agent_description: Optional[str] = None
1133
+ question_guidelines: Optional[str] = None
1096
1134
  custom_inputs: dict[str, Any] = Field(default_factory=dict)
1097
1135
  guidelines: list[GuidelineModel] = Field(default_factory=list)
1098
1136
 
@@ -1107,21 +1145,6 @@ class DatasetFormat(str, Enum):
1107
1145
  EXCEL = "excel"
1108
1146
 
1109
1147
 
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
1148
  class DatasetModel(BaseModel):
1126
1149
  model_config = ConfigDict(use_enum_values=True, extra="forbid")
1127
1150
  table: Optional[TableModel] = None
@@ -1211,6 +1234,10 @@ class AppConfig(BaseModel):
1211
1234
  def initialize(self) -> None:
1212
1235
  from dao_ai.hooks.core import create_hooks
1213
1236
 
1237
+ if self.app and self.app.log_level:
1238
+ logger.remove()
1239
+ logger.add(sys.stderr, level=self.app.log_level)
1240
+
1214
1241
  logger.debug("Calling initialization hooks...")
1215
1242
  initialization_functions: Sequence[Callable[..., Any]] = create_hooks(
1216
1243
  self.app.initialization_hooks
@@ -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
 
@@ -51,7 +51,9 @@ def create_vector_search_tool(
51
51
 
52
52
  vector_search_tool: BaseTool = VectorSearchRetrieverTool(
53
53
  name=name,
54
+ tool_name=name,
54
55
  description=description,
56
+ tool_description=description,
55
57
  index_name=index_name,
56
58
  columns=columns,
57
59
  **search_parameters,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes