dao-ai 0.0.18__tar.gz → 0.0.19__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dao_ai-0.0.18 → dao_ai-0.0.19}/PKG-INFO +8 -8
- dao_ai-0.0.19/config/examples/deep_research.yaml +413 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/config/hardware_store/supervisor.yaml +1 -1
- {dao_ai-0.0.18 → dao_ai-0.0.19}/config/hardware_store/supervisor_postgres.yaml +1 -1
- {dao_ai-0.0.18 → dao_ai-0.0.19}/config/quick_serve_restaurant/quick-serve-restaurant.yaml +1 -1
- {dao_ai-0.0.18 → dao_ai-0.0.19}/examples/hardware_store/examples.yaml +22 -2
- {dao_ai-0.0.18 → dao_ai-0.0.19}/notebooks/05_agent_as_code_driver.py +37 -2
- {dao_ai-0.0.18 → dao_ai-0.0.19}/notebooks/06_run_evaluation.py +6 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/notebooks/08_run_examples.py +39 -9
- {dao_ai-0.0.18 → dao_ai-0.0.19}/pyproject.toml +8 -8
- {dao_ai-0.0.18 → dao_ai-0.0.19}/requirements.txt +44 -13
- {dao_ai-0.0.18 → dao_ai-0.0.19}/schemas/model_config_schema.json +92 -8
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/config.py +69 -12
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/graph.py +4 -4
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/memory/core.py +2 -2
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/memory/postgres.py +134 -2
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/models.py +89 -48
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/providers/databricks.py +3 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/dao_ai/test_databricks.py +8 -8
- dao_ai-0.0.19/tests/dao_ai/test_inference_integration.py +406 -0
- dao_ai-0.0.19/tests/dao_ai/test_postgres_integration.py +266 -0
- dao_ai-0.0.18/config/examples/deep_research.yaml +0 -237
- {dao_ai-0.0.18 → dao_ai-0.0.19}/.gitignore +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/.python-version +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/CHANGELOG.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/CONTRIBUTING.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/LICENSE +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/Makefile +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/README.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/Makefile +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/REFACTORING_SUMMARY.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/base-environment-serverless.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/demo_docs/BRAND_REP_DEMO_SUMMARY.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/demo_docs/demo_scripts/brand_rep_product_education_demo.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/demo_docs/demo_scripts/store_associate_ai_assistant_demo.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/demo_docs/demo_scripts/store_manager_alert_response_demo.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/development_workflows.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/.gitkeep +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/Makefile +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/agent_implementation.mmd +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/agent_tools_architecture.mmd +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/agents-and-tools/agent-troubleshooting.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-best-practices.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-development-patterns.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-performance.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-quickstart.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/agents-and-tools/ai-agents.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/agents-and-tools/overview.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/agents-and-tools/references/agent-reference.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/agents-and-tools/references/tools-reference.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/applications/streamlit-app.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/architecture/overview.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/architecture.mmd +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/architecture.png +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/customer_preparation_guide.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/databricks_integration.mmd +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/deployment/production.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/development/contributing.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/employee_tools_guide.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/getting-started/installation.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/getting-started/mkdocs-quickstart.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/getting-started/quick-start.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/index.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/mkdocs.yml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/scenario_1_architecture.mmd +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/scenario_1_flow.mmd +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/setup-docs.sh +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/task_assignment_workflow_guide.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/docs/tools/overview.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/examples/customer_preparation_workflow.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/examples/task_assignment_workflow.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/load-env.sh +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/CSS_REFACTORING_SUMMARY.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/DEMO_CONTROLS_RESTORED.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/DEMO_IMPLEMENTATION_SUMMARY.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/DEMO_QUICK_START.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/Dockerfile +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/HOMEPAGE_README.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/Makefile +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/README.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/app.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/app.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/backup_homepage.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/chat.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/enhanced_charts.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/enhanced_navigation.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/associate_homepage.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/dashboard_tab.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/my_tasks_tab.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/performance_tab.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/products_tab.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/schedule_tab.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/chat_integration.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/kpi_summary.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/notifications.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/homepage.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/alerts_tab.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/analytics_tab.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/dashboard_tab.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/demo_alerts.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/inventory_tab.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/manager_homepage.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/operations_tab.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/team_tab.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/ai_insights_tab.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/executive_dashboard_tab.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/geographical_analysis_tab.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/performance_metrics_tab.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/strategic_insights_tab.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/vp_homepage.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/metrics.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/navigation.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/oldhomepage.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/components/styles.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/config.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/demo_docs/BRAND_REP_DEMO_SUMMARY.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/demo_docs/comprehensive_demo_script.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/brand_rep_product_education_demo.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/store_associate_ai_assistant_demo.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/store_manager_alert_response_demo.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/dev/README.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/dev/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/dev/components/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/dev/components/dashboard_card.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/dev/demo_alerts.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/dev/examples/sample_dashboard.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/pages/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/pages/component_showcase.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/pages/dev_playground.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/pages/playground.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/pages_wip/daily_operations.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/pages_wip/inventory.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/pages_wip/my_schedule.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/pages_wip/my_tasks.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/pages_wip/orders.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/pages_wip/products_promotions.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/pages_wip/staff.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/pages_wip/team_insights.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/pyproject.toml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/requirements.txt +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/static/css/style.css +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/styles/README.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/styles/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/styles/base.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/styles/components.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/styles/dashboard.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/styles/homepage.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/styles/theme.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/test_vip_notification.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/tests/test_calculations.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/utils/config.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/utils/database.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/utils/model_serving.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app/utils/store_context.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/Makefile +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/README.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/app.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_components.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_components_enhanced.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_styles.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin_styles.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/TAILADMIN_README.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/homepage_tailadmin.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/tailadmin_demo.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/tailadmin_implementation_guide.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/test_vp_dashboard.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/vp_dashboard_enhanced.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/vp_dashboard_tailadmin.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/components_demo.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/homepage.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/implementation_guide.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/vp_dashboard_clean.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/vp_dashboard_enhanced.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pyproject.toml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/tests/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/streamlit_store_app_tailadmin/tests/test_imports.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/tests/.gitkeep +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/tests/README.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/tests/images/doritos_upc.png +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/tests/images/lays_upc.png +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/tests/manager_demo_script.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/tests/notebook_vector_search_test.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/apps/dais2025/store-app/tests/test_vector_search_integration.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/config/dais2025/model_config_dais.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/config/examples/executive_assistant.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/config/examples/genie.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/config/examples/genie_and_vector_search.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/config/examples/human_in_the_loop.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/config/examples/jira.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/config/examples/mcp.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/config/examples/minimal.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/config/examples/reservations.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/config/hardware_store/swarm.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/config/quick_serve_restaurant/.gitkeep +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/appointments.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/appointments_data.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/brand_rep_demo_data.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/brand_rep_demo_queries.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/brand_rep_demo_tables.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/brand_rep_demo_validation.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/customers.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/customers_data.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/dim_stores.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/dim_stores_data.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/employee_performance.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/employee_performance_data.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/employee_tasks.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/employee_tasks_data.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/inventory.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/inventory_data.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/managers.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/managers_data.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/product_data.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/products.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/dais2025/task_assignments.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/hardware_store/inventory.snappy.parquet +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/hardware_store/inventory.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/hardware_store/products.snappy.parquet +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/hardware_store/products.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/quick_serve_restaurant/.gitkeep +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/quick_serve_restaurant/fulfil_item_orders.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/quick_serve_restaurant/items_description.csv +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/quick_serve_restaurant/items_description.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/quick_serve_restaurant/items_raw.csv +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/quick_serve_restaurant/items_raw.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/quick_serve_restaurant/orders_raw.csv +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/data/quick_serve_restaurant/orders_raw.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/databricks.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/docs/genie.png +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/docs/hardware_store/README.md +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/docs/hardware_store/retail_supervisor.png +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/docs/hardware_store/retail_swarm.png +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/docs/quick_serve_restaurant/.gitkeep +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/docs/quick_serve_restaurant/quick-serve-restaurant.png +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/environment.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/examples/dais2025/examples.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/examples/deep_research/examples.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/examples/executive_assistant/examples.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/examples/quick_serve_restaurant/.gitkeep +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/examples/quick_serve_restaurant/examples.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/dais2025/extract_store_numbers.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/dais2025/find_inventory_by_sku.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/dais2025/find_inventory_by_upc.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/dais2025/find_product_by_sku.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/dais2025/find_product_by_upc.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/dais2025/find_store_by_number.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/dais2025/find_store_inventory_by_sku.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/dais2025/find_store_inventory_by_upc.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/hardware_store/find_inventory_by_sku.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/hardware_store/find_inventory_by_upc.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/hardware_store/find_product_by_sku.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/hardware_store/find_product_by_upc.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/hardware_store/find_store_inventory_by_sku.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/hardware_store/find_store_inventory_by_upc.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/quick_serve_restaurant/.gitkeep +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/quick_serve_restaurant/insert_coffee_order.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/quick_serve_restaurant/lookup_items_by_descriptions.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/quick_serve_restaurant/match_historical_item_order_by_date.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/functions/quick_serve_restaurant/match_item_by_description_and_price.sql +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/notebooks/01_ingest_and_transform.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/notebooks/02_provision_vector_search.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/notebooks/03_generate_evaluation_data.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/notebooks/04_unity_catalog_tools.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/notebooks/09_evaluate_inferences.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/notebooks/99_scratchpad.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/notebooks/INVESTech.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/schemas/bundle_config_schema.json +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dais2025/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dais2025/models.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dais2025/tools/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dais2025/tools/customer.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dais2025/tools/employee.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dais2025/tools/executive.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dais2025/tools/genie.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dais2025/tools/inventory.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dais2025/tools/models.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dais2025/tools/store.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/agent_as_code.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/catalog.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/chat_models.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/cli.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/guardrails.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/hooks/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/hooks/core.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/memory/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/memory/base.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/messages.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/nodes.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/prompts.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/providers/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/providers/base.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/state.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/tools/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/tools/agent.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/tools/core.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/tools/genie.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/tools/human_in_the_loop.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/tools/mcp.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/tools/python.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/tools/time.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/tools/unity_catalog.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/tools/vector_search.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/types.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/utils.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/dao_ai/vector_search.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/hardware_store/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/hardware_store/hooks.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/hardware_store/tools.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/quick_serve_restaurant/.gitkeep +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/quick_serve_restaurant/__init__.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/src/quick_serve_restaurant/tools.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/config/test_model_config.yaml +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/conftest.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/dao_ai/test_catalog.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/dao_ai/test_chat_history.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/dao_ai/test_config.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/dao_ai/test_function_parsing.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/dao_ai/test_hooks.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/dao_ai/test_inference.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/dao_ai/test_mcp.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/dao_ai/test_messages.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/dao_ai/test_models.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/dao_ai/test_state.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/dao_ai/test_summarization_inference.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/dao_ai/test_tools.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/dao_ai/test_types.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/dao_ai/test_utils.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/dao_ai/test_vector_search.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/dao_ai/weather_server_mcp.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/hardware_store/.gitkeep +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/hardware_store/test_graph.py +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/images/doritos_upc.png +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/tests/images/lays_upc.png +0 -0
- {dao_ai-0.0.18 → dao_ai-0.0.19}/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.
|
|
3
|
+
Version: 0.0.19
|
|
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
|
|
@@ -24,22 +24,22 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
|
24
24
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
25
25
|
Classifier: Topic :: System :: Distributed Computing
|
|
26
26
|
Requires-Python: >=3.12
|
|
27
|
-
Requires-Dist: databricks-agents>=1.
|
|
28
|
-
Requires-Dist: databricks-langchain>=0.
|
|
29
|
-
Requires-Dist: databricks-sdk[openai]>=0.
|
|
27
|
+
Requires-Dist: databricks-agents>=1.6.0
|
|
28
|
+
Requires-Dist: databricks-langchain>=0.8.0
|
|
29
|
+
Requires-Dist: databricks-sdk[openai]>=0.66.0
|
|
30
30
|
Requires-Dist: duckduckgo-search>=8.0.2
|
|
31
31
|
Requires-Dist: grandalf>=0.8
|
|
32
|
-
Requires-Dist: langchain-mcp-adapters>=0.1.
|
|
32
|
+
Requires-Dist: langchain-mcp-adapters>=0.1.10
|
|
33
33
|
Requires-Dist: langchain-tavily>=0.2.11
|
|
34
34
|
Requires-Dist: langchain>=0.3.27
|
|
35
35
|
Requires-Dist: langgraph-checkpoint-postgres>=2.0.23
|
|
36
36
|
Requires-Dist: langgraph-supervisor>=0.0.29
|
|
37
37
|
Requires-Dist: langgraph-swarm>=0.0.14
|
|
38
|
-
Requires-Dist: langgraph>=0.6.
|
|
38
|
+
Requires-Dist: langgraph>=0.6.7
|
|
39
39
|
Requires-Dist: langmem>=0.0.29
|
|
40
40
|
Requires-Dist: loguru>=0.7.3
|
|
41
|
-
Requires-Dist: mcp>=1.
|
|
42
|
-
Requires-Dist: mlflow>=3.
|
|
41
|
+
Requires-Dist: mcp>=1.14.1
|
|
42
|
+
Requires-Dist: mlflow>=3.4.0
|
|
43
43
|
Requires-Dist: nest-asyncio>=1.6.0
|
|
44
44
|
Requires-Dist: openevals>=0.0.19
|
|
45
45
|
Requires-Dist: openpyxl>=3.1.5
|
|
@@ -0,0 +1,413 @@
|
|
|
1
|
+
# yaml-language-server: $schema=../../schemas/model_config_schema.json
|
|
2
|
+
|
|
3
|
+
variables:
|
|
4
|
+
tavily_search_key: &tavily_search_key
|
|
5
|
+
options:
|
|
6
|
+
- env: TAVILY_API_KEY
|
|
7
|
+
- scope: retail_consumer_goods
|
|
8
|
+
secret: TAVILY_API_KEY
|
|
9
|
+
|
|
10
|
+
schemas:
|
|
11
|
+
executive_research_schema: &executive_research_schema
|
|
12
|
+
catalog_name: retail_consumer_goods
|
|
13
|
+
schema_name: store_ops
|
|
14
|
+
|
|
15
|
+
resources:
|
|
16
|
+
llms:
|
|
17
|
+
default_llm: &default_llm
|
|
18
|
+
name: databricks-claude-3-7-sonnet
|
|
19
|
+
temperature: 0.1
|
|
20
|
+
max_tokens: 16384
|
|
21
|
+
|
|
22
|
+
fast_llm: &fast_llm
|
|
23
|
+
name: databricks-meta-llama-3-1-8b-instruct
|
|
24
|
+
temperature: 0.1
|
|
25
|
+
max_tokens: 8192
|
|
26
|
+
|
|
27
|
+
tool_calling_llm: &tool_calling_llm
|
|
28
|
+
name: databricks-claude-3-7-sonnet
|
|
29
|
+
temperature: 0.1
|
|
30
|
+
max_tokens: 16384
|
|
31
|
+
fallbacks:
|
|
32
|
+
- databricks-meta-llama-3-3-70b-instruct
|
|
33
|
+
|
|
34
|
+
reasoning_llm: &reasoning_llm
|
|
35
|
+
name: databricks-claude-3-7-sonnet
|
|
36
|
+
temperature: 0.2
|
|
37
|
+
max_tokens: 16384
|
|
38
|
+
|
|
39
|
+
deep_reasoning_llm: &deep_reasoning_llm
|
|
40
|
+
name: databricks-claude-sonnet-4
|
|
41
|
+
temperature: 0.1
|
|
42
|
+
max_tokens: 32768
|
|
43
|
+
fallbacks:
|
|
44
|
+
- databricks-claude-3-7-sonnet
|
|
45
|
+
|
|
46
|
+
tables:
|
|
47
|
+
employee_performance:
|
|
48
|
+
schema: *executive_research_schema
|
|
49
|
+
name: employee_performance
|
|
50
|
+
|
|
51
|
+
products:
|
|
52
|
+
schema: *executive_research_schema
|
|
53
|
+
name: products
|
|
54
|
+
|
|
55
|
+
inventory:
|
|
56
|
+
schema: *executive_research_schema
|
|
57
|
+
name: inventory
|
|
58
|
+
|
|
59
|
+
customers:
|
|
60
|
+
schema: *executive_research_schema
|
|
61
|
+
name: customers
|
|
62
|
+
|
|
63
|
+
managers:
|
|
64
|
+
schema: *executive_research_schema
|
|
65
|
+
name: managers
|
|
66
|
+
|
|
67
|
+
employee_tasks:
|
|
68
|
+
schema: *executive_research_schema
|
|
69
|
+
name: employee_tasks
|
|
70
|
+
|
|
71
|
+
appointments:
|
|
72
|
+
schema: *executive_research_schema
|
|
73
|
+
name: appointments
|
|
74
|
+
|
|
75
|
+
evaluation:
|
|
76
|
+
schema: *executive_research_schema
|
|
77
|
+
name: evaluation
|
|
78
|
+
|
|
79
|
+
functions:
|
|
80
|
+
find_inventory_by_sku: &find_inventory_by_sku
|
|
81
|
+
schema: *executive_research_schema
|
|
82
|
+
name: find_inventory_by_sku
|
|
83
|
+
|
|
84
|
+
find_inventory_by_upc: &find_inventory_by_upc
|
|
85
|
+
schema: *executive_research_schema
|
|
86
|
+
name: find_inventory_by_upc
|
|
87
|
+
|
|
88
|
+
find_product_by_sku: &find_product_by_sku
|
|
89
|
+
schema: *executive_research_schema
|
|
90
|
+
name: find_product_by_sku
|
|
91
|
+
|
|
92
|
+
find_product_by_upc: &find_product_by_upc
|
|
93
|
+
schema: *executive_research_schema
|
|
94
|
+
name: find_product_by_upc
|
|
95
|
+
|
|
96
|
+
find_store_by_number: &find_store_by_number
|
|
97
|
+
schema: *executive_research_schema
|
|
98
|
+
name: find_store_by_number
|
|
99
|
+
|
|
100
|
+
find_store_inventory_by_sku: &find_store_inventory_by_sku
|
|
101
|
+
schema: *executive_research_schema
|
|
102
|
+
name: find_store_inventory_by_sku
|
|
103
|
+
|
|
104
|
+
find_store_inventory_by_upc: &find_store_inventory_by_upc
|
|
105
|
+
schema: *executive_research_schema
|
|
106
|
+
name: find_store_inventory_by_upc
|
|
107
|
+
|
|
108
|
+
genie_rooms:
|
|
109
|
+
executive_research_genie_room: &executive_research_genie_room
|
|
110
|
+
name: "Executive Research Genie Room"
|
|
111
|
+
description: "A specialized room for deep executive research and analysis"
|
|
112
|
+
space_id: 01f05dd06c421ad6b522bf7a517cf6d2
|
|
113
|
+
|
|
114
|
+
tools:
|
|
115
|
+
executive_research_genie_tool: &executive_research_genie_tool
|
|
116
|
+
name: executive_research_genie_tool
|
|
117
|
+
function:
|
|
118
|
+
type: factory
|
|
119
|
+
name: dao_ai.tools.create_genie_tool
|
|
120
|
+
args:
|
|
121
|
+
name: executive_research_genie_tool
|
|
122
|
+
description: Query the data warehouse for comprehensive business metrics including customer KPIs, financial performance, operational data, employee metrics, inventory levels, and sales data. Optimized for deep analytical research and multi-dimensional analysis.
|
|
123
|
+
genie_room: *executive_research_genie_room
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
agents:
|
|
127
|
+
research_lead: &research_lead
|
|
128
|
+
name: research_lead
|
|
129
|
+
description: "Research Coordinator and Executive Interface Specialist"
|
|
130
|
+
model: *default_llm
|
|
131
|
+
tools:
|
|
132
|
+
- *executive_research_genie_tool
|
|
133
|
+
prompt: |
|
|
134
|
+
You are the Research Coordinator serving as the primary interface between executives and the deep research team. Your role is to understand executive inquiries, develop comprehensive research strategies, and orchestrate the team of specialists to deliver thorough analysis and strategic recommendations.
|
|
135
|
+
|
|
136
|
+
## Your Responsibilities:
|
|
137
|
+
- **Inquiry Assessment**: Understand the executive's specific research needs and context
|
|
138
|
+
- **Research Planning**: Develop comprehensive research strategies across all domains
|
|
139
|
+
- **Team Coordination**: Direct specialists based on research requirements
|
|
140
|
+
- **Quality Assurance**: Ensure comprehensive coverage of all relevant aspects
|
|
141
|
+
- **Executive Communication**: Provide status updates and manage expectations
|
|
142
|
+
|
|
143
|
+
## Research Strategy Framework:
|
|
144
|
+
1. **Scope Definition**: Clarify research objectives and success criteria
|
|
145
|
+
2. **Domain Mapping**: Identify which specialist teams are needed (KPI, market, financial, operations)
|
|
146
|
+
3. **Sequencing**: Determine optimal research workflow and dependencies
|
|
147
|
+
4. **Timeline Planning**: Establish research milestones and deadlines
|
|
148
|
+
5. **Quality Standards**: Set expectations for depth and comprehensiveness
|
|
149
|
+
|
|
150
|
+
## When to Handoff:
|
|
151
|
+
- **Always start** with **kpi_analyst** for foundational data analysis
|
|
152
|
+
- Hand off to **market_intelligence** when external market context is critical
|
|
153
|
+
- Hand off to **financial_strategy** when financial modeling or ROI analysis is needed
|
|
154
|
+
- Hand off to **operations_expert** when operational improvements are in scope
|
|
155
|
+
- Coordinate with **strategy_synthesizer** to ensure all findings are integrated
|
|
156
|
+
|
|
157
|
+
## Communication Style:
|
|
158
|
+
- **Executive-Level**: Professional, strategic, and focused on business impact
|
|
159
|
+
- **Action-Oriented**: Clear next steps and deliverables
|
|
160
|
+
- **Comprehensive**: Consider all relevant business dimensions
|
|
161
|
+
- **Time-Conscious**: Respect executive time constraints while ensuring thoroughness
|
|
162
|
+
|
|
163
|
+
## Important Guidelines
|
|
164
|
+
- Limit Graph Recursion to 5 iterations.
|
|
165
|
+
- Run as many tools as you can concurrently
|
|
166
|
+
|
|
167
|
+
You serve as the intelligent orchestrator ensuring that complex executive research questions receive comprehensive, coordinated analysis from all relevant specialist teams.
|
|
168
|
+
handoff_prompt: |
|
|
169
|
+
Hand off to me when starting any new executive research inquiry, when research scope needs to be defined, when multiple specialist teams need coordination, or when ensuring comprehensive coverage across all business dimensions.
|
|
170
|
+
|
|
171
|
+
kpi_analyst: &kpi_analyst
|
|
172
|
+
name: kpi_analyst
|
|
173
|
+
description: "KPI Research and Data Analysis Specialist"
|
|
174
|
+
model: *reasoning_llm
|
|
175
|
+
tools:
|
|
176
|
+
- *executive_research_genie_tool
|
|
177
|
+
prompt: |
|
|
178
|
+
You are a KPI Research Specialist focused on comprehensive data analysis and performance metrics research. Your role is to conduct deep dives into business performance indicators and provide thorough analytical foundations for executive decision-making.
|
|
179
|
+
|
|
180
|
+
## Your Expertise:
|
|
181
|
+
- Customer metrics analysis (CAC, LTV, churn, retention, satisfaction, NPS)
|
|
182
|
+
- Financial KPIs (revenue, margins, profitability, cash flow, ROI)
|
|
183
|
+
- Operational metrics (inventory turnover, productivity, efficiency ratios)
|
|
184
|
+
- Market performance indicators and competitive benchmarks
|
|
185
|
+
- Statistical analysis and trend identification
|
|
186
|
+
|
|
187
|
+
## Research Methodology:
|
|
188
|
+
1. **Data Collection**: Query multiple data sources using genie tool
|
|
189
|
+
2. **Historical Analysis**: Examine 12+ month trends and seasonality
|
|
190
|
+
3. **Benchmarking**: Research industry standards and competitor performance
|
|
191
|
+
4. **Cross-Validation**: Verify findings across multiple data points
|
|
192
|
+
5. **Statistical Analysis**: Identify correlations and significance
|
|
193
|
+
|
|
194
|
+
## When to Handoff:
|
|
195
|
+
- Hand off to **market_intelligence** when you need industry context and competitive intelligence
|
|
196
|
+
- Hand off to **financial_strategy** when you discover financial anomalies requiring strategic analysis
|
|
197
|
+
- Hand off to **operations_expert** when operational inefficiencies are identified
|
|
198
|
+
- Hand off to **strategy_synthesizer** when your research is complete for final strategic synthesis
|
|
199
|
+
|
|
200
|
+
## Important Guidelines
|
|
201
|
+
- Limit Graph Recursion to 5 iterations.
|
|
202
|
+
- Run as many tools as you can concurrently
|
|
203
|
+
|
|
204
|
+
Always provide comprehensive data foundation with specific metrics, trends, and preliminary insights.
|
|
205
|
+
handoff_prompt: |
|
|
206
|
+
Hand off to me when foundational data analysis is needed, when KPI research is required, when historical trends need analysis, when performance metrics need benchmarking, or when starting comprehensive business analysis.
|
|
207
|
+
|
|
208
|
+
market_intelligence: &market_intelligence
|
|
209
|
+
name: market_intelligence
|
|
210
|
+
description: "Market Intelligence and Competitive Analysis Specialist"
|
|
211
|
+
model: *reasoning_llm
|
|
212
|
+
tools:
|
|
213
|
+
- *executive_research_genie_tool
|
|
214
|
+
prompt: |
|
|
215
|
+
You are a Market Intelligence Analyst specializing in external market research, competitive analysis, and industry benchmarking. You provide crucial context for internal performance by analyzing market conditions, competitor strategies, and industry trends.
|
|
216
|
+
|
|
217
|
+
## Your Expertise:
|
|
218
|
+
- Industry trend analysis and market dynamics
|
|
219
|
+
- Competitive intelligence and benchmarking
|
|
220
|
+
- Regulatory and compliance landscape analysis
|
|
221
|
+
- Market opportunity identification and sizing
|
|
222
|
+
- Customer behavior and preference trends
|
|
223
|
+
|
|
224
|
+
## Research Approach:
|
|
225
|
+
1. **Market Landscape**: Comprehensive industry analysis and trends
|
|
226
|
+
2. **Competitive Analysis**: Direct and indirect competitor performance
|
|
227
|
+
3. **Regulatory Environment**: Compliance requirements and regulatory changes
|
|
228
|
+
4. **Customer Insights**: Market research on customer preferences and behavior
|
|
229
|
+
5. **Opportunity Assessment**: Market gaps and growth opportunities
|
|
230
|
+
|
|
231
|
+
## When to Handoff:
|
|
232
|
+
- Hand off to **financial_strategy** when market insights need financial modeling
|
|
233
|
+
- Hand off to **operations_expert** when market trends impact operational strategy
|
|
234
|
+
- Hand off to **kpi_analyst** when you need internal data to validate market assumptions
|
|
235
|
+
- Hand off to **strategy_synthesizer** when market analysis is complete
|
|
236
|
+
|
|
237
|
+
## Important Guidelines
|
|
238
|
+
- Limit Graph Recursion to 5 iterations.
|
|
239
|
+
- Run as many tools as you can concurrently
|
|
240
|
+
|
|
241
|
+
Focus on external market dynamics and how they impact internal performance metrics.
|
|
242
|
+
handoff_prompt: |
|
|
243
|
+
Hand off to me when external market context is needed, when competitive intelligence is required, when industry benchmarking is necessary, when market trends analysis is needed, or when understanding market dynamics that impact business performance.
|
|
244
|
+
|
|
245
|
+
financial_strategy: &financial_strategy
|
|
246
|
+
name: financial_strategy
|
|
247
|
+
description: "Financial Strategy and ROI Analysis Specialist"
|
|
248
|
+
model: *deep_reasoning_llm
|
|
249
|
+
tools:
|
|
250
|
+
- *executive_research_genie_tool
|
|
251
|
+
prompt: |
|
|
252
|
+
You are a Financial Strategy Analyst specializing in financial modeling, ROI analysis, and strategic investment recommendations. You translate business insights into financial impact and provide comprehensive financial analysis for executive decision-making.
|
|
253
|
+
|
|
254
|
+
## Your Expertise:
|
|
255
|
+
- Financial modeling and forecasting
|
|
256
|
+
- ROI and cost-benefit analysis
|
|
257
|
+
- Investment prioritization and portfolio optimization
|
|
258
|
+
- Cash flow analysis and working capital management
|
|
259
|
+
- Financial risk assessment and mitigation
|
|
260
|
+
|
|
261
|
+
## Analysis Framework:
|
|
262
|
+
1. **Financial Impact Modeling**: Quantify the financial implications of strategic initiatives
|
|
263
|
+
2. **ROI Analysis**: Comprehensive return on investment calculations
|
|
264
|
+
3. **Cost-Benefit Assessment**: Detailed analysis of costs vs. expected benefits
|
|
265
|
+
4. **Risk-Adjusted Returns**: Financial projections incorporating risk factors
|
|
266
|
+
5. **Investment Prioritization**: Ranking initiatives by financial attractiveness
|
|
267
|
+
|
|
268
|
+
## When to Handoff:
|
|
269
|
+
- Hand off to **operations_expert** when financial analysis reveals operational improvement opportunities
|
|
270
|
+
- Hand off to **market_intelligence** when you need additional market context for financial projections
|
|
271
|
+
- Hand off to **kpi_analyst** when you need more granular performance data
|
|
272
|
+
- Hand off to **strategy_synthesizer** when financial analysis and recommendations are complete
|
|
273
|
+
|
|
274
|
+
## Important Guidelines
|
|
275
|
+
- Limit Graph Recursion to 5 iterations.
|
|
276
|
+
- Run as many tools as you can concurrently
|
|
277
|
+
|
|
278
|
+
Focus on translating insights into financial impact and strategic investment recommendations.
|
|
279
|
+
handoff_prompt: |
|
|
280
|
+
Hand off to me when financial analysis is required, when ROI modeling is needed, when cost-benefit analysis is necessary, when financial implications of strategies need evaluation, or when investment recommendations are required.
|
|
281
|
+
|
|
282
|
+
operations_expert: &operations_expert
|
|
283
|
+
name: operations_expert
|
|
284
|
+
description: "Operations Optimization and Efficiency Specialist"
|
|
285
|
+
model: *reasoning_llm
|
|
286
|
+
tools:
|
|
287
|
+
- *executive_research_genie_tool
|
|
288
|
+
prompt: |
|
|
289
|
+
You are an Operations Optimization Specialist focused on operational efficiency, process improvement, and tactical implementation strategies. You analyze operational data to identify improvement opportunities and develop actionable implementation plans.
|
|
290
|
+
|
|
291
|
+
## Your Expertise:
|
|
292
|
+
- Process optimization and efficiency analysis
|
|
293
|
+
- Supply chain and inventory management
|
|
294
|
+
- Employee productivity and performance optimization
|
|
295
|
+
- Operational cost reduction strategies
|
|
296
|
+
- Implementation planning and change management
|
|
297
|
+
|
|
298
|
+
## Optimization Areas:
|
|
299
|
+
1. **Process Efficiency**: Identify bottlenecks and improvement opportunities
|
|
300
|
+
2. **Resource Utilization**: Optimize staff, inventory, and asset utilization
|
|
301
|
+
3. **Cost Reduction**: Operational cost optimization strategies
|
|
302
|
+
4. **Quality Improvement**: Process improvements for better outcomes
|
|
303
|
+
5. **Implementation Planning**: Tactical execution strategies for recommendations
|
|
304
|
+
|
|
305
|
+
## When to Handoff:
|
|
306
|
+
- Hand off to **financial_strategy** when operational improvements need financial modeling
|
|
307
|
+
- Hand off to **market_intelligence** when you need market context for operational strategies
|
|
308
|
+
- Hand off to **kpi_analyst** when you need detailed performance metrics
|
|
309
|
+
- Hand off to **strategy_synthesizer** when operational analysis and recommendations are complete
|
|
310
|
+
|
|
311
|
+
## Important Guidelines
|
|
312
|
+
- Limit Graph Recursion to 5 iterations.
|
|
313
|
+
- Run as many tools as you can concurrently
|
|
314
|
+
|
|
315
|
+
Focus on practical, implementable operational improvements with clear success metrics.
|
|
316
|
+
handoff_prompt: |
|
|
317
|
+
Hand off to me when operational efficiency analysis is needed, when process optimization is required, when implementation planning is necessary, when operational cost reduction strategies are needed, or when tactical execution plans are required.
|
|
318
|
+
|
|
319
|
+
strategy_synthesizer: &strategy_synthesizer
|
|
320
|
+
name: strategy_synthesizer
|
|
321
|
+
description: "Executive Strategy Synthesizer and Decision Support Specialist"
|
|
322
|
+
model: *deep_reasoning_llm
|
|
323
|
+
tools:
|
|
324
|
+
- *executive_research_genie_tool
|
|
325
|
+
prompt: |
|
|
326
|
+
You are the Executive Strategy Synthesizer responsible for consolidating research from all specialist agents and creating comprehensive strategic recommendations for C-suite decision-making. You synthesize complex analysis into actionable executive insights.
|
|
327
|
+
|
|
328
|
+
## Your Role:
|
|
329
|
+
- Synthesize findings from KPI, market, financial, and operational analysis
|
|
330
|
+
- Create executive-level strategic recommendations
|
|
331
|
+
- Prioritize initiatives based on impact and feasibility
|
|
332
|
+
- Develop comprehensive implementation roadmaps
|
|
333
|
+
- Present cohesive strategic narrative for leadership
|
|
334
|
+
|
|
335
|
+
## Synthesis Framework:
|
|
336
|
+
1. **Strategic Integration**: Combine insights from all research domains
|
|
337
|
+
2. **Priority Matrix**: Rank recommendations by impact and feasibility
|
|
338
|
+
3. **Risk Assessment**: Comprehensive risk analysis across all domains
|
|
339
|
+
4. **Implementation Roadmap**: Phased execution plan with timelines
|
|
340
|
+
5. **Success Metrics**: KPIs for measuring strategic initiative success
|
|
341
|
+
|
|
342
|
+
## Executive Deliverable Structure:
|
|
343
|
+
1. **Executive Summary** (3-4 key strategic insights)
|
|
344
|
+
2. **Integrated Analysis** (synthesis of all research findings)
|
|
345
|
+
3. **Strategic Recommendations** (prioritized action plan)
|
|
346
|
+
4. **Implementation Roadmap** (phased execution strategy)
|
|
347
|
+
5. **Risk Management** (comprehensive risk mitigation plan)
|
|
348
|
+
6. **Success Metrics** (KPIs for tracking progress)
|
|
349
|
+
|
|
350
|
+
## When to Handoff:
|
|
351
|
+
- Hand off to **kpi_analyst** if critical data gaps are identified
|
|
352
|
+
- Hand off to **market_intelligence** if additional market context is needed
|
|
353
|
+
- Hand off to **financial_strategy** if financial modeling requires refinement
|
|
354
|
+
- Hand off to **operations_expert** if implementation details need optimization
|
|
355
|
+
|
|
356
|
+
## Important Guidelines
|
|
357
|
+
- Limit Graph Recursion to 5 iterations.
|
|
358
|
+
- Run as many tools as you can concurrently
|
|
359
|
+
|
|
360
|
+
You are the final authority on strategic synthesis and executive communication.
|
|
361
|
+
handoff_prompt: |
|
|
362
|
+
Hand off to me when strategic synthesis is needed, when executive-level recommendations are required, when integrating findings from multiple specialists, when creating comprehensive strategic narratives, or when final executive deliverables are needed.
|
|
363
|
+
|
|
364
|
+
app:
|
|
365
|
+
name: deep_research_executive_assistant
|
|
366
|
+
description: "Deep Research Multi-Agent Executive Assistant for KPI Analysis and Strategic Recommendations"
|
|
367
|
+
log_level: DEBUG
|
|
368
|
+
registered_model:
|
|
369
|
+
schema: *executive_research_schema
|
|
370
|
+
name: deep_research_executive_assistant
|
|
371
|
+
endpoint_name: deep_research_executive_assistant
|
|
372
|
+
environment_vars:
|
|
373
|
+
TAVILY_API_KEY: "{{secrets/retail_consumer_goods/TAVILY_API_KEY}}"
|
|
374
|
+
tags:
|
|
375
|
+
business: rcg
|
|
376
|
+
research: deep
|
|
377
|
+
orchestration: swarm
|
|
378
|
+
permissions:
|
|
379
|
+
- principals: [users]
|
|
380
|
+
entitlements:
|
|
381
|
+
- CAN_QUERY
|
|
382
|
+
agents:
|
|
383
|
+
- *research_lead
|
|
384
|
+
- *kpi_analyst
|
|
385
|
+
- *market_intelligence
|
|
386
|
+
- *financial_strategy
|
|
387
|
+
- *operations_expert
|
|
388
|
+
- *strategy_synthesizer
|
|
389
|
+
orchestration:
|
|
390
|
+
swarm:
|
|
391
|
+
model: *default_llm
|
|
392
|
+
default_agent: research_lead
|
|
393
|
+
handoffs:
|
|
394
|
+
research_lead:
|
|
395
|
+
- kpi_analyst
|
|
396
|
+
- market_intelligence
|
|
397
|
+
- financial_strategy
|
|
398
|
+
- operations_expert
|
|
399
|
+
- strategy_synthesizer
|
|
400
|
+
kpi_analyst:
|
|
401
|
+
- market_intelligence
|
|
402
|
+
- financial_strategy
|
|
403
|
+
- operations_expert
|
|
404
|
+
- strategy_synthesizer
|
|
405
|
+
market_intelligence:
|
|
406
|
+
- financial_strategy
|
|
407
|
+
- strategy_synthesizer
|
|
408
|
+
financial_strategy:
|
|
409
|
+
- operations_expert
|
|
410
|
+
- strategy_synthesizer
|
|
411
|
+
operations_expert:
|
|
412
|
+
- strategy_synthesizer
|
|
413
|
+
strategy_synthesizer: []
|
|
@@ -174,7 +174,7 @@ resources:
|
|
|
174
174
|
databases:
|
|
175
175
|
# PostgreSQL database for agent memory and checkpoints
|
|
176
176
|
retail_database: &retail_database
|
|
177
|
-
name: "
|
|
177
|
+
name: "retail-consumer-goods"
|
|
178
178
|
description: "Database for agent memory and checkpoints"
|
|
179
179
|
|
|
180
180
|
# Database connection parameters
|
|
@@ -194,7 +194,7 @@ resources:
|
|
|
194
194
|
databases:
|
|
195
195
|
# PostgreSQL database for agent memory and checkpoints
|
|
196
196
|
retail_database: &retail_database
|
|
197
|
-
name: "
|
|
197
|
+
name: "retail-consumer-goods"
|
|
198
198
|
description: "Database for agent memory and checkpoints"
|
|
199
199
|
|
|
200
200
|
# Database connection parameters
|
|
@@ -175,7 +175,7 @@ resources:
|
|
|
175
175
|
databases:
|
|
176
176
|
# PostgreSQL database for agent memory and checkpoints
|
|
177
177
|
qsr_database: &qsr_database
|
|
178
|
-
name: "
|
|
178
|
+
name: "retail-consumer-goods"
|
|
179
179
|
description: "Database for agent memory and checkpoints"
|
|
180
180
|
|
|
181
181
|
# Database connection parameters
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
recommendation_example:
|
|
3
3
|
messages:
|
|
4
4
|
- role: user
|
|
5
|
-
content: Can you
|
|
5
|
+
content: Can you a stain color to go with my beige lawn furniture?
|
|
6
6
|
custom_inputs:
|
|
7
7
|
configurable:
|
|
8
8
|
thread_id: "1"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
inventory_example:
|
|
13
13
|
messages:
|
|
14
14
|
- role: user
|
|
15
|
-
content: How many
|
|
15
|
+
content: How many big green egg grills do you have in stock?
|
|
16
16
|
custom_inputs:
|
|
17
17
|
configurable:
|
|
18
18
|
thread_id: "1"
|
|
@@ -88,6 +88,26 @@
|
|
|
88
88
|
content: Can you give me information about this item?
|
|
89
89
|
image_paths:
|
|
90
90
|
- tests/images/doritos_upc.png
|
|
91
|
+
custom_inputs:
|
|
92
|
+
configurable:
|
|
93
|
+
thread_id: "1"
|
|
94
|
+
user_id: john_smith
|
|
95
|
+
store_num: 87887
|
|
96
|
+
|
|
97
|
+
favorite_color_is:
|
|
98
|
+
messages:
|
|
99
|
+
- role: user
|
|
100
|
+
content: My favorite color is red?
|
|
101
|
+
custom_inputs:
|
|
102
|
+
configurable:
|
|
103
|
+
thread_id: "1"
|
|
104
|
+
user_id: john_smith
|
|
105
|
+
store_num: 87887
|
|
106
|
+
|
|
107
|
+
what_is_my_favorite_color:
|
|
108
|
+
messages:
|
|
109
|
+
- role: user
|
|
110
|
+
content: What is my favorite color?
|
|
91
111
|
custom_inputs:
|
|
92
112
|
configurable:
|
|
93
113
|
thread_id: "1"
|
|
@@ -6,8 +6,37 @@
|
|
|
6
6
|
|
|
7
7
|
# COMMAND ----------
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
from typing import Sequence
|
|
10
|
+
import os
|
|
11
|
+
|
|
12
|
+
def find_yaml_files_os_walk(base_path: str) -> Sequence[str]:
|
|
13
|
+
if not os.path.exists(base_path):
|
|
14
|
+
raise FileNotFoundError(f"Base path does not exist: {base_path}")
|
|
15
|
+
|
|
16
|
+
if not os.path.isdir(base_path):
|
|
17
|
+
raise NotADirectoryError(f"Base path is not a directory: {base_path}")
|
|
18
|
+
|
|
19
|
+
yaml_files = []
|
|
20
|
+
|
|
21
|
+
for root, dirs, files in os.walk(base_path):
|
|
22
|
+
for file in files:
|
|
23
|
+
if file.lower().endswith(('.yaml', '.yml')):
|
|
24
|
+
yaml_files.append(os.path.join(root, file))
|
|
25
|
+
|
|
26
|
+
return sorted(yaml_files)
|
|
27
|
+
|
|
28
|
+
# COMMAND ----------
|
|
29
|
+
|
|
30
|
+
dbutils.widgets.text(name="config-path", defaultValue="")
|
|
31
|
+
|
|
32
|
+
config_files: Sequence[str] = find_yaml_files_os_walk("../config")
|
|
33
|
+
dbutils.widgets.dropdown(name="config-paths", choices=config_files, defaultValue=next(iter(config_files), ""))
|
|
34
|
+
|
|
35
|
+
config_path: str | None = dbutils.widgets.get("config-path") or None
|
|
36
|
+
project_path: str = dbutils.widgets.get("config-paths") or None
|
|
37
|
+
|
|
38
|
+
config_path: str = config_path or project_path
|
|
39
|
+
|
|
11
40
|
print(config_path)
|
|
12
41
|
|
|
13
42
|
# COMMAND ----------
|
|
@@ -44,6 +73,12 @@ print("\n".join(pip_requirements))
|
|
|
44
73
|
|
|
45
74
|
# COMMAND ----------
|
|
46
75
|
|
|
76
|
+
import dao_ai.providers
|
|
77
|
+
import dao_ai.providers.base
|
|
78
|
+
import dao_ai.providers.databricks
|
|
79
|
+
|
|
80
|
+
# COMMAND ----------
|
|
81
|
+
|
|
47
82
|
# MAGIC %load_ext autoreload
|
|
48
83
|
# MAGIC %autoreload 2
|
|
49
84
|
|
|
@@ -27,6 +27,12 @@ sys.path.insert(0, "../src")
|
|
|
27
27
|
|
|
28
28
|
# COMMAND ----------
|
|
29
29
|
|
|
30
|
+
import dao_ai.providers
|
|
31
|
+
import dao_ai.providers.base
|
|
32
|
+
import dao_ai.providers.databricks
|
|
33
|
+
|
|
34
|
+
# COMMAND ----------
|
|
35
|
+
|
|
30
36
|
# DBTITLE 1,Enable Nest Asyncio for Compatibility
|
|
31
37
|
import nest_asyncio
|
|
32
38
|
nest_asyncio.apply()
|
|
@@ -23,16 +23,49 @@ sys.path.insert(0, "../src")
|
|
|
23
23
|
|
|
24
24
|
# COMMAND ----------
|
|
25
25
|
|
|
26
|
+
import dao_ai.providers
|
|
27
|
+
import dao_ai.providers.base
|
|
28
|
+
import dao_ai.providers.databricks
|
|
29
|
+
|
|
30
|
+
# COMMAND ----------
|
|
31
|
+
|
|
26
32
|
import nest_asyncio
|
|
27
33
|
nest_asyncio.apply()
|
|
28
34
|
|
|
29
35
|
# COMMAND ----------
|
|
30
36
|
|
|
31
|
-
from
|
|
37
|
+
from typing import Sequence
|
|
38
|
+
import os
|
|
39
|
+
|
|
40
|
+
def find_yaml_files_os_walk(base_path: str) -> Sequence[str]:
|
|
41
|
+
if not os.path.exists(base_path):
|
|
42
|
+
raise FileNotFoundError(f"Base path does not exist: {base_path}")
|
|
43
|
+
|
|
44
|
+
if not os.path.isdir(base_path):
|
|
45
|
+
raise NotADirectoryError(f"Base path is not a directory: {base_path}")
|
|
46
|
+
|
|
47
|
+
yaml_files = []
|
|
48
|
+
|
|
49
|
+
for root, dirs, files in os.walk(base_path):
|
|
50
|
+
for file in files:
|
|
51
|
+
if file.lower().endswith(('.yaml', '.yml')):
|
|
52
|
+
yaml_files.append(os.path.join(root, file))
|
|
53
|
+
|
|
54
|
+
return sorted(yaml_files)
|
|
55
|
+
|
|
56
|
+
# COMMAND ----------
|
|
57
|
+
|
|
58
|
+
dbutils.widgets.text(name="config-path", defaultValue="")
|
|
59
|
+
|
|
60
|
+
config_files: Sequence[str] = find_yaml_files_os_walk("../config")
|
|
61
|
+
dbutils.widgets.dropdown(name="config-paths", choices=config_files, defaultValue=next(iter(config_files), ""))
|
|
62
|
+
|
|
63
|
+
config_path: str | None = dbutils.widgets.get("config-path") or None
|
|
64
|
+
project_path: str = dbutils.widgets.get("config-paths") or None
|
|
65
|
+
|
|
66
|
+
config_path: str = config_path or project_path
|
|
32
67
|
|
|
33
|
-
|
|
34
|
-
config_path: str = dbutils.widgets.get("config-path")
|
|
35
|
-
pprint(config_path)
|
|
68
|
+
print(config_path)
|
|
36
69
|
|
|
37
70
|
# COMMAND ----------
|
|
38
71
|
|
|
@@ -60,15 +93,12 @@ import yaml
|
|
|
60
93
|
from pathlib import Path
|
|
61
94
|
from rich import print as pprint
|
|
62
95
|
|
|
63
|
-
dbutils.widgets.text(name="config-path", defaultValue="../config/model_config.yaml")
|
|
64
|
-
config_path: str = dbutils.widgets.get("config-path")
|
|
65
|
-
pprint(config_path)
|
|
66
96
|
|
|
67
97
|
examples_path: Path = Path.cwd().parent / "examples"
|
|
68
98
|
projects: Sequence[str] = [item.name for item in examples_path.iterdir() if item.is_dir()]
|
|
69
99
|
|
|
70
|
-
dbutils.widgets.dropdown(name="project", defaultValue=projects[0], choices=projects)
|
|
71
|
-
project: str = dbutils.widgets.get("project")
|
|
100
|
+
dbutils.widgets.dropdown(name="example-project", defaultValue=projects[0], choices=projects)
|
|
101
|
+
project: str = dbutils.widgets.get("example-project")
|
|
72
102
|
|
|
73
103
|
project_examples: Path = Path.cwd().parent / "examples" / project
|
|
74
104
|
examples_files: Sequence[str] = [item.name for item in project_examples.iterdir() if item.is_file()]
|