rasa-pro 3.14.0.dev20250825__py3-none-any.whl → 3.14.0.dev20250901__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.

Files changed (350) hide show
  1. rasa/builder/README.md +120 -0
  2. rasa/builder/__init__.py +0 -0
  3. rasa/builder/auth.py +176 -0
  4. rasa/builder/config.py +91 -0
  5. rasa/builder/copilot/__init__.py +0 -0
  6. rasa/builder/copilot/constants.py +28 -0
  7. rasa/builder/copilot/copilot.py +376 -0
  8. rasa/builder/copilot/copilot_response_handler.py +522 -0
  9. rasa/builder/copilot/copilot_templated_message_provider.py +58 -0
  10. rasa/builder/copilot/exceptions.py +32 -0
  11. rasa/builder/copilot/models.py +464 -0
  12. rasa/builder/copilot/prompts/__init__.py +0 -0
  13. rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +771 -0
  14. rasa/builder/copilot/signing.py +305 -0
  15. rasa/builder/copilot/telemetry.py +200 -0
  16. rasa/builder/copilot/templated_messages/__init__.py +0 -0
  17. rasa/builder/copilot/templated_messages/copilot_internal_messages_templates.yml +16 -0
  18. rasa/builder/copilot/templated_messages/copilot_templated_responses.yml +38 -0
  19. rasa/builder/document_retrieval/__init__.py +0 -0
  20. rasa/builder/document_retrieval/constants.py +15 -0
  21. rasa/builder/document_retrieval/inkeep-rag-response-schema.json +64 -0
  22. rasa/builder/document_retrieval/inkeep_document_retrieval.py +238 -0
  23. rasa/builder/document_retrieval/models.py +62 -0
  24. rasa/builder/download.py +147 -0
  25. rasa/builder/exceptions.py +91 -0
  26. rasa/builder/guardrails/__init__.py +1 -0
  27. rasa/builder/guardrails/constants.py +9 -0
  28. rasa/builder/guardrails/exceptions.py +4 -0
  29. rasa/builder/guardrails/lakera.py +206 -0
  30. rasa/builder/guardrails/models.py +231 -0
  31. rasa/builder/guardrails/store.py +238 -0
  32. rasa/builder/guardrails/utils.py +328 -0
  33. rasa/builder/job_manager.py +87 -0
  34. rasa/builder/jobs.py +270 -0
  35. rasa/builder/llm_service.py +246 -0
  36. rasa/builder/logging_utils.py +265 -0
  37. rasa/builder/main.py +258 -0
  38. rasa/builder/models.py +216 -0
  39. rasa/builder/project_generator.py +462 -0
  40. rasa/builder/project_info.py +72 -0
  41. rasa/builder/scrape_rasa_docs.py +97 -0
  42. rasa/builder/service.py +1335 -0
  43. rasa/builder/shared/tracker_context.py +212 -0
  44. rasa/builder/skill_to_bot_prompt.jinja2 +164 -0
  45. rasa/builder/training_service.py +124 -0
  46. rasa/builder/validation_service.py +97 -0
  47. rasa/cli/project_templates/basic/actions/__init__ +0 -0
  48. rasa/cli/project_templates/basic/actions/action_human_handoff.py +40 -0
  49. rasa/cli/project_templates/basic/config.yml +27 -0
  50. rasa/cli/project_templates/basic/credentials.yml +33 -0
  51. rasa/cli/project_templates/basic/data/data.md +9 -0
  52. rasa/cli/project_templates/basic/data/general/feedback.yml +21 -0
  53. rasa/cli/project_templates/basic/data/general/goodbye.yml +6 -0
  54. rasa/cli/project_templates/basic/data/general/hello.yml +6 -0
  55. rasa/cli/project_templates/basic/data/general/help.yml +6 -0
  56. rasa/cli/project_templates/basic/data/general/human_handoff.yml +16 -0
  57. rasa/cli/project_templates/basic/data/general/show_faqs.yml +6 -0
  58. rasa/cli/project_templates/basic/data/system/patterns/pattern_cannot_handle.yml +7 -0
  59. rasa/cli/project_templates/basic/data/system/patterns/pattern_completed.yml +7 -0
  60. rasa/cli/project_templates/basic/data/system/patterns/pattern_correction.yml +7 -0
  61. rasa/cli/project_templates/basic/data/system/patterns/pattern_search.yml +8 -0
  62. rasa/cli/project_templates/basic/data/system/patterns/pattern_session_start.yml +8 -0
  63. rasa/cli/project_templates/basic/docs/docs.md +5 -0
  64. rasa/cli/project_templates/basic/docs/template.txt +28 -0
  65. rasa/cli/project_templates/basic/domain/domain.md +9 -0
  66. rasa/cli/project_templates/basic/domain/general/feedback.yml +25 -0
  67. rasa/cli/project_templates/basic/domain/general/goodbye.yml +9 -0
  68. rasa/cli/project_templates/basic/domain/general/hello.yml +7 -0
  69. rasa/cli/project_templates/basic/domain/general/help.yml +21 -0
  70. rasa/cli/project_templates/basic/domain/general/human_handoff.yml +32 -0
  71. rasa/cli/project_templates/basic/domain/general/show_faqs.yml +14 -0
  72. rasa/cli/project_templates/basic/domain/system/patterns/pattern_cannot_handle.yml +5 -0
  73. rasa/cli/project_templates/basic/domain/system/patterns/pattern_session_start.yml +19 -0
  74. rasa/cli/project_templates/basic/endpoints.yml +63 -0
  75. rasa/cli/project_templates/basic/prompts/rephraser_demo_personality_prompt.jinja2 +38 -0
  76. rasa/cli/project_templates/finance/actions/__init__.py +46 -0
  77. rasa/cli/project_templates/finance/actions/accounts/__init__.py +0 -0
  78. rasa/cli/project_templates/finance/actions/accounts/action_ask_account.py +47 -0
  79. rasa/cli/project_templates/finance/actions/accounts/action_check_balance.py +40 -0
  80. rasa/cli/project_templates/finance/actions/action_session_start.py +74 -0
  81. rasa/cli/project_templates/finance/actions/cards/__init__.py +0 -0
  82. rasa/cli/project_templates/finance/actions/cards/action_ask_card.py +48 -0
  83. rasa/cli/project_templates/finance/actions/cards/action_check_card_existence.py +36 -0
  84. rasa/cli/project_templates/finance/actions/cards/action_update_card_status.py +54 -0
  85. rasa/cli/project_templates/finance/actions/database.py +277 -0
  86. rasa/cli/project_templates/finance/actions/transfers/__init__.py +0 -0
  87. rasa/cli/project_templates/finance/actions/transfers/action_add_payee.py +52 -0
  88. rasa/cli/project_templates/finance/actions/transfers/action_ask_account_from.py +51 -0
  89. rasa/cli/project_templates/finance/actions/transfers/action_check_payee_existence.py +40 -0
  90. rasa/cli/project_templates/finance/actions/transfers/action_check_sufficient_funds.py +40 -0
  91. rasa/cli/project_templates/finance/actions/transfers/action_list_payees.py +46 -0
  92. rasa/cli/project_templates/finance/actions/transfers/action_process_immediate_payment.py +18 -0
  93. rasa/cli/project_templates/finance/actions/transfers/action_remove_payee.py +49 -0
  94. rasa/cli/project_templates/finance/actions/transfers/action_schedule_payment.py +19 -0
  95. rasa/cli/project_templates/finance/actions/transfers/action_validate_payment_date.py +36 -0
  96. rasa/cli/project_templates/finance/config.yml +21 -0
  97. rasa/cli/project_templates/finance/credentials.yml +32 -0
  98. rasa/cli/project_templates/finance/csvs/accounts.csv +8 -0
  99. rasa/cli/project_templates/finance/csvs/advisors.csv +7 -0
  100. rasa/cli/project_templates/finance/csvs/appointments.csv +211 -0
  101. rasa/cli/project_templates/finance/csvs/branches.csv +10 -0
  102. rasa/cli/project_templates/finance/csvs/cards.csv +11 -0
  103. rasa/cli/project_templates/finance/csvs/payees.csv +11 -0
  104. rasa/cli/project_templates/finance/csvs/transactions.csv +71 -0
  105. rasa/cli/project_templates/finance/csvs/users.csv +4 -0
  106. rasa/cli/project_templates/finance/data/accounts/check_balance.yml +10 -0
  107. rasa/cli/project_templates/finance/data/cards/block_card.yml +66 -0
  108. rasa/cli/project_templates/finance/data/cards/select_card.yml +12 -0
  109. rasa/cli/project_templates/finance/data/general/bot_identity.yml +6 -0
  110. rasa/cli/project_templates/finance/data/general/feedback.yml +20 -0
  111. rasa/cli/project_templates/finance/data/general/goodbye.yml +6 -0
  112. rasa/cli/project_templates/finance/data/general/hello.yml +7 -0
  113. rasa/cli/project_templates/finance/data/general/help.yml +9 -0
  114. rasa/cli/project_templates/finance/data/general/human_handoff.yml +16 -0
  115. rasa/cli/project_templates/finance/data/general/welcome.yml +9 -0
  116. rasa/cli/project_templates/finance/data/system/patterns/pattern_chitchat.yml +5 -0
  117. rasa/cli/project_templates/finance/data/system/patterns/pattern_completed.yml +7 -0
  118. rasa/cli/project_templates/finance/data/system/patterns/pattern_correction.yml +7 -0
  119. rasa/cli/project_templates/finance/data/system/patterns/pattern_search.yml +8 -0
  120. rasa/cli/project_templates/finance/data/system/patterns/pattern_session_start.yml +8 -0
  121. rasa/cli/project_templates/finance/data/system/source/accounts.json +51 -0
  122. rasa/cli/project_templates/finance/data/system/source/advisors.json +44 -0
  123. rasa/cli/project_templates/finance/data/system/source/appointments.json +1474 -0
  124. rasa/cli/project_templates/finance/data/system/source/branches.json +47 -0
  125. rasa/cli/project_templates/finance/data/system/source/cards.json +72 -0
  126. rasa/cli/project_templates/finance/data/system/source/payees.json +74 -0
  127. rasa/cli/project_templates/finance/data/system/source/transactions.json +492 -0
  128. rasa/cli/project_templates/finance/data/system/source/users.json +29 -0
  129. rasa/cli/project_templates/finance/data/transfers/add_payee.yml +29 -0
  130. rasa/cli/project_templates/finance/data/transfers/list_payees.yml +5 -0
  131. rasa/cli/project_templates/finance/data/transfers/remove_payee.yml +21 -0
  132. rasa/cli/project_templates/finance/data/transfers/transfer_money.yml +67 -0
  133. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/consequences_of_blocking_card.txt +8 -0
  134. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/reasons_to_block_card.txt +8 -0
  135. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/recovering_from_card_fraud.txt +8 -0
  136. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/tips_for_card_security.txt +8 -0
  137. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/what_to_do_if_card_is_lost.txt +8 -0
  138. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/account_balance_security.txt +7 -0
  139. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/common_balance_inquiries.txt +8 -0
  140. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/methods_to_check_balance.txt +8 -0
  141. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/understanding_balance_updates.txt +8 -0
  142. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/what_to_do_if_balance_is_incorrect.txt +8 -0
  143. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/benefits_of_authorised_payees.txt +8 -0
  144. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/common_issues_with_payees.txt +8 -0
  145. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/general_payee_information.txt +8 -0
  146. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/payee_management_tips.txt +8 -0
  147. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/understanding_payee_types.txt +8 -0
  148. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/common_transfer_errors.txt +8 -0
  149. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/fees_for_transfers.txt +8 -0
  150. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/general_transfer_information.txt +8 -0
  151. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/security_tips_for_transfers.txt +8 -0
  152. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/transfer_processing_times.txt +8 -0
  153. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part1.txt +50 -0
  154. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part10.txt +50 -0
  155. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part11.txt +48 -0
  156. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part12.txt +50 -0
  157. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part13.txt +50 -0
  158. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part14.txt +47 -0
  159. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part15.txt +50 -0
  160. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part16.txt +50 -0
  161. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part17.txt +47 -0
  162. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part18.txt +50 -0
  163. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part19.txt +50 -0
  164. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part2.txt +50 -0
  165. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part20.txt +47 -0
  166. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part21.txt +50 -0
  167. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part22.txt +50 -0
  168. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part23.txt +47 -0
  169. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part24.txt +50 -0
  170. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part25.txt +50 -0
  171. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part26.txt +47 -0
  172. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part27.txt +50 -0
  173. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part28.txt +50 -0
  174. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part29.txt +47 -0
  175. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part3.txt +47 -0
  176. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part30.txt +50 -0
  177. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part31.txt +50 -0
  178. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part32.txt +47 -0
  179. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part33.txt +50 -0
  180. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part34.txt +50 -0
  181. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part35.txt +47 -0
  182. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part36.txt +50 -0
  183. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part37.txt +50 -0
  184. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part38.txt +47 -0
  185. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part39.txt +50 -0
  186. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part4.txt +50 -0
  187. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part40.txt +50 -0
  188. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part41.txt +47 -0
  189. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part42.txt +50 -0
  190. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part43.txt +50 -0
  191. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part44.txt +47 -0
  192. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part45.txt +50 -0
  193. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part46.txt +50 -0
  194. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part47.txt +47 -0
  195. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part48.txt +50 -0
  196. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part49.txt +50 -0
  197. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part5.txt +50 -0
  198. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part50.txt +47 -0
  199. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part51.txt +50 -0
  200. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part52.txt +50 -0
  201. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part53.txt +47 -0
  202. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part54.txt +50 -0
  203. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part55.txt +50 -0
  204. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part56.txt +47 -0
  205. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part57.txt +50 -0
  206. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part58.txt +50 -0
  207. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part59.txt +47 -0
  208. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part6.txt +47 -0
  209. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part60.txt +50 -0
  210. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part61.txt +50 -0
  211. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part7.txt +50 -0
  212. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part8.txt +50 -0
  213. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part9.txt +47 -0
  214. rasa/cli/project_templates/finance/domain/accounts/check_balance.yml +11 -0
  215. rasa/cli/project_templates/finance/domain/cards/block_card.yml +101 -0
  216. rasa/cli/project_templates/finance/domain/cards/select_card.yml +12 -0
  217. rasa/cli/project_templates/finance/domain/general/assistant_details.yml +12 -0
  218. rasa/cli/project_templates/finance/domain/general/bot_identity.yml +5 -0
  219. rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +5 -0
  220. rasa/cli/project_templates/finance/domain/general/defaults.yml +24 -0
  221. rasa/cli/project_templates/finance/domain/general/feedback.yml +28 -0
  222. rasa/cli/project_templates/finance/domain/general/goodbye.yml +7 -0
  223. rasa/cli/project_templates/finance/domain/general/help.yml +5 -0
  224. rasa/cli/project_templates/finance/domain/general/human_handoff.yml +30 -0
  225. rasa/cli/project_templates/finance/domain/general/utils.yml +13 -0
  226. rasa/cli/project_templates/finance/domain/general/welcome.yml +8 -0
  227. rasa/cli/project_templates/finance/domain/transfers/add_payee.yml +47 -0
  228. rasa/cli/project_templates/finance/domain/transfers/list_payees.yml +4 -0
  229. rasa/cli/project_templates/finance/domain/transfers/remove_payee.yml +16 -0
  230. rasa/cli/project_templates/finance/domain/transfers/transfer_money.yml +79 -0
  231. rasa/cli/project_templates/finance/endpoints.yml +63 -0
  232. rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +19 -0
  233. rasa/cli/project_templates/telco/actions/__init__.py +0 -0
  234. rasa/cli/project_templates/telco/actions/billing/__init__.py +0 -0
  235. rasa/cli/project_templates/telco/actions/billing/actions_billing.py +204 -0
  236. rasa/cli/project_templates/telco/actions/general/__init__.py +0 -0
  237. rasa/cli/project_templates/telco/actions/general/action_human_handoff.py +49 -0
  238. rasa/cli/project_templates/telco/actions/network/__init__.py +0 -0
  239. rasa/cli/project_templates/telco/actions/network/actions_get_data_from_db.py +48 -0
  240. rasa/cli/project_templates/telco/actions/network/actions_run_diagnostics.py +28 -0
  241. rasa/cli/project_templates/telco/actions/network/actions_session_start.py +18 -0
  242. rasa/cli/project_templates/telco/config.yml +27 -0
  243. rasa/cli/project_templates/telco/credentials.yml +33 -0
  244. rasa/cli/project_templates/telco/csvs/billing.csv +19 -0
  245. rasa/cli/project_templates/telco/csvs/customers.csv +5 -0
  246. rasa/cli/project_templates/telco/data/billing/flow_understand_bill.yml +45 -0
  247. rasa/cli/project_templates/telco/data/general/bot_challenge.yml +6 -0
  248. rasa/cli/project_templates/telco/data/general/feedback.yml +20 -0
  249. rasa/cli/project_templates/telco/data/general/goodbye.yml +6 -0
  250. rasa/cli/project_templates/telco/data/general/hello.yml +6 -0
  251. rasa/cli/project_templates/telco/data/general/human_handoff.yml +16 -0
  252. rasa/cli/project_templates/telco/data/general/patterns.yml +30 -0
  253. rasa/cli/project_templates/telco/data/network/flow_reboot_router.yml +8 -0
  254. rasa/cli/project_templates/telco/data/network/flow_reset_router.yml +7 -0
  255. rasa/cli/project_templates/telco/data/network/flow_solve_internet_issue.yml +73 -0
  256. rasa/cli/project_templates/telco/docs/docs.md +5 -0
  257. rasa/cli/project_templates/telco/docs/network/reset_vs_rboot_router.txt +1 -0
  258. rasa/cli/project_templates/telco/docs/network/restart_router.txt +6 -0
  259. rasa/cli/project_templates/telco/docs/network/run_speed_test.txt +6 -0
  260. rasa/cli/project_templates/telco/domain/billing/domain_undertand_bill.yml +102 -0
  261. rasa/cli/project_templates/telco/domain/general/bot_challenge.yml +4 -0
  262. rasa/cli/project_templates/telco/domain/general/feedback.yml +25 -0
  263. rasa/cli/project_templates/telco/domain/general/goodbye.yml +7 -0
  264. rasa/cli/project_templates/telco/domain/general/hello.yml +5 -0
  265. rasa/cli/project_templates/telco/domain/general/human_handoff.yml +29 -0
  266. rasa/cli/project_templates/telco/domain/general/patterns.yml +33 -0
  267. rasa/cli/project_templates/telco/domain/network/domain_reboot_router.yml +21 -0
  268. rasa/cli/project_templates/telco/domain/network/domain_reset_router.yml +12 -0
  269. rasa/cli/project_templates/telco/domain/network/domain_run_speed_test.yml +25 -0
  270. rasa/cli/project_templates/telco/domain/network/domain_solve_internet_issue.yml +75 -0
  271. rasa/cli/project_templates/telco/domain/shared.yml +129 -0
  272. rasa/cli/project_templates/telco/endpoints.yml +63 -0
  273. rasa/cli/project_templates/telco/prompts/rephraser_demo_personality_prompt.jinja2 +40 -0
  274. rasa/cli/project_templates/tutorial/config.yml +2 -1
  275. rasa/cli/scaffold.py +46 -2
  276. rasa/core/actions/action.py +0 -1
  277. rasa/core/channels/inspector/dist/assets/{arc-1ddec37b.js → arc-18042c22.js} +1 -1
  278. rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-18af387c.js → blockDiagram-38ab4fdb-fdd6bcfa.js} +1 -1
  279. rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-250127a3.js → c4Diagram-3d4e48cf-f5ae6786.js} +1 -1
  280. rasa/core/channels/inspector/dist/assets/channel-b9b536fc.js +1 -0
  281. rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-c3388b34.js → classDiagram-70f12bd4-81efba3e.js} +1 -1
  282. rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-9c893a82.js → classDiagram-v2-f2320105-3b6b6a92.js} +1 -1
  283. rasa/core/channels/inspector/dist/assets/clone-78d2ddcf.js +1 -0
  284. rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-c111213b.js → createText-2e5e7dd3-31422447.js} +1 -1
  285. rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-812a729d.js → edges-e0da2a9e-518a90db.js} +1 -1
  286. rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-fd5051bc.js → erDiagram-9861fffd-a6d3c25a.js} +1 -1
  287. rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-3287ac02.js → flowDb-956e92f1-e048c2be.js} +1 -1
  288. rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-692fb0b2.js → flowDiagram-66a62f08-c7474c91.js} +1 -1
  289. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-8b09c060.js +1 -0
  290. rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-008376f1.js → flowchart-elk-definition-4a651766-cb4d8723.js} +1 -1
  291. rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-df330a69.js → ganttDiagram-c361ad54-346636a2.js} +1 -1
  292. rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-e03676fb.js → gitGraphDiagram-72cf32ee-7c508874.js} +1 -1
  293. rasa/core/channels/inspector/dist/assets/{graph-46fad2ba.js → graph-14702d8a.js} +1 -1
  294. rasa/core/channels/inspector/dist/assets/{index-3862675e-a484ac55.js → index-3862675e-f18b534b.js} +1 -1
  295. rasa/core/channels/inspector/dist/assets/{index-a003633f.js → index-4d4bdf3a.js} +231 -231
  296. rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-3f9e6ec2.js → infoDiagram-f8f76790-64154b83.js} +1 -1
  297. rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-79f72383.js → journeyDiagram-49397b02-833a5f95.js} +1 -1
  298. rasa/core/channels/inspector/dist/assets/{layout-aad098e5.js → layout-5a3b2123.js} +1 -1
  299. rasa/core/channels/inspector/dist/assets/{line-219ab7ae.js → line-2272a8c7.js} +1 -1
  300. rasa/core/channels/inspector/dist/assets/{linear-2cddbe62.js → linear-35bcf273.js} +1 -1
  301. rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-1d41ed99.js → mindmap-definition-fc14e90a-92dcb0e9.js} +1 -1
  302. rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-cc496ee8.js → pieDiagram-8a3498a8-94dbc900.js} +1 -1
  303. rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-84d32884.js → quadrantDiagram-120e2f19-8b7a9c33.js} +1 -1
  304. rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-c0deb984.js → requirementDiagram-deff3bca-6f7eab81.js} +1 -1
  305. rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-b9d7fd62.js → sankeyDiagram-04a897e0-f43e581d.js} +1 -1
  306. rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-7d517565.js → sequenceDiagram-704730f1-0bcbefc3.js} +1 -1
  307. rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-98ef9b27.js → stateDiagram-587899a1-b8a74083.js} +1 -1
  308. rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-cee70748.js → stateDiagram-v2-d93cdb3a-2070218f.js} +1 -1
  309. rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-3f9d1c96.js → styles-6aaf32cf-f1d54e34.js} +1 -1
  310. rasa/core/channels/inspector/dist/assets/{styles-9a916d00-67471923.js → styles-9a916d00-980de489.js} +1 -1
  311. rasa/core/channels/inspector/dist/assets/{styles-c10674c1-bd093fb7.js → styles-c10674c1-3c03abde.js} +1 -1
  312. rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-675794e8.js → svgDrawCommon-08f97a94-46ba068f.js} +1 -1
  313. rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-0ac67617.js → timeline-definition-85554ec2-901f5e3d.js} +1 -1
  314. rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-c018dc37.js → xychartDiagram-e933f94c-acbc628a.js} +1 -1
  315. rasa/core/channels/inspector/dist/index.html +2 -2
  316. rasa/core/channels/inspector/index.html +1 -1
  317. rasa/core/channels/inspector/src/App.tsx +10 -11
  318. rasa/core/channels/inspector/src/components/DialogueInformation.tsx +12 -3
  319. rasa/core/channels/studio_chat.py +25 -7
  320. rasa/core/policies/enterprise_search_policy.py +4 -7
  321. rasa/core/policies/flows/flow_executor.py +8 -1
  322. rasa/dialogue_understanding/generator/flow_retrieval.py +10 -9
  323. rasa/engine/storage/local_model_storage.py +45 -2
  324. rasa/model_manager/model_api.py +1 -2
  325. rasa/model_manager/runner_service.py +1 -1
  326. rasa/model_manager/trainer_service.py +12 -9
  327. rasa/model_manager/utils.py +1 -29
  328. rasa/shared/core/domain.py +62 -15
  329. rasa/shared/core/flows/flow_step.py +7 -1
  330. rasa/shared/core/flows/steps/call.py +8 -1
  331. rasa/shared/core/flows/yaml_flows_io.py +16 -8
  332. rasa/shared/core/slots.py +4 -0
  333. rasa/shared/importers/importer.py +6 -0
  334. rasa/shared/importers/utils.py +77 -1
  335. rasa/studio/upload.py +12 -46
  336. rasa/telemetry.py +97 -23
  337. rasa/utils/io.py +27 -9
  338. rasa/utils/json_utils.py +6 -1
  339. rasa/utils/log_utils.py +5 -1
  340. rasa/utils/openapi.py +144 -0
  341. rasa/validator.py +7 -3
  342. rasa/version.py +1 -1
  343. {rasa_pro-3.14.0.dev20250825.dist-info → rasa_pro-3.14.0.dev20250901.dist-info}/METADATA +9 -10
  344. {rasa_pro-3.14.0.dev20250825.dist-info → rasa_pro-3.14.0.dev20250901.dist-info}/RECORD +347 -73
  345. rasa/core/channels/inspector/dist/assets/channel-59f6d54b.js +0 -1
  346. rasa/core/channels/inspector/dist/assets/clone-26177ddb.js +0 -1
  347. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-29c03f5a.js +0 -1
  348. {rasa_pro-3.14.0.dev20250825.dist-info → rasa_pro-3.14.0.dev20250901.dist-info}/NOTICE +0 -0
  349. {rasa_pro-3.14.0.dev20250825.dist-info → rasa_pro-3.14.0.dev20250901.dist-info}/WHEEL +0 -0
  350. {rasa_pro-3.14.0.dev20250825.dist-info → rasa_pro-3.14.0.dev20250901.dist-info}/entry_points.txt +0 -0
rasa/builder/main.py ADDED
@@ -0,0 +1,258 @@
1
+ #!/usr/bin/env python3
2
+ """Main entry point for the prompt-to-bot service."""
3
+
4
+ import asyncio
5
+ import logging
6
+ import os
7
+ import sys
8
+ from typing import Optional
9
+
10
+ import structlog
11
+ from sanic import HTTPResponse, Sanic
12
+ from sanic.request import Request
13
+ from sanic_openapi import openapi3_blueprint
14
+
15
+ import rasa.core.utils
16
+ import rasa.telemetry
17
+ from rasa.builder import config
18
+ from rasa.builder.logging_utils import (
19
+ attach_request_id_processor,
20
+ collecting_logs_processor,
21
+ log_request_end,
22
+ log_request_start,
23
+ )
24
+ from rasa.builder.service import bp, setup_project_generator
25
+ from rasa.core.agent import Agent, load_agent
26
+ from rasa.core.available_endpoints import AvailableEndpoints
27
+ from rasa.core.channels.studio_chat import StudioChatInput
28
+ from rasa.model import get_latest_model
29
+ from rasa.server import configure_cors
30
+ from rasa.utils.common import configure_logging_and_warnings
31
+ from rasa.utils.log_utils import configure_structlog
32
+ from rasa.utils.sanic_error_handler import register_custom_sanic_error_handler
33
+
34
+ structlogger = structlog.get_logger()
35
+
36
+
37
+ def setup_logging() -> None:
38
+ """Setup logging configuration."""
39
+ log_level = logging.DEBUG
40
+
41
+ configure_logging_and_warnings(
42
+ log_level=log_level,
43
+ logging_config_file=None,
44
+ warn_only_once=True,
45
+ filter_repeated_logs=True,
46
+ )
47
+
48
+ configure_structlog(
49
+ log_level,
50
+ include_time=True,
51
+ additional_processors=[attach_request_id_processor, collecting_logs_processor],
52
+ )
53
+
54
+
55
+ def setup_input_channel() -> StudioChatInput:
56
+ """Setup the input channel for chat interactions."""
57
+ studio_chat_credentials = config.get_default_credentials().get(
58
+ StudioChatInput.name()
59
+ )
60
+ return StudioChatInput.from_credentials(credentials=studio_chat_credentials)
61
+
62
+
63
+ async def try_load_existing_agent(project_folder: str) -> Optional[Agent]:
64
+ """Try to load an existing agent from the project's models directory.
65
+
66
+ Args:
67
+ project_folder: Path to the project folder
68
+
69
+ Returns:
70
+ Loaded Agent instance if successful, None otherwise
71
+ """
72
+ models_dir = os.path.join(project_folder, "models")
73
+
74
+ if not os.path.exists(models_dir) or not os.path.isdir(models_dir):
75
+ structlogger.debug("No models directory found", models_dir=models_dir)
76
+ return None
77
+
78
+ try:
79
+ # Find the latest model in the models directory
80
+ latest_model_path = get_latest_model(models_dir)
81
+ if not latest_model_path:
82
+ structlogger.debug(
83
+ "No models found in models directory", models_dir=models_dir
84
+ )
85
+ return None
86
+
87
+ structlogger.info(
88
+ "Found existing model, attempting to load", model_path=latest_model_path
89
+ )
90
+
91
+ # Get available endpoints for agent loading
92
+ available_endpoints = AvailableEndpoints.get_instance()
93
+
94
+ # Load the agent
95
+ agent = await load_agent(
96
+ model_path=latest_model_path, endpoints=available_endpoints
97
+ )
98
+
99
+ if agent and agent.is_ready():
100
+ structlogger.info(
101
+ "Successfully loaded existing agent", model_path=latest_model_path
102
+ )
103
+ return agent
104
+ else:
105
+ structlogger.warning(
106
+ "Agent loaded but not ready", model_path=latest_model_path
107
+ )
108
+ return None
109
+
110
+ except Exception as e:
111
+ structlogger.warning(
112
+ "Failed to load existing agent",
113
+ models_dir=models_dir,
114
+ error=str(e),
115
+ exc_info=True,
116
+ )
117
+ return None
118
+
119
+
120
+ def setup_middleware(app: Sanic) -> None:
121
+ """Setup middleware for request/response processing."""
122
+
123
+ @app.middleware("request") # type: ignore[misc,no-untyped-call]
124
+ async def log_request(request: Request) -> None:
125
+ # store start time on request ctx for later latency calculation
126
+ request.ctx._start_time = log_request_start(request)
127
+
128
+ @app.middleware("response") # type: ignore[misc,no-untyped-call]
129
+ async def log_response(request: Request, response: HTTPResponse) -> None:
130
+ try:
131
+ start = getattr(request.ctx, "_start_time", None)
132
+ if start is None:
133
+ # If for some reason the request middleware didn't run
134
+ start = log_request_start(request)
135
+ # propagate correlation id for clients
136
+ correlation_id = getattr(request.ctx, "correlation_id", None)
137
+ if correlation_id:
138
+ response.headers["X-Correlation-Id"] = correlation_id
139
+ log_request_end(request, response, start)
140
+ except Exception:
141
+ # avoid breaking response path
142
+ pass
143
+
144
+
145
+ def create_app(project_folder: str) -> Sanic:
146
+ """Create and configure the Sanic app."""
147
+ app = Sanic("BotBuilderService")
148
+
149
+ # Basic app configuration
150
+ app.config.REQUEST_TIMEOUT = 60 # 1 minute timeout
151
+ # Expose auth toggle to app.config so decorators can read it
152
+ app.config.USE_AUTHENTICATION = True
153
+
154
+ structlogger.debug(
155
+ "builder.main.create_app",
156
+ project_folder=project_folder,
157
+ use_authentication=app.config.USE_AUTHENTICATION,
158
+ rasa_version=rasa.__version__,
159
+ )
160
+ app.ctx.agent = None
161
+
162
+ # Set up project generator and store in app context
163
+ app.ctx.project_generator = setup_project_generator(project_folder)
164
+
165
+ # Set up input channel and store in app context
166
+ app.ctx.input_channel = setup_input_channel()
167
+
168
+ # Register the blueprint
169
+ app.blueprint(bp)
170
+
171
+ # OpenAPI docs
172
+ app.blueprint(openapi3_blueprint)
173
+ app.config.API_TITLE = "Bot Builder API"
174
+ app.config.API_VERSION = rasa.__version__
175
+ app.config.API_DESCRIPTION = (
176
+ "API for building conversational AI bots from prompts and templates. "
177
+ "The API allows to change the assistant and retrain it with new data."
178
+ )
179
+
180
+ # Setup middleware
181
+ setup_middleware(app)
182
+
183
+ configure_cors(app, cors_origins=config.CORS_ORIGINS)
184
+
185
+ # Register input channel webhooks
186
+ from rasa.core import channels
187
+
188
+ channels.channel.register([app.ctx.input_channel], app, route="/webhooks/")
189
+
190
+ # Register startup event handler for agent loading
191
+ @app.after_server_start
192
+ async def load_agent_on_startup(
193
+ app: Sanic, loop: asyncio.AbstractEventLoop
194
+ ) -> None:
195
+ """Load existing agent if available when server starts."""
196
+ try:
197
+ existing_agent = await try_load_existing_agent(project_folder)
198
+ if existing_agent:
199
+ app.ctx.agent = existing_agent
200
+ structlogger.info("Agent loaded on server startup")
201
+ else:
202
+ structlogger.info(
203
+ "No existing agent found, server starting without agent"
204
+ )
205
+ except Exception as e:
206
+ structlogger.warning("Failed to load agent on server startup", error=str(e))
207
+
208
+ return app
209
+
210
+
211
+ def main(project_folder: Optional[str] = None) -> None:
212
+ """Main entry point."""
213
+ try:
214
+ # Setup logging
215
+ setup_logging()
216
+
217
+ # Setup telemetry
218
+ rasa.telemetry.initialize_telemetry()
219
+ rasa.telemetry.initialize_error_reporting(private_mode=False)
220
+
221
+ # working directory needs to be the project folder, e.g.
222
+ # for relative paths (./docs) in a projects config to work
223
+ if not project_folder:
224
+ import tempfile
225
+
226
+ project_folder = tempfile.mkdtemp(prefix="rasa_builder_")
227
+
228
+ os.chdir(project_folder)
229
+
230
+ # Create and configure app
231
+ app = create_app(project_folder)
232
+ register_custom_sanic_error_handler(app)
233
+
234
+ # Run the service
235
+ structlogger.info(
236
+ "service.starting",
237
+ host=config.BUILDER_SERVER_HOST,
238
+ port=config.BUILDER_SERVER_PORT,
239
+ )
240
+
241
+ app.run(
242
+ host=config.BUILDER_SERVER_HOST,
243
+ port=config.BUILDER_SERVER_PORT,
244
+ legacy=True,
245
+ motd=False,
246
+ )
247
+
248
+ except KeyboardInterrupt:
249
+ print("\nService stopped by user")
250
+ sys.exit(0)
251
+ except Exception as e:
252
+ print(f"Failed to start service: {e}")
253
+ sys.exit(1)
254
+
255
+
256
+ if __name__ == "__main__":
257
+ project_folder = sys.argv[1] if len(sys.argv) > 1 else None
258
+ main(project_folder)
rasa/builder/models.py ADDED
@@ -0,0 +1,216 @@
1
+ """Pydantic models for request/response validation."""
2
+
3
+ import json
4
+ from enum import Enum
5
+ from pathlib import Path
6
+ from typing import Any, Dict, List, Literal, Optional
7
+
8
+ import structlog
9
+ from pydantic import BaseModel, Field, validator
10
+
11
+ from rasa.cli.scaffold import ProjectTemplateName
12
+ from rasa.shared.importers.importer import TrainingDataImporter
13
+
14
+ structlogger = structlog.get_logger()
15
+
16
+
17
+ class PromptRequest(BaseModel):
18
+ """Request model for prompt-to-bot endpoint."""
19
+
20
+ prompt: str = Field(
21
+ ..., min_length=1, max_length=10000, description="The skill description prompt"
22
+ )
23
+
24
+ @validator("prompt")
25
+ def validate_prompt(cls, v: str) -> str:
26
+ if not v.strip():
27
+ raise ValueError("Prompt cannot be empty or whitespace only")
28
+ return v.strip()
29
+
30
+
31
+ class TemplateRequest(BaseModel):
32
+ """Request model for template-to-bot endpoint."""
33
+
34
+ template_name: ProjectTemplateName = Field(
35
+ ...,
36
+ description=(
37
+ f"The template name to use ({ProjectTemplateName.supported_values()})"
38
+ ),
39
+ )
40
+
41
+ @validator("template_name")
42
+ def validate_template_name(cls, v: Any) -> Any:
43
+ if v not in ProjectTemplateName:
44
+ raise ValueError(
45
+ f"Template name must be one of {ProjectTemplateName.supported_values()}"
46
+ )
47
+ return v
48
+
49
+
50
+ class BotDataUpdateRequest(BaseModel):
51
+ """Request model for bot data updates."""
52
+
53
+ domain_yml: Optional[str] = Field(None, alias="domain.yml")
54
+ flows_yml: Optional[str] = Field(None, alias="flows.yml")
55
+ config_yml: Optional[str] = Field(None, alias="config.yml")
56
+
57
+ class Config:
58
+ """Config for BotDataUpdateRequest."""
59
+
60
+ allow_population_by_field_name = True
61
+
62
+
63
+ class BotData(BaseModel):
64
+ """Data of a running assistant."""
65
+
66
+ domain: Dict[str, Any] = Field(..., description="The domain of the assistant.")
67
+ flows: Dict[str, Any] = Field(..., description="The flows of the assistant.")
68
+
69
+
70
+ class AssistantInfo(BaseModel):
71
+ """Basic information about the loaded assistant."""
72
+
73
+ assistant_id: Optional[str] = Field(
74
+ None,
75
+ description=(
76
+ "Assistant identifier coming from `assistant_id` in the model "
77
+ "metadata (config.yml)."
78
+ ),
79
+ )
80
+
81
+
82
+ class ApiErrorResponse(BaseModel):
83
+ """API error response model."""
84
+
85
+ status: Literal["error"] = "error"
86
+ error: str = Field(...)
87
+ details: Optional[Dict[str, Any]] = Field(None)
88
+
89
+
90
+ class ServerSentEventType(str, Enum):
91
+ progress = "progress"
92
+ error = "error"
93
+ _EOF = "_EOF"
94
+
95
+
96
+ class ServerSentEvent(BaseModel):
97
+ """Generic Server-Sent Event payload."""
98
+
99
+ event: str = Field(..., description="SSE event name / type")
100
+ data: Dict[str, Any] = Field(
101
+ default_factory=dict,
102
+ description="Arbitrary JSON-serializable payload",
103
+ )
104
+
105
+ @classmethod
106
+ def build(cls, event: str, data: Any) -> "ServerSentEvent":
107
+ """General-purpose constructor.
108
+
109
+ Args:
110
+ event: The event name (e.g. "progress", "error").
111
+ data: Arbitrary key-value pairs to include in the payload.
112
+
113
+ Returns:
114
+ A ServerSentEvent instance with the specified event and data.
115
+ """
116
+ return cls(event=event, data=data)
117
+
118
+ @classmethod
119
+ def eof(cls) -> "ServerSentEvent":
120
+ """Helper that returns the special end-of-stream marker."""
121
+ return cls(event=ServerSentEventType._EOF.value, data={})
122
+
123
+ def format(self) -> str:
124
+ """Return the text representation used by SSE protocols."""
125
+ return (
126
+ f"event: {self.event}\n"
127
+ f"data: {json.dumps(self.data, separators=(', ', ': '))}\n\n"
128
+ )
129
+
130
+
131
+ class JobStatusEvent(ServerSentEvent):
132
+ """Job status event with special handling for progress and error states."""
133
+
134
+ @classmethod
135
+ def from_status(
136
+ cls,
137
+ status: str,
138
+ message: Optional[str] = None,
139
+ ) -> "JobStatusEvent":
140
+ """Factory for job-status events.
141
+
142
+ Args:
143
+ status: The job status (e.g. "training", "train_success").
144
+ message: Optional error message for error events.
145
+
146
+ Returns:
147
+ A JobStatusEvent instance with the appropriate event type and data.
148
+ """
149
+ event_type = (
150
+ ServerSentEventType.error if message else ServerSentEventType.progress
151
+ )
152
+
153
+ payload: Dict[str, Any] = {"status": status}
154
+ if message:
155
+ payload["message"] = message
156
+
157
+ return cls(event=event_type.value, data=payload)
158
+
159
+
160
+ class ValidationResult(BaseModel):
161
+ """Result of validation operation."""
162
+
163
+ is_valid: bool = Field(...)
164
+ errors: Optional[List[str]] = Field(None)
165
+ warnings: Optional[List[str]] = Field(None)
166
+
167
+
168
+ class TrainingResult(BaseModel):
169
+ """Result of training operation."""
170
+
171
+ success: bool = Field(...)
172
+ model_path: Optional[str] = Field(None)
173
+ error: Optional[str] = Field(None)
174
+
175
+
176
+ BotFiles = Dict[str, Optional[str]]
177
+
178
+
179
+ class JobStatus(str, Enum):
180
+ received = "received"
181
+ done = "done"
182
+ error = "error"
183
+
184
+ generating = "generating"
185
+ generation_success = "generation_success"
186
+ generation_error = "generation_error"
187
+
188
+ training = "training"
189
+ train_success = "train_success"
190
+ train_error = "train_error"
191
+
192
+ validating = "validating"
193
+ validation_success = "validation_success"
194
+ validation_error = "validation_error"
195
+
196
+
197
+ class JobCreateResponse(BaseModel):
198
+ job_id: str = Field(...)
199
+ status: JobStatus = JobStatus.received
200
+
201
+
202
+ class TrainingInput(BaseModel):
203
+ """Input for training a model."""
204
+
205
+ model_config = {"arbitrary_types_allowed": True}
206
+
207
+ importer: TrainingDataImporter = Field(..., description="Training data importer")
208
+ endpoints_file: Path = Field(..., description="Path to the endpoints file")
209
+
210
+
211
+ class AgentStatus(str, Enum):
212
+ """Status of the agent."""
213
+
214
+ not_loaded = "not_loaded"
215
+ ready = "ready"
216
+ not_ready = "not_ready"