dao-ai 0.0.27__tar.gz → 0.0.29__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 (364) hide show
  1. dao_ai-0.0.29/.python-version +1 -0
  2. {dao_ai-0.0.27 → dao_ai-0.0.29}/PKG-INFO +5 -3
  3. dao_ai-0.0.29/config/examples/vector_search_with_reranking.yaml +293 -0
  4. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/hardware_store/supervisor.yaml +22 -153
  5. {dao_ai-0.0.27 → dao_ai-0.0.29}/environment.yaml +1 -0
  6. {dao_ai-0.0.27 → dao_ai-0.0.29}/pyproject.toml +6 -4
  7. {dao_ai-0.0.27 → dao_ai-0.0.29}/requirements.txt +8 -0
  8. {dao_ai-0.0.27 → dao_ai-0.0.29}/schemas/model_config_schema.json +71 -0
  9. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/agent_as_code.py +3 -0
  10. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/config.py +60 -0
  11. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/providers/databricks.py +7 -0
  12. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/tools/genie.py +2 -6
  13. dao_ai-0.0.29/src/dao_ai/tools/vector_search.py +282 -0
  14. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/utils.py +1 -0
  15. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_databricks.py +69 -0
  16. dao_ai-0.0.29/tests/dao_ai/test_reranking.py +294 -0
  17. dao_ai-0.0.29/tests/dao_ai/test_reranking_integration.py +468 -0
  18. dao_ai-0.0.27/.python-version +0 -1
  19. dao_ai-0.0.27/docs/prompt_optimization_updates.md +0 -170
  20. dao_ai-0.0.27/src/dao_ai/tools/vector_search.py +0 -72
  21. {dao_ai-0.0.27 → dao_ai-0.0.29}/.gitignore +0 -0
  22. {dao_ai-0.0.27 → dao_ai-0.0.29}/CHANGELOG.md +0 -0
  23. {dao_ai-0.0.27 → dao_ai-0.0.29}/CONTRIBUTING.md +0 -0
  24. {dao_ai-0.0.27 → dao_ai-0.0.29}/LICENSE +0 -0
  25. {dao_ai-0.0.27 → dao_ai-0.0.29}/Makefile +0 -0
  26. {dao_ai-0.0.27 → dao_ai-0.0.29}/README.md +0 -0
  27. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/Makefile +0 -0
  28. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/REFACTORING_SUMMARY.md +0 -0
  29. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/base-environment-serverless.yaml +0 -0
  30. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/demo_docs/BRAND_REP_DEMO_SUMMARY.md +0 -0
  31. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/demo_docs/demo_scripts/brand_rep_product_education_demo.md +0 -0
  32. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/demo_docs/demo_scripts/store_associate_ai_assistant_demo.md +0 -0
  33. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/demo_docs/demo_scripts/store_manager_alert_response_demo.md +0 -0
  34. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/development_workflows.md +0 -0
  35. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/.gitkeep +0 -0
  36. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/Makefile +0 -0
  37. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/agent_implementation.mmd +0 -0
  38. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/agent_tools_architecture.mmd +0 -0
  39. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/agents-and-tools/agent-troubleshooting.md +0 -0
  40. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-best-practices.md +0 -0
  41. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-development-patterns.md +0 -0
  42. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-performance.md +0 -0
  43. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-quickstart.md +0 -0
  44. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/agents-and-tools/ai-agents.md +0 -0
  45. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/agents-and-tools/overview.md +0 -0
  46. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/agents-and-tools/references/agent-reference.md +0 -0
  47. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/agents-and-tools/references/tools-reference.md +0 -0
  48. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/applications/streamlit-app.md +0 -0
  49. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/architecture/overview.md +0 -0
  50. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/architecture.mmd +0 -0
  51. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/architecture.png +0 -0
  52. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/customer_preparation_guide.md +0 -0
  53. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/databricks_integration.mmd +0 -0
  54. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/deployment/production.md +0 -0
  55. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/development/contributing.md +0 -0
  56. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/employee_tools_guide.md +0 -0
  57. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/getting-started/installation.md +0 -0
  58. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/getting-started/mkdocs-quickstart.md +0 -0
  59. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/getting-started/quick-start.md +0 -0
  60. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/index.md +0 -0
  61. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/mkdocs.yml +0 -0
  62. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/scenario_1_architecture.mmd +0 -0
  63. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/scenario_1_flow.mmd +0 -0
  64. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/setup-docs.sh +0 -0
  65. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/task_assignment_workflow_guide.md +0 -0
  66. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/docs/tools/overview.md +0 -0
  67. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/examples/customer_preparation_workflow.py +0 -0
  68. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/examples/task_assignment_workflow.py +0 -0
  69. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/load-env.sh +0 -0
  70. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/CSS_REFACTORING_SUMMARY.md +0 -0
  71. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/DEMO_CONTROLS_RESTORED.md +0 -0
  72. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/DEMO_IMPLEMENTATION_SUMMARY.md +0 -0
  73. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/DEMO_QUICK_START.md +0 -0
  74. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/Dockerfile +0 -0
  75. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/HOMEPAGE_README.md +0 -0
  76. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/Makefile +0 -0
  77. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/README.md +0 -0
  78. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/app.py +0 -0
  79. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/app.yaml +0 -0
  80. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/__init__.py +0 -0
  81. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/backup_homepage.py +0 -0
  82. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/chat.py +0 -0
  83. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/enhanced_charts.py +0 -0
  84. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/enhanced_navigation.py +0 -0
  85. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/__init__.py +0 -0
  86. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/__init__.py +0 -0
  87. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/associate_homepage.py +0 -0
  88. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/dashboard_tab.py +0 -0
  89. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/my_tasks_tab.py +0 -0
  90. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/performance_tab.py +0 -0
  91. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/products_tab.py +0 -0
  92. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/schedule_tab.py +0 -0
  93. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/__init__.py +0 -0
  94. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/chat_integration.py +0 -0
  95. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/kpi_summary.py +0 -0
  96. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/notifications.py +0 -0
  97. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/homepage.py +0 -0
  98. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/__init__.py +0 -0
  99. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/alerts_tab.py +0 -0
  100. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/analytics_tab.py +0 -0
  101. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/dashboard_tab.py +0 -0
  102. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/demo_alerts.py +0 -0
  103. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/inventory_tab.py +0 -0
  104. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/manager_homepage.py +0 -0
  105. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/operations_tab.py +0 -0
  106. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/team_tab.py +0 -0
  107. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/__init__.py +0 -0
  108. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/ai_insights_tab.py +0 -0
  109. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/executive_dashboard_tab.py +0 -0
  110. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/geographical_analysis_tab.py +0 -0
  111. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/performance_metrics_tab.py +0 -0
  112. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/strategic_insights_tab.py +0 -0
  113. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/vp_homepage.py +0 -0
  114. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/metrics.py +0 -0
  115. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/navigation.py +0 -0
  116. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/oldhomepage.py +0 -0
  117. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/components/styles.py +0 -0
  118. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/config.yaml +0 -0
  119. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/demo_docs/BRAND_REP_DEMO_SUMMARY.md +0 -0
  120. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/demo_docs/comprehensive_demo_script.md +0 -0
  121. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/brand_rep_product_education_demo.md +0 -0
  122. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/store_associate_ai_assistant_demo.md +0 -0
  123. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/store_manager_alert_response_demo.md +0 -0
  124. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/dev/README.md +0 -0
  125. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/dev/__init__.py +0 -0
  126. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/dev/components/__init__.py +0 -0
  127. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/dev/components/dashboard_card.py +0 -0
  128. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/dev/demo_alerts.py +0 -0
  129. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/dev/examples/sample_dashboard.py +0 -0
  130. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/pages/__init__.py +0 -0
  131. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/pages/component_showcase.py +0 -0
  132. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/pages/dev_playground.py +0 -0
  133. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/pages/playground.py +0 -0
  134. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/pages_wip/daily_operations.py +0 -0
  135. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/pages_wip/inventory.py +0 -0
  136. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/pages_wip/my_schedule.py +0 -0
  137. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/pages_wip/my_tasks.py +0 -0
  138. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/pages_wip/orders.py +0 -0
  139. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/pages_wip/products_promotions.py +0 -0
  140. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/pages_wip/staff.py +0 -0
  141. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/pages_wip/team_insights.py +0 -0
  142. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/pyproject.toml +0 -0
  143. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/requirements.txt +0 -0
  144. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/static/css/style.css +0 -0
  145. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/styles/README.md +0 -0
  146. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/styles/__init__.py +0 -0
  147. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/styles/base.py +0 -0
  148. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/styles/components.py +0 -0
  149. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/styles/dashboard.py +0 -0
  150. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/styles/homepage.py +0 -0
  151. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/styles/theme.py +0 -0
  152. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/test_vip_notification.py +0 -0
  153. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/tests/test_calculations.py +0 -0
  154. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/utils/config.py +0 -0
  155. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/utils/database.py +0 -0
  156. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/utils/model_serving.py +0 -0
  157. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app/utils/store_context.py +0 -0
  158. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/Makefile +0 -0
  159. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/README.md +0 -0
  160. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/app.py +0 -0
  161. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/__init__.py +0 -0
  162. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/__init__.py +0 -0
  163. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_components.py +0 -0
  164. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_components_enhanced.py +0 -0
  165. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_styles.py +0 -0
  166. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin_styles.py +0 -0
  167. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/TAILADMIN_README.md +0 -0
  168. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/homepage_tailadmin.py +0 -0
  169. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/tailadmin_demo.py +0 -0
  170. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/tailadmin_implementation_guide.py +0 -0
  171. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/test_vp_dashboard.py +0 -0
  172. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/vp_dashboard_enhanced.py +0 -0
  173. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/vp_dashboard_tailadmin.py +0 -0
  174. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/components_demo.py +0 -0
  175. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/homepage.py +0 -0
  176. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/implementation_guide.py +0 -0
  177. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/vp_dashboard_clean.py +0 -0
  178. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/vp_dashboard_enhanced.py +0 -0
  179. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pyproject.toml +0 -0
  180. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/tests/__init__.py +0 -0
  181. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/streamlit_store_app_tailadmin/tests/test_imports.py +0 -0
  182. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/tests/.gitkeep +0 -0
  183. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/tests/README.md +0 -0
  184. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/tests/images/doritos_upc.png +0 -0
  185. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/tests/images/lays_upc.png +0 -0
  186. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/tests/manager_demo_script.md +0 -0
  187. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/tests/notebook_vector_search_test.py +0 -0
  188. {dao_ai-0.0.27 → dao_ai-0.0.29}/apps/dais2025/store-app/tests/test_vector_search_integration.py +0 -0
  189. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/dais2025/model_config_dais.yaml +0 -0
  190. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/examples/deep_research.yaml +0 -0
  191. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/examples/executive_assistant.yaml +0 -0
  192. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/examples/genie.yaml +0 -0
  193. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/examples/genie_and_genie_mcp.yaml +0 -0
  194. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/examples/genie_and_vector_search.yaml +0 -0
  195. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/examples/genie_with_conversion_id.yaml +0 -0
  196. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/examples/human_in_the_loop.yaml +0 -0
  197. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/examples/jira.yaml +0 -0
  198. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/examples/mcp.yaml +0 -0
  199. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/examples/mcp_with_uc_connection.yaml +0 -0
  200. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/examples/minimal.yaml +0 -0
  201. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/examples/prompt_optimization.yaml +0 -0
  202. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/examples/prompt_registry.yaml +0 -0
  203. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/examples/reservations.yaml +0 -0
  204. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/examples/slack.yaml +0 -0
  205. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/hardware_store/supervisor_postgres.yaml +0 -0
  206. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/hardware_store/swarm.yaml +0 -0
  207. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/quick_serve_restaurant/.gitkeep +0 -0
  208. {dao_ai-0.0.27 → dao_ai-0.0.29}/config/quick_serve_restaurant/quick-serve-restaurant.yaml +0 -0
  209. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/appointments.sql +0 -0
  210. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/appointments_data.sql +0 -0
  211. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/brand_rep_demo_data.sql +0 -0
  212. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/brand_rep_demo_queries.sql +0 -0
  213. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/brand_rep_demo_tables.sql +0 -0
  214. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/brand_rep_demo_validation.sql +0 -0
  215. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/customers.sql +0 -0
  216. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/customers_data.sql +0 -0
  217. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/dim_stores.sql +0 -0
  218. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/dim_stores_data.sql +0 -0
  219. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/employee_performance.sql +0 -0
  220. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/employee_performance_data.sql +0 -0
  221. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/employee_tasks.sql +0 -0
  222. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/employee_tasks_data.sql +0 -0
  223. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/inventory.sql +0 -0
  224. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/inventory_data.sql +0 -0
  225. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/managers.sql +0 -0
  226. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/managers_data.sql +0 -0
  227. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/product_data.sql +0 -0
  228. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/products.sql +0 -0
  229. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/dais2025/task_assignments.sql +0 -0
  230. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/hardware_store/inventory.snappy.parquet +0 -0
  231. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/hardware_store/inventory.sql +0 -0
  232. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/hardware_store/products.snappy.parquet +0 -0
  233. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/hardware_store/products.sql +0 -0
  234. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/quick_serve_restaurant/.gitkeep +0 -0
  235. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/quick_serve_restaurant/fulfil_item_orders.sql +0 -0
  236. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/quick_serve_restaurant/items_description.csv +0 -0
  237. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/quick_serve_restaurant/items_description.sql +0 -0
  238. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/quick_serve_restaurant/items_raw.csv +0 -0
  239. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/quick_serve_restaurant/items_raw.sql +0 -0
  240. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/quick_serve_restaurant/orders_raw.csv +0 -0
  241. {dao_ai-0.0.27 → dao_ai-0.0.29}/data/quick_serve_restaurant/orders_raw.sql +0 -0
  242. {dao_ai-0.0.27 → dao_ai-0.0.29}/databricks.yaml.template +0 -0
  243. {dao_ai-0.0.27 → dao_ai-0.0.29}/docs/genie.png +0 -0
  244. {dao_ai-0.0.27 → dao_ai-0.0.29}/docs/hardware_store/README.md +0 -0
  245. {dao_ai-0.0.27 → dao_ai-0.0.29}/docs/hardware_store/retail_supervisor.png +0 -0
  246. {dao_ai-0.0.27 → dao_ai-0.0.29}/docs/hardware_store/retail_swarm.png +0 -0
  247. {dao_ai-0.0.27 → dao_ai-0.0.29}/docs/quick_serve_restaurant/.gitkeep +0 -0
  248. {dao_ai-0.0.27 → dao_ai-0.0.29}/docs/quick_serve_restaurant/quick-serve-restaurant.png +0 -0
  249. {dao_ai-0.0.27 → dao_ai-0.0.29}/examples/dais2025/examples.yaml +0 -0
  250. {dao_ai-0.0.27 → dao_ai-0.0.29}/examples/deep_research/examples.yaml +0 -0
  251. {dao_ai-0.0.27 → dao_ai-0.0.29}/examples/executive_assistant/examples.yaml +0 -0
  252. {dao_ai-0.0.27 → dao_ai-0.0.29}/examples/hardware_store/examples.yaml +0 -0
  253. {dao_ai-0.0.27 → dao_ai-0.0.29}/examples/quick_serve_restaurant/.gitkeep +0 -0
  254. {dao_ai-0.0.27 → dao_ai-0.0.29}/examples/quick_serve_restaurant/examples.yaml +0 -0
  255. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/dais2025/extract_store_numbers.sql +0 -0
  256. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/dais2025/find_inventory_by_sku.sql +0 -0
  257. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/dais2025/find_inventory_by_upc.sql +0 -0
  258. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/dais2025/find_product_by_sku.sql +0 -0
  259. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/dais2025/find_product_by_upc.sql +0 -0
  260. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/dais2025/find_store_by_number.sql +0 -0
  261. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/dais2025/find_store_inventory_by_sku.sql +0 -0
  262. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/dais2025/find_store_inventory_by_upc.sql +0 -0
  263. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/hardware_store/find_inventory_by_sku.sql +0 -0
  264. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/hardware_store/find_inventory_by_upc.sql +0 -0
  265. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/hardware_store/find_product_by_sku.sql +0 -0
  266. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/hardware_store/find_product_by_upc.sql +0 -0
  267. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/hardware_store/find_store_inventory_by_sku.sql +0 -0
  268. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/hardware_store/find_store_inventory_by_upc.sql +0 -0
  269. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/quick_serve_restaurant/.gitkeep +0 -0
  270. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/quick_serve_restaurant/insert_coffee_order.sql +0 -0
  271. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/quick_serve_restaurant/lookup_items_by_descriptions.sql +0 -0
  272. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/quick_serve_restaurant/match_historical_item_order_by_date.sql +0 -0
  273. {dao_ai-0.0.27 → dao_ai-0.0.29}/functions/quick_serve_restaurant/match_item_by_description_and_price.sql +0 -0
  274. {dao_ai-0.0.27 → dao_ai-0.0.29}/notebooks/01_ingest_and_transform.py +0 -0
  275. {dao_ai-0.0.27 → dao_ai-0.0.29}/notebooks/02_provision_vector_search.py +0 -0
  276. {dao_ai-0.0.27 → dao_ai-0.0.29}/notebooks/03_provision_lakebase.py +0 -0
  277. {dao_ai-0.0.27 → dao_ai-0.0.29}/notebooks/04_unity_catalog_tools.py +0 -0
  278. {dao_ai-0.0.27 → dao_ai-0.0.29}/notebooks/05_deploy_agent.py +0 -0
  279. {dao_ai-0.0.27 → dao_ai-0.0.29}/notebooks/06_generate_evaluation_data.py +0 -0
  280. {dao_ai-0.0.27 → dao_ai-0.0.29}/notebooks/07_run_evaluation.py +0 -0
  281. {dao_ai-0.0.27 → dao_ai-0.0.29}/notebooks/08_run_examples.py +0 -0
  282. {dao_ai-0.0.27 → dao_ai-0.0.29}/notebooks/09_evaluate_inferences.py +0 -0
  283. {dao_ai-0.0.27 → dao_ai-0.0.29}/notebooks/10_optimize_prompts.py +0 -0
  284. {dao_ai-0.0.27 → dao_ai-0.0.29}/notebooks/99_scratchpad.py +0 -0
  285. {dao_ai-0.0.27 → dao_ai-0.0.29}/notebooks/INVESTech.py +0 -0
  286. {dao_ai-0.0.27 → dao_ai-0.0.29}/schemas/bundle_config_schema.json +0 -0
  287. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dais2025/__init__.py +0 -0
  288. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dais2025/models.py +0 -0
  289. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dais2025/tools/__init__.py +0 -0
  290. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dais2025/tools/customer.py +0 -0
  291. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dais2025/tools/employee.py +0 -0
  292. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dais2025/tools/executive.py +0 -0
  293. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dais2025/tools/genie.py +0 -0
  294. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dais2025/tools/inventory.py +0 -0
  295. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dais2025/tools/models.py +0 -0
  296. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dais2025/tools/store.py +0 -0
  297. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/__init__.py +0 -0
  298. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/catalog.py +0 -0
  299. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/chat_models.py +0 -0
  300. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/cli.py +0 -0
  301. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/graph.py +0 -0
  302. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/guardrails.py +0 -0
  303. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/hooks/__init__.py +0 -0
  304. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/hooks/core.py +0 -0
  305. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/memory/__init__.py +0 -0
  306. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/memory/base.py +0 -0
  307. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/memory/core.py +0 -0
  308. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/memory/postgres.py +0 -0
  309. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/messages.py +0 -0
  310. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/models.py +0 -0
  311. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/nodes.py +0 -0
  312. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/prompts.py +0 -0
  313. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/providers/__init__.py +0 -0
  314. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/providers/base.py +0 -0
  315. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/state.py +0 -0
  316. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/tools/__init__.py +0 -0
  317. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/tools/agent.py +0 -0
  318. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/tools/core.py +0 -0
  319. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/tools/human_in_the_loop.py +0 -0
  320. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/tools/mcp.py +0 -0
  321. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/tools/python.py +0 -0
  322. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/tools/slack.py +0 -0
  323. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/tools/time.py +0 -0
  324. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/tools/unity_catalog.py +0 -0
  325. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/types.py +0 -0
  326. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/dao_ai/vector_search.py +0 -0
  327. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/hardware_store/__init__.py +0 -0
  328. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/hardware_store/hooks.py +0 -0
  329. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/hardware_store/tools.py +0 -0
  330. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/quick_serve_restaurant/.gitkeep +0 -0
  331. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/quick_serve_restaurant/__init__.py +0 -0
  332. {dao_ai-0.0.27 → dao_ai-0.0.29}/src/quick_serve_restaurant/tools.py +0 -0
  333. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/config/test_model_config.yaml +0 -0
  334. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/conftest.py +0 -0
  335. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_catalog.py +0 -0
  336. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_chat_history.py +0 -0
  337. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_config.py +0 -0
  338. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_function_parsing.py +0 -0
  339. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_genie.py +0 -0
  340. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_genie_conversation_ids_in_outputs.py +0 -0
  341. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_genie_databricks_integration.py +0 -0
  342. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_hooks.py +0 -0
  343. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_inference.py +0 -0
  344. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_inference_integration.py +0 -0
  345. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_mcp.py +0 -0
  346. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_mcp_function_model.py +0 -0
  347. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_messages.py +0 -0
  348. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_models.py +0 -0
  349. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_postgres_integration.py +0 -0
  350. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_prompt_optimizations.py +0 -0
  351. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_prompts.py +0 -0
  352. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_state.py +0 -0
  353. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_summarization_inference.py +0 -0
  354. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_tools.py +0 -0
  355. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_types.py +0 -0
  356. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_unity_catalog.py +0 -0
  357. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_utils.py +0 -0
  358. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/test_vector_search.py +0 -0
  359. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/dao_ai/weather_server_mcp.py +0 -0
  360. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/hardware_store/.gitkeep +0 -0
  361. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/hardware_store/test_graph.py +0 -0
  362. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/images/doritos_upc.png +0 -0
  363. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/images/lays_upc.png +0 -0
  364. {dao_ai-0.0.27 → dao_ai-0.0.29}/tests/quick_serve_restaurant/.gitkeep +0 -0
@@ -0,0 +1 @@
1
+ 3.11
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dao-ai
3
- Version: 0.0.27
3
+ Version: 0.0.29
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
@@ -18,17 +18,19 @@ Classifier: Intended Audience :: Science/Research
18
18
  Classifier: License :: OSI Approved :: MIT License
19
19
  Classifier: Operating System :: OS Independent
20
20
  Classifier: Programming Language :: Python :: 3
21
+ Classifier: Programming Language :: Python :: 3.11
21
22
  Classifier: Programming Language :: Python :: 3.12
22
23
  Classifier: Programming Language :: Python :: 3.13
23
24
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
24
25
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
26
  Classifier: Topic :: System :: Distributed Computing
26
- Requires-Python: >=3.12
27
+ Requires-Python: >=3.11
27
28
  Requires-Dist: databricks-agents>=1.7.0
28
29
  Requires-Dist: databricks-langchain>=0.8.1
29
30
  Requires-Dist: databricks-mcp>=0.3.0
30
31
  Requires-Dist: databricks-sdk[openai]>=0.67.0
31
32
  Requires-Dist: duckduckgo-search>=8.0.2
33
+ Requires-Dist: flashrank>=0.2.8
32
34
  Requires-Dist: gepa>=0.0.17
33
35
  Requires-Dist: grandalf>=0.8
34
36
  Requires-Dist: langchain-mcp-adapters>=0.1.10
@@ -56,7 +58,7 @@ Requires-Dist: tomli>=2.3.0
56
58
  Requires-Dist: unitycatalog-ai[databricks]>=0.3.0
57
59
  Provides-Extra: databricks
58
60
  Requires-Dist: databricks-connect>=15.0.0; extra == 'databricks'
59
- Requires-Dist: databricks-vectorsearch>=0.56; extra == 'databricks'
61
+ Requires-Dist: databricks-vectorsearch>=0.63; extra == 'databricks'
60
62
  Requires-Dist: pyspark>=3.5.0; extra == 'databricks'
61
63
  Provides-Extra: dev
62
64
  Requires-Dist: mypy>=1.0.0; extra == 'dev'
@@ -0,0 +1,293 @@
1
+ # yaml-language-server: $schema=../../schemas/model_config_schema.json
2
+
3
+ schemas:
4
+ retail_schema: &retail_schema
5
+ catalog_name: retail_consumer_goods # Unity Catalog name
6
+ schema_name: store_ops # Schema within the catalog
7
+
8
+ resources:
9
+ llms:
10
+ # Primary LLM for general tasks
11
+ default_llm: &default_llm
12
+ name: databricks-meta-llama-3-3-70b-instruct # Databricks serving endpoint name
13
+ temperature: 0.1 # Low temperature for consistent responses
14
+ max_tokens: 8192 # Maximum tokens per response
15
+
16
+ embedding_model: &embedding_model
17
+ name: databricks-gte-large-en # Text embedding model
18
+
19
+ vector_stores:
20
+ # Product information vector store for similarity search
21
+ products_vector_store: &products_vector_store
22
+ embedding_model: *embedding_model # Reference to embedding model above
23
+ endpoint: # Vector search endpoint configuration
24
+ name: one-env-shared-endpoint-0 # Databricks vector search endpoint
25
+ type: STANDARD # Endpoint type (STANDARD or OPTIMIZED_STORAGE)
26
+ index: # Vector search index configuration
27
+ schema: *retail_schema # Unity Catalog schema for the index
28
+ name: retail_vectorstore # Index name
29
+ source_table: # Table containing source data
30
+ schema: *retail_schema
31
+ name: products
32
+ primary_key: item_id # Primary key column
33
+ doc_uri: ~ # Optional document URI column (null in this case)
34
+ embedding_source_column: item_description # Column to create embeddings from
35
+ columns: # Columns to include in vector store
36
+ - item_id
37
+ - item_name
38
+ - item_description
39
+ - category
40
+ - price
41
+
42
+ retrievers:
43
+ # Standard retriever WITHOUT reranking
44
+ standard_retriever: &standard_retriever
45
+ vector_store: *products_vector_store # Reference to vector store defined above
46
+ columns: # Columns to return in search results
47
+ - item_id
48
+ - item_name
49
+ - item_description
50
+ - category
51
+ - price
52
+ search_parameters: # Search configuration
53
+ num_results: 10 # Number of results to return
54
+ filters: {} # Additional filters (empty in this case)
55
+ query_type: ANN # Approximate Nearest Neighbor search
56
+
57
+ # Retriever WITH default reranking
58
+ default_reranked_retriever: &default_reranked_retriever
59
+ vector_store: *products_vector_store
60
+ columns:
61
+ - item_id
62
+ - item_name
63
+ - item_description
64
+ - category
65
+ - price
66
+ search_parameters:
67
+ num_results: 50 # Retrieve more candidates for reranking
68
+ filters: {}
69
+ query_type: ANN
70
+ rerank: true # Enable reranking with default settings
71
+
72
+ # Retriever WITH custom reranking (fast model)
73
+ fast_reranked_retriever: &fast_reranked_retriever
74
+ vector_store: *products_vector_store
75
+ columns:
76
+ - item_id
77
+ - item_name
78
+ - item_description
79
+ - category
80
+ - price
81
+ search_parameters:
82
+ num_results: 100 # Cast wide net for reranking
83
+ filters: {}
84
+ query_type: ANN
85
+ rerank: # Custom reranking configuration
86
+ model: ms-marco-MiniLM-L-6-v2 # Faster, lighter model
87
+ top_n: 5 # Return top 5 after reranking
88
+ cache_dir: /tmp/flashrank_cache # Cache directory for model weights
89
+
90
+ # Retriever WITH accurate reranking (hybrid + reranking)
91
+ accurate_reranked_retriever: &accurate_reranked_retriever
92
+ vector_store: *products_vector_store
93
+ columns:
94
+ - item_id
95
+ - item_name
96
+ - item_description
97
+ - category
98
+ - price
99
+ search_parameters:
100
+ num_results: 50
101
+ filters: {}
102
+ query_type: HYBRID # Use hybrid search for better recall
103
+ rerank:
104
+ model: ms-marco-MiniLM-L-12-v2 # Balanced model (default)
105
+ top_n: 10 # Return top 10 after reranking
106
+ cache_dir: /tmp/flashrank_cache
107
+
108
+ tools:
109
+ # Tool 1: Standard vector search (no reranking)
110
+ standard_search_tool: &standard_search_tool
111
+ name: standard_product_search
112
+ function:
113
+ type: factory
114
+ name: dao_ai.tools.create_vector_search_tool
115
+ args:
116
+ retriever: *standard_retriever
117
+ name: standard_product_search
118
+ description: |
119
+ Search for products using standard vector similarity search.
120
+ Returns the 10 most similar products based on embeddings.
121
+
122
+ # Tool 2: Vector search with default reranking
123
+ default_reranked_tool: &default_reranked_tool
124
+ name: reranked_product_search
125
+ function:
126
+ type: factory
127
+ name: dao_ai.tools.create_vector_search_tool
128
+ args:
129
+ retriever: *default_reranked_retriever
130
+ name: reranked_product_search
131
+ description: |
132
+ Search for products with reranking enabled.
133
+ Retrieves 50 candidates and reranks them using FlashRank
134
+ with the default model (ms-marco-MiniLM-L-12-v2).
135
+
136
+ # Tool 3: Vector search with fast reranking
137
+ fast_reranked_tool: &fast_reranked_tool
138
+ name: fast_reranked_search
139
+ function:
140
+ type: factory
141
+ name: dao_ai.tools.create_vector_search_tool
142
+ args:
143
+ retriever: *fast_reranked_retriever
144
+ name: fast_reranked_search
145
+ description: |
146
+ Fast product search with lightweight reranking.
147
+ Retrieves 100 candidates, reranks with a fast model,
148
+ and returns the top 5 most relevant results.
149
+
150
+ # Tool 4: Vector search with accurate reranking
151
+ accurate_reranked_tool: &accurate_reranked_tool
152
+ name: accurate_product_search
153
+ function:
154
+ type: factory
155
+ name: dao_ai.tools.create_vector_search_tool
156
+ args:
157
+ retriever: *accurate_reranked_retriever
158
+ name: accurate_product_search
159
+ description: |
160
+ High-accuracy product search combining hybrid search and reranking.
161
+ Uses HYBRID query type for better initial recall, then reranks
162
+ using a more accurate model to return the best 10 results.
163
+
164
+ agents:
165
+ # Agent 1: Uses standard search (no reranking)
166
+ standard_search_agent: &standard_search_agent
167
+ name: standard_search
168
+ description: "Product search agent using standard vector similarity"
169
+ model: *default_llm
170
+ tools:
171
+ - *standard_search_tool
172
+ prompt: |
173
+ You are a product search assistant. Use the standard_product_search tool
174
+ to find products based on customer queries. Provide clear, helpful responses.
175
+ handoff_prompt: |
176
+ Handles basic product searches using standard vector similarity.
177
+
178
+ # Agent 2: Uses reranking with defaults
179
+ reranked_search_agent: &reranked_search_agent
180
+ name: reranked_search
181
+ description: "Product search agent with reranking for improved accuracy"
182
+ model: *default_llm
183
+ tools:
184
+ - *default_reranked_tool
185
+ prompt: |
186
+ You are an enhanced product search assistant with reranking capabilities.
187
+ Use the reranked_product_search tool to find the most relevant products.
188
+ The results are reranked for better accuracy.
189
+ handoff_prompt: |
190
+ Handles product searches with reranking for improved result quality.
191
+
192
+ # Agent 3: Uses fast reranking
193
+ fast_search_agent: &fast_search_agent
194
+ name: fast_search
195
+ description: "Product search agent with fast reranking"
196
+ model: *default_llm
197
+ tools:
198
+ - *fast_reranked_tool
199
+ prompt: |
200
+ You are a fast product search assistant. Use the fast_reranked_search tool
201
+ to quickly find the most relevant products from a large candidate set.
202
+ handoff_prompt: |
203
+ Handles product searches with fast reranking for high-volume scenarios.
204
+
205
+ # Agent 4: Uses accurate reranking with hybrid search
206
+ accurate_search_agent: &accurate_search_agent
207
+ name: accurate_search
208
+ description: "Product search agent with hybrid search and accurate reranking"
209
+ model: *default_llm
210
+ tools:
211
+ - *accurate_reranked_tool
212
+ prompt: |
213
+ You are a high-accuracy product search assistant. Use the accurate_product_search
214
+ tool which combines hybrid search with reranking for the best possible results.
215
+ handoff_prompt: |
216
+ Handles product searches requiring highest accuracy using hybrid search and reranking.
217
+
218
+ app:
219
+ name: vector_search_with_reranking_example
220
+ description: "Demonstrates vector search with and without reranking"
221
+ log_level: INFO
222
+ registered_model:
223
+ schema: *retail_schema
224
+ name: vector_search_reranking_agent
225
+ endpoint_name: vector_search_reranking_agent
226
+ tags:
227
+ demo: reranking
228
+ feature: vector_search
229
+ permissions:
230
+ - principals: [users]
231
+ entitlements:
232
+ - CAN_QUERY
233
+ agents:
234
+ # Include all agents to demonstrate different reranking configurations
235
+ - *standard_search_agent # No reranking (baseline)
236
+ - *reranked_search_agent # Default reranking
237
+ - *fast_search_agent # Fast reranking
238
+ - *accurate_search_agent # Accurate reranking with hybrid
239
+ orchestration:
240
+ supervisor:
241
+ model: *default_llm
242
+
243
+ # ==============================================================================
244
+ # RERANKING BEST PRACTICES AND CONFIGURATION GUIDE
245
+ # ==============================================================================
246
+ #
247
+ # This example demonstrates 4 different search configurations:
248
+ #
249
+ # 1. Standard Search (no reranking) - standard_search_agent
250
+ # - Baseline vector similarity search
251
+ # - Fast but may return less relevant results
252
+ # - Use when: Speed is critical, simple queries
253
+ #
254
+ # 2. Default Reranking - reranked_search_agent
255
+ # - Uses rerank: true for automatic configuration
256
+ # - Retrieves 50 candidates, reranks with ms-marco-MiniLM-L-12-v2
257
+ # - Good balance of speed and accuracy
258
+ # - Use when: Need better results than standard search
259
+ #
260
+ # 3. Fast Reranking - fast_search_agent
261
+ # - Uses lighter model (ms-marco-MiniLM-L-6-v2)
262
+ # - Retrieves 100 candidates, returns top 5
263
+ # - Faster than default but still improves results
264
+ # - Use when: High volume, need speed with some accuracy boost
265
+ #
266
+ # 4. Accurate Reranking - accurate_search_agent
267
+ # - Combines HYBRID search with reranking
268
+ # - Best possible result quality
269
+ # - Higher latency (~200-500ms)
270
+ # - Use when: Quality is paramount (customer-facing, critical queries)
271
+ #
272
+ # Configuration Pattern:
273
+ # retriever:
274
+ # vector_store: *your_vector_store
275
+ # search_parameters:
276
+ # num_results: 50 # Retrieve 2-10x more than needed
277
+ # query_type: ANN # or HYBRID for better recall
278
+ # rerank: # Optional reranking
279
+ # model: ms-marco-MiniLM-L-12-v2 # Choose model
280
+ # top_n: 10 # Final count after reranking
281
+ # cache_dir: /tmp/flashrank_cache
282
+ #
283
+ # Performance Tips:
284
+ # - First request downloads model (~50MB) - allow extra time
285
+ # - Subsequent requests are fast (100-500ms)
286
+ # - More candidates = better reranking but slower
287
+ # - Cache directory should be on fast storage
288
+ #
289
+ # Model Selection:
290
+ # - ms-marco-TinyBERT-L-2-v2: Fastest, basic accuracy
291
+ # - ms-marco-MiniLM-L-6-v2: Fast, good accuracy
292
+ # - ms-marco-MiniLM-L-12-v2: Balanced (default)
293
+ # - rank-T5-flan: Most accurate, slowest
@@ -108,12 +108,12 @@ resources:
108
108
  # Define Unity Catalog tables used by the system
109
109
  tables:
110
110
  # Product catalog table
111
- product_table: &product_table
111
+ product_table:
112
112
  schema: *retail_schema # Reference to schema defined above
113
113
  name: products # Table name
114
114
 
115
115
  # Inventory tracking table
116
- inventory_table: &inventory_table
116
+ inventory_table:
117
117
  schema: *retail_schema
118
118
  name: inventory
119
119
 
@@ -123,7 +123,7 @@ resources:
123
123
  # Define Unity Catalog volumes for file storage
124
124
  volumes:
125
125
  # Volume for retail AI assets and files
126
- retail_volume: &retail_volume
126
+ retail_volume:
127
127
  schema: *retail_schema
128
128
  name: retail_ai
129
129
 
@@ -162,88 +162,11 @@ resources:
162
162
  # Define SQL warehouses for query execution
163
163
  warehouses:
164
164
  # Shared warehouse for general query execution
165
- shared_endpoint_warehouse: &shared_endpoint_warehouse
165
+ shared_endpoint_warehouse:
166
166
  name: "Shared Endpoint Warehouse" # Human-readable name
167
167
  description: "A warehouse for shared endpoints" # Description
168
168
  warehouse_id: 148ccb90800933a1 # Databricks warehouse ID
169
169
 
170
- # ---------------------------------------------------------------------------
171
- # DATABASES
172
- # ---------------------------------------------------------------------------
173
- # Configure external databases (e.g., PostgreSQL for checkpoints and memory)
174
- databases:
175
- # PostgreSQL database for agent memory and checkpoints
176
- retail_database: &retail_database
177
- name: "retail-consumer-goods"
178
- description: "Database for agent memory and checkpoints"
179
-
180
- # Database connection parameters
181
- # These can be set via environment variables or Databricks secrets
182
- host:
183
- default_value: localhost
184
- options:
185
- - env: PGHOST # Environment variable
186
- - scope: retail_ai # Databricks secret scope
187
- secret: PGHOST # Secret name
188
- port:
189
- default_value: 5432
190
- options:
191
- - env: PGPORT
192
- - scope: retail_ai
193
- secret: PGPORT
194
- database:
195
- default_value: databricks_postgres # Default database name
196
- options:
197
- - env: PGDATABASE
198
- - scope: retail_ai
199
- secret: PGDATABASE
200
-
201
-
202
- # Traditional PostgreSQL authentication (commented out)
203
- # Uncomment and configure if using direct database auth instead of OAuth2
204
- # user:
205
- # default_value: postgres
206
- # options:
207
- # - env: PGUSER
208
- # - scope: retail_ai
209
- # secret: PGUSER
210
- # password:
211
- # default_value: postgres
212
- # options:
213
- # - env: PGPASSWORD
214
- # - scope: retail_ai
215
- # secret: PGPASSWORD
216
-
217
- # OAuth2 client credentials for Databricks authentication
218
- # Used to generate access tokens for database connections
219
- # This approach is recommended for Databricks environments
220
- client_id:
221
- options:
222
- - env: RETAIL_AI_DATABRICKS_CLIENT_ID # Service principal client ID
223
- - scope: retail_ai
224
- secret: RETAIL_AI_DATABRICKS_CLIENT_ID
225
- client_secret:
226
- options:
227
- - env: RETAIL_AI_DATABRICKS_CLIENT_SECRET # Service principal secret
228
- - scope: retail_ai
229
- secret: RETAIL_AI_DATABRICKS_CLIENT_SECRET
230
- workspace_host:
231
- options:
232
- - env: RETAIL_AI_DATABRICKS_HOST # Databricks workspace URL
233
- - scope: retail_ai
234
- secret: RETAIL_AI_DATABRICKS_HOST
235
-
236
- # Optional: Additional PostgreSQL connection parameters
237
- # Uncomment and modify as needed for your specific setup
238
- # connection_kwargs: # Additional connection parameters
239
- # autocommit: True # Enable autocommit mode
240
- # prepare_threshold: 0 # Disable prepared statements
241
- # sslmode: require # Require SSL connection
242
- # connect_timeout: 10 # Connection timeout in seconds
243
-
244
- # Optional: Connection pool configuration
245
- # max_pool_size: 20 # Maximum connections in pool
246
- # timeout: 5 # Connection timeout in seconds
247
170
 
248
171
  # =============================================================================
249
172
  # RETRIEVERS CONFIGURATION
@@ -264,9 +187,15 @@ retrievers:
264
187
  - class_cd
265
188
  - description
266
189
  search_parameters: # Search configuration
267
- num_results: 10 # Maximum number of results to return
190
+ num_results: 50 # Maximum number of results to return
268
191
  filters: {} # Additional filters (empty in this case)
269
192
  query_type: ANN # Approximate Nearest Neighbor search
193
+ rerank:
194
+ top_n: 10
195
+ columns:
196
+ - merchandise_class
197
+ - product_name
198
+ - brand_name
270
199
 
271
200
  # =============================================================================
272
201
  # TOOLS CONFIGURATION
@@ -310,7 +239,7 @@ tools:
310
239
  args: {} # No arguments needed
311
240
 
312
241
  # Vector search tool for product similarity
313
- vector_search_tool: &vector_search_tool
242
+ find_product_details_by_description_tool: &find_product_details_by_description_tool
314
243
  name: vector_search
315
244
  function:
316
245
  type: factory
@@ -318,17 +247,17 @@ tools:
318
247
  args:
319
248
  retriever: *products_retriever # Reference to retriever config
320
249
  name: product_vector_search_tool # Tool instance name
321
- description: "Search for products using vector search" # Tool description
250
+ description: "Search for products by description" # Tool description
322
251
 
323
252
  # Product details search by description
324
- find_product_details_by_description_tool:
325
- &find_product_details_by_description_tool
326
- name: find_product_details_by_description
327
- function:
328
- type: factory
329
- name: hardware_store.tools.find_product_details_by_description_tool
330
- args:
331
- retriever: *products_retriever # Uses product retriever for search
253
+ # find_product_details_by_description_tool:
254
+ # &find_product_details_by_description_tool
255
+ # name: find_product_details_by_description
256
+ # function:
257
+ # type: factory
258
+ # name: hardware_store.tools.find_product_details_by_description_tool
259
+ # args:
260
+ # retriever: *products_retriever # Uses product retriever for search
332
261
 
333
262
  # ---------------------------------------------------------------------------
334
263
  # UNITY CATALOG TOOLS
@@ -361,20 +290,6 @@ tools:
361
290
  type: unity_catalog
362
291
  <<: *find_inventory_by_upc
363
292
 
364
- # Store-specific inventory tools using Unity Catalog functions
365
- find_store_inventory_by_sku_uc_tool: &find_store_inventory_by_sku_uc_tool
366
- name: find_store_inventory_by_sku_uc
367
- function:
368
- type: unity_catalog
369
- <<: *find_store_inventory_by_sku
370
-
371
- find_store_inventory_by_upc_uc_tool: &find_store_inventory_by_upc_uc_tool
372
- name: find_store_inventory_by_upc_uc
373
- function:
374
- type: unity_catalog
375
- <<: *find_store_inventory_by_upc
376
-
377
-
378
293
 
379
294
  # =============================================================================
380
295
  # GUARDRAILS CONFIGURATION
@@ -408,26 +323,6 @@ guardrails:
408
323
  ### Response:
409
324
  {outputs}
410
325
 
411
- # =============================================================================
412
- # MEMORY CONFIGURATION
413
- # =============================================================================
414
- # Configure persistent storage for agent conversations and context
415
-
416
- memory: &memory
417
- # Conversation checkpointing for state persistence
418
- checkpointer:
419
- name: default_checkpointer # Checkpointer identifier
420
- type: memory # Storage type (postgres or memory)
421
- #database: *retail_database # Reference to database configuration
422
-
423
- # Long-term memory store for agent context
424
- store:
425
- name: default_store # Store identifier
426
- type: memory # Store type (memory or postgres)
427
- embedding_model: *embedding_model # Model for semantic memory
428
- dims: 1536 # Embedding dimensions
429
- # database: *retail_database # Database for persistence (if needed)
430
-
431
326
  # =============================================================================
432
327
  # AGENTS CONFIGURATION
433
328
  # =============================================================================
@@ -863,32 +758,7 @@ agents:
863
758
  Questions asking for product suggestions, recommendations, or "best" products for specific needs
864
759
  Example: "What's the best drill for home use?" or "Recommend me a good beginner woodworking kit"
865
760
 
866
- process_image: &process_image
867
- name: process_image
868
- description: "Image analysis specialist for extracting product information from images, including summaries, product names, and UPC codes"
869
- model: *reasoning_llm
870
- tools: []
871
- prompt: |
872
- ### Task Description
873
-
874
- Analyze the provided product image and extract the following specific information into a structured format:
875
-
876
- - Summary: Provide a concise summary (1-3 sentences) describing what is shown in the image. Focus on describing the product(s), packaging, and any prominent visual elements.
877
- - Product Names: Extract the exact product name(s) as they appear on the packaging. Include brand names and specific product variants if visible. List each distinct product separately.
878
- - UPC Codes: Identify and extract any UPC (Universal Product Code) barcodes visible in the image. These typically appear as 12-digit numbers beneath a barcode. Provide the complete numeric sequence without dashes or spaces.
879
-
880
- ### Important Guidelines
881
-
882
- - Extract information ONLY if it is clearly visible in the image
883
- - For product names, use the EXACT text as it appears on packaging
884
- - For UPC codes, verify all digits are clearly legible before extraction
885
- - If any requested information is not visible or legible in the image, omit it entirely rather than guessing
886
- - Do not provide placeholder values, assumptions, or partial information
887
- - Format all extracted information according to the specified output structure
888
-
889
- ### Response Guidelines
890
- If any field cannot be determined from the image, exclude it from the output rather than providing an empty value.
891
-
761
+
892
762
  # =============================================================================
893
763
  # APPLICATION CONFIGURATION
894
764
  # =============================================================================
@@ -919,7 +789,6 @@ app:
919
789
  - *recommendation # Product recommendation agent
920
790
  - *general # General purpose agent
921
791
  orchestration: # Agent orchestration configuration
922
- #memory: *memory # Reference to memory configuration
923
792
  supervisor: # Supervisor orchestration pattern
924
793
  model: *tool_calling_llm # LLM for routing decisions
925
794
  message_hooks:
@@ -60,6 +60,7 @@ dependencies:
60
60
  - gunicorn==23.0.0
61
61
  # Search and tools
62
62
  - duckduckgo-search==8.0.4
63
+ - flashrank==0.2.8
63
64
  - litellm==1.75.9
64
65
  # Utilities
65
66
  - loguru==0.7.3
@@ -4,11 +4,11 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "dao-ai"
7
- version = "0.0.27"
7
+ version = "0.0.29"
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" }
11
- requires-python = ">=3.12"
11
+ requires-python = ">=3.11"
12
12
  authors = [
13
13
  { name = "Nate Fleming", email = "nate.fleming@databricks.com" },
14
14
  { name = "Nate Fleming", email = "nate.fleming@gmail.com" },
@@ -35,6 +35,7 @@ classifiers = [
35
35
  "License :: OSI Approved :: MIT License",
36
36
  "Operating System :: OS Independent",
37
37
  "Programming Language :: Python :: 3",
38
+ "Programming Language :: Python :: 3.11",
38
39
  "Programming Language :: Python :: 3.12",
39
40
  "Programming Language :: Python :: 3.13",
40
41
  "Topic :: Scientific/Engineering :: Artificial Intelligence",
@@ -47,6 +48,7 @@ dependencies = [
47
48
  "databricks-mcp>=0.3.0",
48
49
  "databricks-sdk[openai]>=0.67.0",
49
50
  "duckduckgo-search>=8.0.2",
51
+ "flashrank>=0.2.8",
50
52
  "gepa>=0.0.17",
51
53
  "grandalf>=0.8",
52
54
  "langchain>=0.3.27",
@@ -102,7 +104,7 @@ test = [
102
104
  "pytest-mock>=3.10.0",
103
105
  ]
104
106
  databricks = [
105
- "databricks-vectorsearch>=0.56",
107
+ "databricks-vectorsearch>=0.63",
106
108
  "pyspark>=3.5.0",
107
109
  "databricks-connect>=15.0.0",
108
110
  ]
@@ -165,7 +167,7 @@ exclude = [
165
167
 
166
168
  [tool.ruff]
167
169
  # Enable the Ruff formatter
168
- target-version = "py312" # Specify your Python version
170
+ target-version = "py311" # Minimum supported Python version
169
171
  line-length = 88 # Same as Black's default
170
172
  indent-width = 4
171
173