rasa-pro 3.14.0.dev4__py3-none-any.whl → 3.14.0.dev5__py3-none-any.whl
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.
Potentially problematic release.
This version of rasa-pro might be problematic. Click here for more details.
- rasa/api.py +0 -5
- rasa/builder/README.md +120 -0
- rasa/builder/auth.py +176 -0
- rasa/builder/config.py +115 -0
- rasa/builder/copilot/constants.py +25 -0
- rasa/builder/copilot/copilot.py +372 -0
- rasa/builder/copilot/copilot_response_handler.py +487 -0
- rasa/builder/copilot/copilot_templated_message_provider.py +58 -0
- rasa/builder/copilot/exceptions.py +20 -0
- rasa/builder/copilot/models.py +431 -0
- rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +726 -0
- rasa/builder/copilot/telemetry.py +195 -0
- rasa/builder/copilot/templated_messages/copilot_internal_messages_templates.yml +16 -0
- rasa/builder/copilot/templated_messages/copilot_templated_responses.yml +26 -0
- rasa/builder/document_retrieval/constants.py +15 -0
- rasa/builder/document_retrieval/inkeep-rag-response-schema.json +64 -0
- rasa/builder/document_retrieval/inkeep_document_retrieval.py +238 -0
- rasa/builder/document_retrieval/models.py +62 -0
- rasa/builder/download.py +140 -0
- rasa/builder/exceptions.py +55 -0
- rasa/builder/guardrails/__init__.py +1 -0
- rasa/builder/guardrails/constants.py +3 -0
- rasa/builder/guardrails/exceptions.py +4 -0
- rasa/builder/guardrails/lakera.py +206 -0
- rasa/builder/guardrails/models.py +199 -0
- rasa/builder/guardrails/utils.py +305 -0
- rasa/builder/job_manager.py +87 -0
- rasa/builder/jobs.py +234 -0
- rasa/builder/llm_service.py +246 -0
- rasa/builder/logging_utils.py +209 -0
- rasa/builder/main.py +174 -0
- rasa/builder/models.py +197 -0
- rasa/builder/project_generator.py +450 -0
- rasa/builder/project_info.py +72 -0
- rasa/builder/scrape_rasa_docs.py +97 -0
- rasa/builder/service.py +1142 -0
- rasa/builder/shared/tracker_context.py +212 -0
- rasa/builder/skill_to_bot_prompt.jinja2 +164 -0
- rasa/builder/training_service.py +132 -0
- rasa/builder/validation_service.py +93 -0
- rasa/cli/arguments/default_arguments.py +0 -12
- rasa/cli/arguments/run.py +0 -2
- rasa/cli/dialogue_understanding_test.py +0 -4
- rasa/cli/e2e_test.py +0 -4
- rasa/cli/inspect.py +0 -3
- rasa/cli/llm_fine_tuning.py +0 -5
- rasa/cli/project_templates/basic/actions/action_api.py +15 -0
- rasa/cli/project_templates/basic/actions/action_human_handoff.py +44 -0
- rasa/cli/project_templates/basic/config.yml +23 -0
- rasa/cli/project_templates/basic/credentials.yml +34 -0
- rasa/cli/project_templates/basic/data/general/feedback.yml +20 -0
- rasa/cli/project_templates/basic/data/general/goodbye.yml +6 -0
- rasa/cli/project_templates/basic/data/general/hello.yml +7 -0
- rasa/cli/project_templates/basic/data/general/help.yml +6 -0
- rasa/cli/project_templates/basic/data/general/human_handoff.yml +16 -0
- rasa/cli/project_templates/basic/data/general/welcome.yml +9 -0
- rasa/cli/project_templates/basic/data/system/pattern_completed.yml +7 -0
- rasa/cli/project_templates/basic/data/system/pattern_correction.yml +7 -0
- rasa/cli/project_templates/basic/data/system/pattern_search.yml +8 -0
- rasa/cli/project_templates/basic/data/system/pattern_session_start.yml +8 -0
- rasa/cli/project_templates/basic/docs/rasa_assistant_qa.txt +65 -0
- rasa/cli/project_templates/basic/docs/template.txt +7 -0
- rasa/cli/project_templates/basic/domain/general/assistant_details.yml +12 -0
- rasa/cli/project_templates/basic/domain/general/bot_identity.yml +5 -0
- rasa/cli/project_templates/basic/domain/general/cannot_handle.yml +5 -0
- rasa/cli/project_templates/basic/domain/general/feedback.yml +28 -0
- rasa/cli/project_templates/basic/domain/general/goodbye.yml +7 -0
- rasa/cli/project_templates/basic/domain/general/help.yml +5 -0
- rasa/cli/project_templates/basic/domain/general/human_handoff_domain.yml +35 -0
- rasa/cli/project_templates/basic/domain/general/utils.yml +13 -0
- rasa/cli/project_templates/basic/domain/general/welcome.yml +7 -0
- rasa/cli/project_templates/basic/endpoints.yml +73 -0
- rasa/cli/project_templates/basic/prompts/rephraser_demo_personality_prompt.jinja2 +19 -0
- rasa/cli/project_templates/finance/actions/__init__.py +46 -0
- rasa/cli/project_templates/finance/actions/accounts/action_ask_account.py +47 -0
- rasa/cli/project_templates/finance/actions/accounts/action_check_balance.py +40 -0
- rasa/cli/project_templates/finance/actions/action_session_start.py +74 -0
- rasa/cli/project_templates/finance/actions/cards/action_ask_card.py +48 -0
- rasa/cli/project_templates/finance/actions/cards/action_check_card_existence.py +36 -0
- rasa/cli/project_templates/finance/actions/cards/action_update_card_status.py +54 -0
- rasa/cli/project_templates/finance/actions/database.py +277 -0
- rasa/cli/project_templates/finance/actions/transfers/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/transfers/action_add_payee.py +52 -0
- rasa/cli/project_templates/finance/actions/transfers/action_ask_account_from.py +51 -0
- rasa/cli/project_templates/finance/actions/transfers/action_check_payee_existence.py +40 -0
- rasa/cli/project_templates/finance/actions/transfers/action_check_sufficient_funds.py +40 -0
- rasa/cli/project_templates/finance/actions/transfers/action_list_payees.py +46 -0
- rasa/cli/project_templates/finance/actions/transfers/action_process_immediate_payment.py +18 -0
- rasa/cli/project_templates/finance/actions/transfers/action_remove_payee.py +49 -0
- rasa/cli/project_templates/finance/actions/transfers/action_schedule_payment.py +19 -0
- rasa/cli/project_templates/finance/actions/transfers/action_validate_payment_date.py +36 -0
- rasa/cli/project_templates/finance/config.yml +21 -0
- rasa/cli/project_templates/finance/credentials.yml +32 -0
- rasa/cli/project_templates/finance/csvs/accounts.csv +8 -0
- rasa/cli/project_templates/finance/csvs/advisors.csv +7 -0
- rasa/cli/project_templates/finance/csvs/appointments.csv +211 -0
- rasa/cli/project_templates/finance/csvs/branches.csv +10 -0
- rasa/cli/project_templates/finance/csvs/cards.csv +11 -0
- rasa/cli/project_templates/finance/csvs/payees.csv +11 -0
- rasa/cli/project_templates/finance/csvs/transactions.csv +71 -0
- rasa/cli/project_templates/finance/csvs/users.csv +4 -0
- rasa/cli/project_templates/finance/data/accounts/check_balance.yml +10 -0
- rasa/cli/project_templates/finance/data/cards/block_card.yml +66 -0
- rasa/cli/project_templates/finance/data/cards/select_card.yml +12 -0
- rasa/cli/project_templates/finance/data/general/bot_identity.yml +6 -0
- rasa/cli/project_templates/finance/data/general/feedback.yml +20 -0
- rasa/cli/project_templates/finance/data/general/goodbye.yml +6 -0
- rasa/cli/project_templates/finance/data/general/hello.yml +7 -0
- rasa/cli/project_templates/finance/data/general/help.yml +9 -0
- rasa/cli/project_templates/finance/data/general/human_handoff.yml +16 -0
- rasa/cli/project_templates/finance/data/general/welcome.yml +9 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_chitchat.yml +5 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_completed.yml +7 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_correction.yml +7 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_search.yml +8 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_session_start.yml +8 -0
- rasa/cli/project_templates/finance/data/system/source/accounts.json +51 -0
- rasa/cli/project_templates/finance/data/system/source/advisors.json +44 -0
- rasa/cli/project_templates/finance/data/system/source/appointments.json +1474 -0
- rasa/cli/project_templates/finance/data/system/source/branches.json +47 -0
- rasa/cli/project_templates/finance/data/system/source/cards.json +72 -0
- rasa/cli/project_templates/finance/data/system/source/payees.json +74 -0
- rasa/cli/project_templates/finance/data/system/source/transactions.json +492 -0
- rasa/cli/project_templates/finance/data/system/source/users.json +29 -0
- rasa/cli/project_templates/finance/data/transfers/add_payee.yml +29 -0
- rasa/cli/project_templates/finance/data/transfers/list_payees.yml +5 -0
- rasa/cli/project_templates/finance/data/transfers/remove_payee.yml +21 -0
- rasa/cli/project_templates/finance/data/transfers/transfer_money.yml +67 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/consequences_of_blocking_card.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/reasons_to_block_card.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/recovering_from_card_fraud.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/tips_for_card_security.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/what_to_do_if_card_is_lost.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/account_balance_security.txt +7 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/common_balance_inquiries.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/methods_to_check_balance.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/understanding_balance_updates.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/what_to_do_if_balance_is_incorrect.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/benefits_of_authorised_payees.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/common_issues_with_payees.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/general_payee_information.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/payee_management_tips.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/understanding_payee_types.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/common_transfer_errors.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/fees_for_transfers.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/general_transfer_information.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/security_tips_for_transfers.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/transfer_processing_times.txt +8 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part1.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part10.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part11.txt +48 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part12.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part13.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part14.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part15.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part16.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part17.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part18.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part19.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part2.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part20.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part21.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part22.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part23.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part24.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part25.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part26.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part27.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part28.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part29.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part3.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part30.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part31.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part32.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part33.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part34.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part35.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part36.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part37.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part38.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part39.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part4.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part40.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part41.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part42.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part43.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part44.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part45.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part46.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part47.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part48.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part49.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part5.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part50.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part51.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part52.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part53.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part54.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part55.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part56.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part57.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part58.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part59.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part6.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part60.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part61.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part7.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part8.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part9.txt +47 -0
- rasa/cli/project_templates/finance/domain/accounts/check_balance.yml +11 -0
- rasa/cli/project_templates/finance/domain/cards/block_card.yml +101 -0
- rasa/cli/project_templates/finance/domain/cards/select_card.yml +12 -0
- rasa/cli/project_templates/finance/domain/general/assistant_details.yml +12 -0
- rasa/cli/project_templates/finance/domain/general/bot_identity.yml +5 -0
- rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +5 -0
- rasa/cli/project_templates/finance/domain/general/defaults.yml +24 -0
- rasa/cli/project_templates/finance/domain/general/feedback.yml +28 -0
- rasa/cli/project_templates/finance/domain/general/goodbye.yml +7 -0
- rasa/cli/project_templates/finance/domain/general/help.yml +5 -0
- rasa/cli/project_templates/finance/domain/general/human_handoff.yml +30 -0
- rasa/cli/project_templates/finance/domain/general/utils.yml +13 -0
- rasa/cli/project_templates/finance/domain/general/welcome.yml +8 -0
- rasa/cli/project_templates/finance/domain/transfers/add_payee.yml +47 -0
- rasa/cli/project_templates/finance/domain/transfers/list_payees.yml +4 -0
- rasa/cli/project_templates/finance/domain/transfers/remove_payee.yml +16 -0
- rasa/cli/project_templates/finance/domain/transfers/transfer_money.yml +79 -0
- rasa/cli/project_templates/finance/endpoints.yml +63 -0
- rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +19 -0
- rasa/cli/project_templates/telco/actions/__init__.py +0 -0
- rasa/cli/project_templates/telco/actions/actions_billing.py +204 -0
- rasa/cli/project_templates/telco/actions/actions_get_data_from_db.py +48 -0
- rasa/cli/project_templates/telco/actions/actions_run_diagnostics.py +28 -0
- rasa/cli/project_templates/telco/actions/actions_session_start.py +18 -0
- rasa/cli/project_templates/telco/config.yml +25 -0
- rasa/cli/project_templates/telco/credentials.yml +33 -0
- rasa/cli/project_templates/telco/csvs/billing.csv +10 -0
- rasa/cli/project_templates/telco/csvs/customers.csv +5 -0
- rasa/cli/project_templates/telco/data/flows/flow_global.yml +5 -0
- rasa/cli/project_templates/telco/data/flows/flow_reboot_router.yml +8 -0
- rasa/cli/project_templates/telco/data/flows/flow_reset_router.yml +7 -0
- rasa/cli/project_templates/telco/data/flows/flow_solve_internet_issue.yml +73 -0
- rasa/cli/project_templates/telco/data/flows/flow_undertand_bill.yml +45 -0
- rasa/cli/project_templates/telco/data/patterns/pattern_completed.yml +7 -0
- rasa/cli/project_templates/telco/data/patterns/pattern_human_handoff.yml +6 -0
- rasa/cli/project_templates/telco/data/patterns/pattern_search.yml +7 -0
- rasa/cli/project_templates/telco/data/patterns/pattern_session_start.yml +9 -0
- rasa/cli/project_templates/telco/docs/reset_vs_rboot_router.txt +1 -0
- rasa/cli/project_templates/telco/docs/restart_router.txt +6 -0
- rasa/cli/project_templates/telco/docs/run_speed_test.txt +6 -0
- rasa/cli/project_templates/telco/domain/domain_global.yml +29 -0
- rasa/cli/project_templates/telco/domain/domain_patterns.yml +17 -0
- rasa/cli/project_templates/telco/domain/domain_reboot_router.yml +20 -0
- rasa/cli/project_templates/telco/domain/domain_reset_router.yml +11 -0
- rasa/cli/project_templates/telco/domain/domain_run_speed_test.yml +24 -0
- rasa/cli/project_templates/telco/domain/domain_solve_internet_issue.yml +74 -0
- rasa/cli/project_templates/telco/domain/domain_undertand_bill.yml +102 -0
- rasa/cli/project_templates/telco/endpoints.yml +60 -0
- rasa/{dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_gpt_4o_2024_11_20_template.jinja2 → cli/project_templates/telco/prompts/command-generator.jinja2} +3 -7
- rasa/cli/project_templates/telco/tests/e2e_results_failed.yml +62 -0
- rasa/cli/project_templates/telco/tests/e2e_results_passed.yml +130 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/billing_test_cases.yml +68 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/global_test_cases.yml +13 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/internet_slow_test_case.yml +47 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/out_of_scope_test_case.yml +21 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/patterns_test_cases.yml +15 -0
- rasa/cli/project_templates/tutorial/config.yml +2 -1
- rasa/cli/run.py +0 -4
- rasa/cli/scaffold.py +46 -2
- rasa/cli/shell.py +0 -3
- rasa/constants.py +0 -6
- rasa/core/actions/action.py +10 -56
- rasa/core/agent.py +0 -16
- rasa/core/available_endpoints.py +0 -30
- rasa/core/channels/channel.py +4 -3
- rasa/core/channels/constants.py +3 -0
- rasa/core/channels/development_inspector.py +4 -4
- rasa/core/channels/hangouts.py +2 -2
- rasa/core/channels/inspector/dist/assets/{arc-63212852.js → arc-18042c22.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-eecf6b13.js → blockDiagram-38ab4fdb-fdd6bcfa.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-8f798a9a.js → c4Diagram-3d4e48cf-f5ae6786.js} +1 -1
- rasa/core/channels/inspector/dist/assets/channel-b9b536fc.js +1 -0
- rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-df71a04c.js → classDiagram-70f12bd4-81efba3e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-9b275968.js → classDiagram-v2-f2320105-3b6b6a92.js} +1 -1
- rasa/core/channels/inspector/dist/assets/clone-78d2ddcf.js +1 -0
- rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-1c669cad.js → createText-2e5e7dd3-31422447.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-b1553799.js → edges-e0da2a9e-518a90db.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-112388d6.js → erDiagram-9861fffd-a6d3c25a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-fdebec47.js → flowDb-956e92f1-e048c2be.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-6280ede1.js → flowDiagram-66a62f08-c7474c91.js} +1 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-8b09c060.js +1 -0
- rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-e1dc03e5.js → flowchart-elk-definition-4a651766-cb4d8723.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-83f68c51.js → ganttDiagram-c361ad54-346636a2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-22f8666f.js → gitGraphDiagram-72cf32ee-7c508874.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{graph-ca9e6217.js → graph-14702d8a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-3862675e-c5ceb692.js → index-3862675e-f18b534b.js} +1 -1
- rasa/core/channels/inspector/dist/assets/index-4d4bdf3a.js +1335 -0
- rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-faa9999b.js → infoDiagram-f8f76790-64154b83.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-c4dda8d9.js → journeyDiagram-49397b02-833a5f95.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{layout-d4307784.js → layout-5a3b2123.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{line-0567aaa7.js → line-2272a8c7.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{linear-c11b95cf.js → linear-35bcf273.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-0c7d3ca9.js → mindmap-definition-fc14e90a-92dcb0e9.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-34b433fa.js → pieDiagram-8a3498a8-94dbc900.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-4cab816e.js → quadrantDiagram-120e2f19-8b7a9c33.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-8c22fa9e.js → requirementDiagram-deff3bca-6f7eab81.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-70ce9e8e.js → sankeyDiagram-04a897e0-f43e581d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-fbcd7fc9.js → sequenceDiagram-704730f1-0bcbefc3.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-45f05ea6.js → stateDiagram-587899a1-b8a74083.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-beab1ea6.js → stateDiagram-v2-d93cdb3a-2070218f.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-2f29dbd5.js → styles-6aaf32cf-f1d54e34.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-9a916d00-951eac83.js → styles-9a916d00-980de489.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-c10674c1-897fbfdd.js → styles-c10674c1-3c03abde.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-d667fac1.js → svgDrawCommon-08f97a94-46ba068f.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-e3205144.js → timeline-definition-85554ec2-901f5e3d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-4abeb0e2.js → xychartDiagram-e933f94c-acbc628a.js} +1 -1
- rasa/core/channels/inspector/dist/index.html +2 -2
- rasa/core/channels/inspector/index.html +1 -1
- rasa/core/channels/inspector/src/App.tsx +10 -11
- rasa/core/channels/inspector/src/components/DialogueInformation.tsx +12 -3
- rasa/core/channels/inspector/src/components/DialogueStack.tsx +4 -6
- rasa/core/channels/inspector/src/helpers/formatters.ts +3 -24
- rasa/core/channels/inspector/src/theme/base/styles.ts +1 -19
- rasa/core/channels/inspector/src/types.ts +0 -4
- rasa/core/channels/socketio.py +212 -51
- rasa/core/channels/studio_chat.py +49 -29
- rasa/core/channels/voice_stream/genesys.py +1 -1
- rasa/core/channels/voice_stream/voice_channel.py +5 -3
- rasa/core/constants.py +0 -4
- rasa/core/policies/enterprise_search_policy.py +6 -11
- rasa/core/policies/flow_policy.py +4 -4
- rasa/core/policies/flows/flow_executor.py +45 -456
- rasa/core/policies/intentless_policy.py +1 -1
- rasa/core/policies/unexpected_intent_policy.py +0 -1
- rasa/core/processor.py +15 -18
- rasa/core/run.py +14 -11
- rasa/core/tracker_stores/tracker_store.py +7 -3
- rasa/core/train.py +1 -1
- rasa/core/training/interactive.py +16 -16
- rasa/core/training/story_conflict.py +5 -5
- rasa/core/utils.py +1 -21
- rasa/dialogue_understanding/commands/__init__.py +0 -8
- rasa/dialogue_understanding/commands/cancel_flow_command.py +4 -97
- rasa/dialogue_understanding/commands/chit_chat_answer_command.py +0 -11
- rasa/dialogue_understanding/commands/clarify_command.py +0 -10
- rasa/dialogue_understanding/commands/knowledge_answer_command.py +0 -11
- rasa/dialogue_understanding/commands/start_flow_command.py +8 -164
- rasa/dialogue_understanding/commands/utils.py +2 -6
- rasa/dialogue_understanding/generator/command_parser.py +0 -4
- rasa/dialogue_understanding/generator/flow_retrieval.py +10 -9
- rasa/dialogue_understanding/generator/llm_based_command_generator.py +12 -50
- rasa/dialogue_understanding/generator/llm_command_generator.py +1 -1
- rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +1 -1
- rasa/dialogue_understanding/generator/single_step/compact_llm_command_generator.py +6 -7
- rasa/dialogue_understanding/generator/single_step/search_ready_llm_command_generator.py +6 -7
- rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +2 -41
- rasa/dialogue_understanding/patterns/continue_interrupted.py +1 -163
- rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +8 -52
- rasa/dialogue_understanding/processor/command_processor.py +15 -31
- rasa/dialogue_understanding/stack/dialogue_stack.py +2 -123
- rasa/dialogue_understanding/stack/frames/flow_stack_frame.py +0 -57
- rasa/dialogue_understanding/stack/utils.py +2 -17
- rasa/dialogue_understanding_test/du_test_runner.py +2 -7
- rasa/e2e_test/e2e_test_runner.py +2 -12
- rasa/engine/caching.py +2 -2
- rasa/engine/recipes/default_components.py +18 -10
- rasa/engine/storage/local_model_storage.py +45 -2
- rasa/graph_components/validators/default_recipe_validator.py +134 -134
- rasa/hooks.py +5 -5
- rasa/llm_fine_tuning/utils.py +2 -2
- rasa/model_manager/model_api.py +4 -5
- rasa/model_manager/runner_service.py +1 -1
- rasa/model_manager/socket_bridge.py +20 -14
- rasa/model_manager/trainer_service.py +12 -9
- rasa/model_manager/utils.py +1 -29
- rasa/model_manager/warm_rasa_process.py +1 -1
- rasa/nlu/extractors/extractor.py +1 -2
- rasa/plugin.py +8 -8
- rasa/privacy/privacy_manager.py +2 -11
- rasa/server.py +2 -14
- rasa/shared/constants.py +0 -5
- rasa/shared/core/constants.py +1 -12
- rasa/shared/core/domain.py +58 -11
- rasa/shared/core/events.py +0 -327
- rasa/shared/core/flows/flow_step.py +7 -1
- rasa/shared/core/flows/flows_list.py +2 -2
- rasa/shared/core/flows/flows_yaml_schema.json +186 -112
- rasa/shared/core/flows/steps/call.py +5 -53
- rasa/shared/core/flows/validation.py +7 -46
- rasa/shared/core/flows/yaml_flows_io.py +17 -9
- rasa/shared/core/slots.py +6 -2
- rasa/shared/core/trackers.py +2 -5
- rasa/shared/exceptions.py +0 -4
- rasa/shared/importers/importer.py +6 -0
- rasa/shared/importers/utils.py +77 -1
- rasa/shared/providers/_utils.py +60 -44
- rasa/shared/providers/embedding/default_litellm_embedding_client.py +2 -0
- rasa/shared/providers/llm/_base_litellm_client.py +7 -39
- rasa/shared/providers/llm/default_litellm_llm_client.py +2 -0
- rasa/shared/providers/llm/litellm_router_llm_client.py +4 -8
- rasa/shared/providers/llm/llm_client.py +3 -7
- rasa/shared/providers/llm/llm_response.py +0 -49
- rasa/shared/providers/llm/self_hosted_llm_client.py +4 -8
- rasa/shared/utils/llm.py +5 -28
- rasa/shared/utils/schemas/events.py +0 -42
- rasa/shared/utils/yaml.py +1 -3
- rasa/studio/upload.py +16 -47
- rasa/telemetry.py +97 -23
- rasa/tracing/instrumentation/instrumentation.py +10 -12
- rasa/tracing/instrumentation/intentless_policy_instrumentation.py +4 -4
- rasa/utils/common.py +0 -79
- rasa/utils/io.py +27 -9
- rasa/utils/json_utils.py +6 -1
- rasa/utils/log_utils.py +6 -2
- rasa/utils/ml_utils.py +1 -1
- rasa/utils/openapi.py +144 -0
- rasa/utils/tensorflow/rasa_layers.py +1 -1
- rasa/utils/train_utils.py +15 -15
- rasa/validator.py +21 -19
- rasa/version.py +1 -1
- {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/METADATA +17 -14
- {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/RECORD +431 -200
- rasa/agents/agent_factory.py +0 -122
- rasa/agents/agent_manager.py +0 -162
- rasa/agents/constants.py +0 -40
- rasa/agents/core/agent_protocol.py +0 -107
- rasa/agents/core/types.py +0 -70
- rasa/agents/exceptions.py +0 -8
- rasa/agents/protocol/__init__.py +0 -5
- rasa/agents/protocol/a2a/a2a_agent.py +0 -662
- rasa/agents/protocol/mcp/mcp_base_agent.py +0 -676
- rasa/agents/protocol/mcp/mcp_open_agent.py +0 -276
- rasa/agents/protocol/mcp/mcp_task_agent.py +0 -469
- rasa/agents/schemas/__init__.py +0 -12
- rasa/agents/schemas/agent_input.py +0 -38
- rasa/agents/schemas/agent_output.py +0 -26
- rasa/agents/schemas/agent_tool_result.py +0 -51
- rasa/agents/schemas/agent_tool_schema.py +0 -134
- rasa/agents/templates/mcp_open_agent_prompt_template.jinja2 +0 -15
- rasa/agents/templates/mcp_task_agent_prompt_template.jinja2 +0 -17
- rasa/agents/utils.py +0 -72
- rasa/core/available_agents.py +0 -199
- rasa/core/channels/inspector/dist/assets/channel-0cd70adf.js +0 -1
- rasa/core/channels/inspector/dist/assets/clone-a0f9c4ed.js +0 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-de9cc4aa.js +0 -1
- rasa/core/channels/inspector/dist/assets/index-3e293924.js +0 -1353
- rasa/core/policies/flows/mcp_tool_executor.py +0 -277
- rasa/dialogue_understanding/commands/continue_agent_command.py +0 -91
- rasa/dialogue_understanding/commands/restart_agent_command.py +0 -162
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_claude_3_5_sonnet_20240620_template.jinja2 +0 -61
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_claude_3_5_sonnet_20240620_template.jinja2 +0 -81
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_gpt_4o_2024_11_20_template.jinja2 +0 -81
- rasa/shared/agents/utils.py +0 -35
- rasa/shared/utils/mcp/server_connection.py +0 -157
- /rasa/{agents → builder}/__init__.py +0 -0
- /rasa/{agents/core → builder/copilot}/__init__.py +0 -0
- /rasa/{agents/protocol/a2a → builder/copilot/prompts}/__init__.py +0 -0
- /rasa/{agents/protocol/mcp → builder/copilot/templated_messages}/__init__.py +0 -0
- /rasa/{agents/templates → builder/document_retrieval}/__init__.py +0 -0
- /rasa/{shared/agents → cli/project_templates/finance/actions/accounts}/__init__.py +0 -0
- /rasa/{shared/utils/mcp → cli/project_templates/finance/actions/cards}/__init__.py +0 -0
- {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/NOTICE +0 -0
- {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/WHEEL +0 -0
- {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/entry_points.txt +0 -0
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
from typing import Any, Callable, Dict, Optional
|
|
2
|
-
|
|
3
|
-
from mcp import Tool
|
|
4
|
-
from pydantic import BaseModel
|
|
5
|
-
|
|
6
|
-
from rasa.agents.constants import (
|
|
7
|
-
TOOL_ADDITIONAL_PROPERTIES_KEY,
|
|
8
|
-
TOOL_DESCRIPTION_KEY,
|
|
9
|
-
TOOL_EXECUTOR_KEY,
|
|
10
|
-
TOOL_NAME_KEY,
|
|
11
|
-
TOOL_PARAMETERS_KEY,
|
|
12
|
-
TOOL_PROPERTIES_KEY,
|
|
13
|
-
TOOL_PROPERTY_TYPE_KEY,
|
|
14
|
-
TOOL_REQUIRED_KEY,
|
|
15
|
-
TOOL_STRICT_KEY,
|
|
16
|
-
TOOL_TYPE_FUNCTION_KEY,
|
|
17
|
-
TOOL_TYPE_KEY,
|
|
18
|
-
)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
class AgentToolSchema(BaseModel):
|
|
22
|
-
name: str
|
|
23
|
-
parameters: dict[str, Any]
|
|
24
|
-
strict: bool
|
|
25
|
-
description: Optional[str] = None
|
|
26
|
-
type: str = "function"
|
|
27
|
-
|
|
28
|
-
@classmethod
|
|
29
|
-
def from_mcp_tool(cls, tool: Tool) -> "AgentToolSchema":
|
|
30
|
-
"""Convert MCP Tool to AgentToolSchema."""
|
|
31
|
-
parameters = tool.inputSchema.copy() if tool.inputSchema else {}
|
|
32
|
-
|
|
33
|
-
if parameters:
|
|
34
|
-
cls._validate_and_fix_parameters(parameters)
|
|
35
|
-
|
|
36
|
-
return cls(
|
|
37
|
-
name=tool.name,
|
|
38
|
-
description=tool.description,
|
|
39
|
-
parameters=parameters,
|
|
40
|
-
strict=False,
|
|
41
|
-
type=TOOL_TYPE_FUNCTION_KEY,
|
|
42
|
-
)
|
|
43
|
-
|
|
44
|
-
@classmethod
|
|
45
|
-
def from_openai_json_format(cls, tool: Dict[str, Any]) -> "AgentToolSchema":
|
|
46
|
-
"""Convert OpenAI dict format to AgentToolSchema."""
|
|
47
|
-
function_data = tool[TOOL_TYPE_FUNCTION_KEY]
|
|
48
|
-
parameters = function_data.get(TOOL_PARAMETERS_KEY, {})
|
|
49
|
-
|
|
50
|
-
if parameters:
|
|
51
|
-
cls._validate_and_fix_parameters(parameters)
|
|
52
|
-
|
|
53
|
-
return cls(
|
|
54
|
-
name=function_data[TOOL_NAME_KEY],
|
|
55
|
-
description=function_data[TOOL_DESCRIPTION_KEY],
|
|
56
|
-
parameters=parameters,
|
|
57
|
-
strict=function_data.get(TOOL_STRICT_KEY, False),
|
|
58
|
-
type=tool[TOOL_TYPE_KEY],
|
|
59
|
-
)
|
|
60
|
-
|
|
61
|
-
@staticmethod
|
|
62
|
-
def _validate_and_fix_parameters(parameters: Dict[str, Any]) -> None:
|
|
63
|
-
"""Validate and fix parameters to ensure they meet OpenAI function calling
|
|
64
|
-
requirements."""
|
|
65
|
-
if not parameters:
|
|
66
|
-
return
|
|
67
|
-
|
|
68
|
-
# Ensure additionalProperties is set at the top level
|
|
69
|
-
if TOOL_ADDITIONAL_PROPERTIES_KEY not in parameters:
|
|
70
|
-
parameters[TOOL_ADDITIONAL_PROPERTIES_KEY] = False
|
|
71
|
-
|
|
72
|
-
# Ensure required is set at the top level
|
|
73
|
-
if TOOL_REQUIRED_KEY not in parameters:
|
|
74
|
-
parameters[TOOL_REQUIRED_KEY] = []
|
|
75
|
-
|
|
76
|
-
# Ensure all properties have types, required field and additionalProperties
|
|
77
|
-
if TOOL_PROPERTIES_KEY in parameters:
|
|
78
|
-
AgentToolSchema._ensure_property_types(parameters)
|
|
79
|
-
|
|
80
|
-
@staticmethod
|
|
81
|
-
def _ensure_property_types(parameters: Dict[str, Any]) -> None:
|
|
82
|
-
"""Ensure all properties in parameters have a type defined and
|
|
83
|
-
additionalProperties is set."""
|
|
84
|
-
properties = parameters[TOOL_PROPERTIES_KEY]
|
|
85
|
-
|
|
86
|
-
if not properties:
|
|
87
|
-
return
|
|
88
|
-
|
|
89
|
-
for _, prop_schema in properties.items():
|
|
90
|
-
if not isinstance(prop_schema, dict):
|
|
91
|
-
continue
|
|
92
|
-
|
|
93
|
-
# Ensure the property has a type
|
|
94
|
-
if TOOL_PROPERTY_TYPE_KEY not in prop_schema:
|
|
95
|
-
prop_schema[TOOL_PROPERTY_TYPE_KEY] = "string"
|
|
96
|
-
|
|
97
|
-
# If it's an object type, ensure additionalProperties and required
|
|
98
|
-
# fields are set
|
|
99
|
-
if prop_schema[TOOL_PROPERTY_TYPE_KEY] == "object":
|
|
100
|
-
if TOOL_ADDITIONAL_PROPERTIES_KEY not in prop_schema:
|
|
101
|
-
prop_schema[TOOL_ADDITIONAL_PROPERTIES_KEY] = False
|
|
102
|
-
|
|
103
|
-
# Ensure required key exists for object properties
|
|
104
|
-
if TOOL_REQUIRED_KEY not in prop_schema:
|
|
105
|
-
prop_schema[TOOL_REQUIRED_KEY] = []
|
|
106
|
-
|
|
107
|
-
def to_openai_json_format(self) -> Dict[str, Any]:
|
|
108
|
-
"""Convert AgentToolSchema to OpenAI format."""
|
|
109
|
-
# Ensure the schema is valid before conversion
|
|
110
|
-
return {
|
|
111
|
-
TOOL_TYPE_KEY: TOOL_TYPE_FUNCTION_KEY,
|
|
112
|
-
TOOL_TYPE_FUNCTION_KEY: self.model_dump(exclude={TOOL_TYPE_KEY}),
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
class CustomToolSchema(BaseModel):
|
|
117
|
-
"""A class that represents the schema of a custom agent tool."""
|
|
118
|
-
|
|
119
|
-
tool_name: str
|
|
120
|
-
tool_definition: AgentToolSchema
|
|
121
|
-
tool_executor: Callable
|
|
122
|
-
|
|
123
|
-
@classmethod
|
|
124
|
-
def from_dict(cls, config: Dict[str, Any]) -> "CustomToolSchema":
|
|
125
|
-
"""Convert a custom tool config to CustomToolSchema."""
|
|
126
|
-
agent_tool_schema = AgentToolSchema.from_openai_json_format(config)
|
|
127
|
-
if TOOL_EXECUTOR_KEY not in config:
|
|
128
|
-
raise ValueError("Custom tool executor is required.")
|
|
129
|
-
|
|
130
|
-
return cls(
|
|
131
|
-
tool_name=agent_tool_schema.name,
|
|
132
|
-
tool_definition=agent_tool_schema,
|
|
133
|
-
tool_executor=config[TOOL_EXECUTOR_KEY],
|
|
134
|
-
)
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
You are a helpful assistant that should assist the user in the best possible way.
|
|
2
|
-
|
|
3
|
-
### Primary Task
|
|
4
|
-
{{ description }}
|
|
5
|
-
|
|
6
|
-
### Instructions
|
|
7
|
-
* Always make sure to output responses to the user in a clear, helpful format.
|
|
8
|
-
* Always avoid asking multiple questions at once. Ask questions sequentially one at a time and wait for the user's response before proceeding to next question.
|
|
9
|
-
* Always avoid making assumptions about what values to pass into tools. Ask for clarification if a user's request is ambiguous.
|
|
10
|
-
* Once your primary task, described above, is completed, you must call the `task_completed` tool to signal that you have finished assisting the user. Do not end the conversation or indicate completion without the `task_completed` tool call.
|
|
11
|
-
* Do NOT call the `task_completed` tool unless you're absolutely certain that your primary task (NOT the slot corrections, updates, etc), described above, is fully completed. Focus on the task given in the task description above.
|
|
12
|
-
* Strictly avoid making up information or ability to take some action which is not available in `tool` provided.
|
|
13
|
-
|
|
14
|
-
### Conversation history
|
|
15
|
-
{{ conversation_history }}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
You are a helpful assistant that should assist the user in the best possible way.
|
|
2
|
-
|
|
3
|
-
### Description of your capabilities
|
|
4
|
-
{{ description }}
|
|
5
|
-
|
|
6
|
-
### Task
|
|
7
|
-
* Use the tools available to gather the required information to set the following slots: {{ slot_names }}.
|
|
8
|
-
* In order to set the slot values, use the `set_slot_<slot_name>` tool.
|
|
9
|
-
|
|
10
|
-
### Instructions
|
|
11
|
-
* Always make sure to output responses to the user in a clear, helpful format.
|
|
12
|
-
* Always avoid asking multiple questions at once. Ask questions sequentially one at a time and wait for the user's response before proceeding to next question.
|
|
13
|
-
* Always avoid making assumptions about what values to pass into tools. Ask for clarification if a user's request is ambiguous.
|
|
14
|
-
* Strictly avoid making up information or ability to take some action which is not available in `tool` provided.
|
|
15
|
-
|
|
16
|
-
### Conversation history
|
|
17
|
-
{{ conversation_history }}
|
rasa/agents/utils.py
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
from typing import List, Optional
|
|
2
|
-
|
|
3
|
-
from rasa.agents.agent_manager import AgentManager
|
|
4
|
-
from rasa.agents.exceptions import AgentNotFoundException
|
|
5
|
-
from rasa.core.available_agents import (
|
|
6
|
-
AgentConfig,
|
|
7
|
-
AgentMCPServerConfig,
|
|
8
|
-
AvailableAgents,
|
|
9
|
-
)
|
|
10
|
-
from rasa.core.available_endpoints import AvailableEndpoints
|
|
11
|
-
from rasa.shared.agents.utils import get_protocol_type
|
|
12
|
-
from rasa.shared.core.domain import Domain
|
|
13
|
-
from rasa.shared.core.flows import FlowsList
|
|
14
|
-
from rasa.shared.core.flows.steps import CallFlowStep
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def resolve_agent_config(
|
|
18
|
-
agent_config: AgentConfig,
|
|
19
|
-
available_endpoints: AvailableEndpoints,
|
|
20
|
-
) -> Optional[AgentConfig]:
|
|
21
|
-
if agent_config is None:
|
|
22
|
-
return None
|
|
23
|
-
|
|
24
|
-
connections = agent_config.connections
|
|
25
|
-
mcp_connections: List[AgentMCPServerConfig] = (
|
|
26
|
-
connections.mcp_servers
|
|
27
|
-
if connections and connections.mcp_servers is not None
|
|
28
|
-
else []
|
|
29
|
-
)
|
|
30
|
-
|
|
31
|
-
for mcp_server in mcp_connections:
|
|
32
|
-
for mcp_server_endpoint in available_endpoints.mcp_servers or []:
|
|
33
|
-
if mcp_server_endpoint.name == mcp_server.name:
|
|
34
|
-
mcp_server.url = mcp_server_endpoint.url
|
|
35
|
-
mcp_server.type = mcp_server_endpoint.type
|
|
36
|
-
|
|
37
|
-
return agent_config
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
async def initialize_agents(
|
|
41
|
-
flows: FlowsList,
|
|
42
|
-
domain: Domain,
|
|
43
|
-
sub_agents: AvailableAgents,
|
|
44
|
-
) -> None:
|
|
45
|
-
"""Iterate over flows and create/connect the referenced agents."""
|
|
46
|
-
agent_manager: AgentManager = AgentManager()
|
|
47
|
-
endpoints = AvailableEndpoints.get_instance()
|
|
48
|
-
|
|
49
|
-
for flow in flows.underlying_flows:
|
|
50
|
-
for step in flow.steps:
|
|
51
|
-
if isinstance(step, CallFlowStep):
|
|
52
|
-
if flows.flow_by_id(step.call) is not None:
|
|
53
|
-
continue
|
|
54
|
-
|
|
55
|
-
if step.is_calling_mcp_tool():
|
|
56
|
-
# The call step is calling an MCP tool, so we don't need to
|
|
57
|
-
# initialize any agent.
|
|
58
|
-
continue
|
|
59
|
-
|
|
60
|
-
if not step.is_calling_agent():
|
|
61
|
-
raise AgentNotFoundException(step.call)
|
|
62
|
-
|
|
63
|
-
agent_name = step.call
|
|
64
|
-
agent_config = sub_agents.get_agent_config(agent_name)
|
|
65
|
-
resolved_agent_config = resolve_agent_config(agent_config, endpoints)
|
|
66
|
-
protocol_type = get_protocol_type(step, agent_config)
|
|
67
|
-
|
|
68
|
-
await agent_manager.connect_agent(
|
|
69
|
-
agent_name,
|
|
70
|
-
protocol_type,
|
|
71
|
-
resolved_agent_config,
|
|
72
|
-
)
|
rasa/core/available_agents.py
DELETED
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import os
|
|
4
|
-
from enum import Enum
|
|
5
|
-
from typing import Any, Dict, List, Optional
|
|
6
|
-
|
|
7
|
-
import structlog
|
|
8
|
-
from pydantic import BaseModel, Field, model_validator
|
|
9
|
-
from ruamel import yaml as yaml
|
|
10
|
-
|
|
11
|
-
from rasa.utils.singleton import Singleton
|
|
12
|
-
|
|
13
|
-
DEFAULT_AGENTS_CONFIG_FOLDER = "sub_agents"
|
|
14
|
-
|
|
15
|
-
structlogger = structlog.get_logger()
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class ProtocolConfig(str, Enum):
|
|
19
|
-
"""Supported protocols for agents."""
|
|
20
|
-
|
|
21
|
-
MCP = "MCP"
|
|
22
|
-
A2A = "A2A"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class AgentInfo(BaseModel):
|
|
26
|
-
"""Configuration for an agent."""
|
|
27
|
-
|
|
28
|
-
name: str = Field(..., description="Agent name")
|
|
29
|
-
protocol: ProtocolConfig = Field(
|
|
30
|
-
..., description="Protocol used to communicate with the agent."
|
|
31
|
-
)
|
|
32
|
-
description: str = Field(..., description="Agent description")
|
|
33
|
-
|
|
34
|
-
@model_validator(mode="before")
|
|
35
|
-
@classmethod
|
|
36
|
-
def validate_protocol(cls, values: Any) -> Any:
|
|
37
|
-
"""Validate and normalize protocol values to support lowercase input."""
|
|
38
|
-
if isinstance(values, dict) and "protocol" in values:
|
|
39
|
-
protocol_value = values["protocol"]
|
|
40
|
-
if isinstance(protocol_value, str):
|
|
41
|
-
# Map lowercase protocol names to uppercase enum values
|
|
42
|
-
protocol_mapping = {
|
|
43
|
-
"mcp": ProtocolConfig.MCP,
|
|
44
|
-
"a2a": ProtocolConfig.A2A,
|
|
45
|
-
"MCP": ProtocolConfig.MCP,
|
|
46
|
-
"A2A": ProtocolConfig.A2A,
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if protocol_value.lower() in protocol_mapping:
|
|
50
|
-
values["protocol"] = protocol_mapping[protocol_value.lower()]
|
|
51
|
-
else:
|
|
52
|
-
# If it's not a recognized protocol, let Pydantic handle the
|
|
53
|
-
# validation
|
|
54
|
-
# This will raise a proper validation error
|
|
55
|
-
pass
|
|
56
|
-
|
|
57
|
-
return values
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
class AgentConfiguration(BaseModel):
|
|
61
|
-
llm: Optional[Dict[str, Any]] = None
|
|
62
|
-
prompt_template: Optional[str] = None
|
|
63
|
-
module: Optional[str] = None
|
|
64
|
-
timeout: Optional[int] = None # timeout in seconds
|
|
65
|
-
max_retries: Optional[int] = None
|
|
66
|
-
agent_card: Optional[str] = None
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
class AgentConnections(BaseModel):
|
|
70
|
-
mcp_servers: Optional[List[AgentMCPServerConfig]] = None
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
class AgentMCPServerConfig(BaseModel):
|
|
74
|
-
name: str # Reference to MCPServerConfig
|
|
75
|
-
url: Optional[str] = None
|
|
76
|
-
type: Optional[str] = None
|
|
77
|
-
include_tools: Optional[List[str]] = None
|
|
78
|
-
exclude_tools: Optional[List[str]] = None
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
class AgentConfig(BaseModel):
|
|
82
|
-
agent: AgentInfo
|
|
83
|
-
configuration: Optional[AgentConfiguration] = None
|
|
84
|
-
connections: Optional[AgentConnections] = None
|
|
85
|
-
|
|
86
|
-
@model_validator(mode="after")
|
|
87
|
-
def check_agent_config(self) -> AgentConfig:
|
|
88
|
-
protocol = self.agent.protocol if self.agent else None
|
|
89
|
-
if protocol == ProtocolConfig.MCP:
|
|
90
|
-
if self.connections is None or self.connections.mcp_servers is None:
|
|
91
|
-
raise ValueError(
|
|
92
|
-
"For protocol 'MCP', "
|
|
93
|
-
"'mcp_servers' in 'connections' must be provided."
|
|
94
|
-
)
|
|
95
|
-
if protocol == ProtocolConfig.A2A:
|
|
96
|
-
if self.configuration is None or self.configuration.agent_card is None:
|
|
97
|
-
raise ValueError(
|
|
98
|
-
"For protocol 'A2A', "
|
|
99
|
-
"'agent_card' in 'configuration' must be provided."
|
|
100
|
-
)
|
|
101
|
-
return self
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
class AvailableAgents(metaclass=Singleton):
|
|
105
|
-
"""Collection of configured agents."""
|
|
106
|
-
|
|
107
|
-
_instance = None
|
|
108
|
-
|
|
109
|
-
def __init__(self, agents: Optional[Dict[str, AgentConfig]] = None) -> None:
|
|
110
|
-
"""Create an `AvailableAgents` object."""
|
|
111
|
-
self.agents = agents or {}
|
|
112
|
-
|
|
113
|
-
@classmethod
|
|
114
|
-
def _read_agent_folder(cls, agent_folder: str) -> AvailableAgents:
|
|
115
|
-
"""Read the different agents from the given folder."""
|
|
116
|
-
agents: Dict[str, AgentConfig] = {}
|
|
117
|
-
|
|
118
|
-
if not os.path.isdir(agent_folder):
|
|
119
|
-
if agent_folder != DEFAULT_AGENTS_CONFIG_FOLDER:
|
|
120
|
-
# User explicitly specified a folder, it should exist
|
|
121
|
-
structlogger.error(
|
|
122
|
-
f"The specified agents config folder '{agent_folder}' does not "
|
|
123
|
-
f"exist or is not a directory."
|
|
124
|
-
)
|
|
125
|
-
raise ValueError(
|
|
126
|
-
f"The specified agents config folder '{agent_folder}' does not "
|
|
127
|
-
f"exist or is not a directory."
|
|
128
|
-
)
|
|
129
|
-
else:
|
|
130
|
-
# We are using the default folder, it may not be created yet
|
|
131
|
-
# Init with an empty agents in this case
|
|
132
|
-
structlogger.warning(
|
|
133
|
-
f"Default agents config folder '{agent_folder}' does not exist. "
|
|
134
|
-
f"Agent configurations won't be loaded."
|
|
135
|
-
)
|
|
136
|
-
return cls(agents)
|
|
137
|
-
|
|
138
|
-
for agent_name in os.listdir(agent_folder):
|
|
139
|
-
config_path = os.path.join(agent_folder, agent_name, "config.yml")
|
|
140
|
-
if not os.path.isfile(config_path):
|
|
141
|
-
continue
|
|
142
|
-
try:
|
|
143
|
-
agent_config = cls._read_agent_config(config_path)
|
|
144
|
-
if not isinstance(agent_config, AgentConfig):
|
|
145
|
-
raise ValueError(f"Invalid agent config type for {agent_name}")
|
|
146
|
-
agents[agent_config.agent.name] = agent_config
|
|
147
|
-
except Exception as e:
|
|
148
|
-
raise RuntimeError(f"Failed to load agent '{agent_name}': {e}")
|
|
149
|
-
|
|
150
|
-
return cls(agents)
|
|
151
|
-
|
|
152
|
-
@staticmethod
|
|
153
|
-
def _read_agent_config(config_path: str) -> AgentConfig:
|
|
154
|
-
"""Read the agent config from a yaml file."""
|
|
155
|
-
with open(config_path, "r") as f:
|
|
156
|
-
data = yaml.safe_load(f)
|
|
157
|
-
agent_config = AgentConfig(
|
|
158
|
-
agent=AgentInfo(**data.get("agent", {})),
|
|
159
|
-
configuration=AgentConfiguration(**data.get("configuration", {})),
|
|
160
|
-
connections=AgentConnections(**data.get("connections", {})),
|
|
161
|
-
)
|
|
162
|
-
return agent_config
|
|
163
|
-
|
|
164
|
-
@classmethod
|
|
165
|
-
def get_instance(
|
|
166
|
-
cls, agent_folder: Optional[str] = DEFAULT_AGENTS_CONFIG_FOLDER
|
|
167
|
-
) -> AvailableAgents:
|
|
168
|
-
"""Get the singleton instance of `AvailableAgents`."""
|
|
169
|
-
if cls._instance is None:
|
|
170
|
-
cls._instance = cls._read_agent_folder(agent_folder)
|
|
171
|
-
return cls._instance
|
|
172
|
-
|
|
173
|
-
@classmethod
|
|
174
|
-
def reset_instance(cls) -> None:
|
|
175
|
-
cls._instance = None
|
|
176
|
-
# Also clear the metaclass singleton instances
|
|
177
|
-
if hasattr(type(cls), "_instances"):
|
|
178
|
-
type(cls)._instances.clear()
|
|
179
|
-
|
|
180
|
-
def as_json_list(self) -> List[Dict[str, Any]]:
|
|
181
|
-
"""Convert the available agents to a JSON-serializable list."""
|
|
182
|
-
return [
|
|
183
|
-
{
|
|
184
|
-
"name": agent_name,
|
|
185
|
-
"agent": agent_config.agent.model_dump(),
|
|
186
|
-
"configuration": agent_config.configuration.model_dump()
|
|
187
|
-
if agent_config.configuration
|
|
188
|
-
else None,
|
|
189
|
-
"connections": agent_config.connections.model_dump()
|
|
190
|
-
if agent_config.connections
|
|
191
|
-
else None,
|
|
192
|
-
}
|
|
193
|
-
for agent_name, agent_config in self.agents.items()
|
|
194
|
-
]
|
|
195
|
-
|
|
196
|
-
@classmethod
|
|
197
|
-
def get_agent_config(cls, agent_id: str) -> Optional[AgentConfig]:
|
|
198
|
-
instance = cls.get_instance()
|
|
199
|
-
return instance.agents.get(agent_id)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{aI as o,aJ as r}from"./index-3e293924.js";const s=(a,n)=>o.lang.round(r.parse(a)[n]),e=s;export{e as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as r}from"./graph-ca9e6217.js";var e=4;function a(o){return r(o,e)}export{a as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{p as e,f as o}from"./flowDb-956e92f1-fdebec47.js";import{f as t,g as a}from"./styles-c10674c1-897fbfdd.js";import{u as i}from"./index-3e293924.js";import"./graph-ca9e6217.js";import"./layout-d4307784.js";import"./index-3862675e-c5ceb692.js";import"./clone-a0f9c4ed.js";import"./edges-e0da2a9e-b1553799.js";import"./createText-2e5e7dd3-1c669cad.js";import"./line-0567aaa7.js";import"./array-9f3ba611.js";import"./path-53f90ab3.js";import"./channel-0cd70adf.js";const M={parser:e,db:o,renderer:t,styles:a,init:r=>{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,i({flowchart:{arrowMarkerAbsolute:r.arrowMarkerAbsolute}}),t.setConf(r.flowchart),o.clear(),o.setGen("gen-2")}};export{M as diagram};
|