rasa-pro 3.13.1a18__py3-none-any.whl → 3.13.1.dev1__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/__init__.py +6 -0
- rasa/cli/scaffold.py +3 -22
- rasa/core/actions/action.py +3 -5
- rasa/core/channels/studio_chat.py +10 -34
- rasa/core/policies/enterprise_search_policy.py +8 -7
- rasa/core/policies/flows/flow_executor.py +1 -8
- rasa/dialogue_understanding/generator/flow_retrieval.py +9 -10
- rasa/dialogue_understanding/generator/llm_based_command_generator.py +15 -4
- rasa/dialogue_understanding/generator/llm_command_generator.py +3 -1
- rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +48 -3
- rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +15 -1
- rasa/hooks.py +55 -0
- rasa/llm_fine_tuning/utils.py +4 -2
- rasa/model_manager/model_api.py +3 -2
- rasa/model_manager/runner_service.py +1 -1
- rasa/model_manager/trainer_service.py +9 -12
- rasa/model_manager/utils.py +29 -1
- rasa/monkey_patches.py +91 -0
- rasa/shared/constants.py +6 -0
- rasa/shared/core/domain.py +15 -62
- rasa/shared/core/flows/flow_step.py +1 -7
- rasa/shared/core/flows/yaml_flows_io.py +8 -16
- rasa/shared/core/slots.py +0 -4
- rasa/shared/importers/importer.py +0 -6
- rasa/shared/importers/utils.py +1 -77
- rasa/shared/providers/constants.py +10 -0
- rasa/shared/providers/llm/_base_litellm_client.py +14 -4
- rasa/shared/providers/llm/litellm_router_llm_client.py +23 -12
- rasa/shared/providers/llm/llm_client.py +19 -15
- rasa/shared/providers/llm/self_hosted_llm_client.py +23 -18
- rasa/studio/upload.py +45 -10
- rasa/telemetry.py +1 -2
- rasa/tracing/instrumentation/attribute_extractors.py +1 -0
- rasa/utils/io.py +9 -27
- rasa/utils/json_utils.py +1 -6
- rasa/utils/log_utils.py +1 -5
- rasa/utils/plotting.py +1 -1
- rasa/validator.py +3 -7
- rasa/version.py +1 -1
- {rasa_pro-3.13.1a18.dist-info → rasa_pro-3.13.1.dev1.dist-info}/METADATA +9 -9
- {rasa_pro-3.13.1a18.dist-info → rasa_pro-3.13.1.dev1.dist-info}/RECORD +44 -265
- rasa/builder/README.md +0 -120
- rasa/builder/__init__.py +0 -0
- rasa/builder/config.py +0 -79
- rasa/builder/create_openai_vector_store.py +0 -228
- rasa/builder/exceptions.py +0 -55
- rasa/builder/inkeep-rag-response-schema.json +0 -64
- rasa/builder/inkeep_document_retrieval.py +0 -212
- rasa/builder/llm-helper-schema.json +0 -69
- rasa/builder/llm_context.py +0 -81
- rasa/builder/llm_helper_prompt.jinja2 +0 -245
- rasa/builder/llm_service.py +0 -317
- rasa/builder/logging_utils.py +0 -51
- rasa/builder/main.py +0 -147
- rasa/builder/models.py +0 -225
- rasa/builder/project_generator.py +0 -282
- rasa/builder/scrape_rasa_docs.py +0 -97
- rasa/builder/service.py +0 -742
- rasa/builder/skill_to_bot_prompt.jinja2 +0 -164
- rasa/builder/training_service.py +0 -132
- rasa/builder/validation_service.py +0 -93
- rasa/cli/project_templates/finance/actions/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/action_add_payee.py +0 -47
- rasa/cli/project_templates/finance/actions/action_ask_account.py +0 -50
- rasa/cli/project_templates/finance/actions/action_ask_account_from.py +0 -50
- rasa/cli/project_templates/finance/actions/action_ask_card.py +0 -47
- rasa/cli/project_templates/finance/actions/action_check_balance.py +0 -40
- rasa/cli/project_templates/finance/actions/action_check_card_existence.py +0 -35
- rasa/cli/project_templates/finance/actions/action_check_payee_existence.py +0 -40
- rasa/cli/project_templates/finance/actions/action_check_sufficient_funds.py +0 -41
- rasa/cli/project_templates/finance/actions/action_list_payees.py +0 -45
- rasa/cli/project_templates/finance/actions/action_process_immediate_payment.py +0 -18
- rasa/cli/project_templates/finance/actions/action_remove_payee.py +0 -49
- rasa/cli/project_templates/finance/actions/action_schedule_payment.py +0 -19
- rasa/cli/project_templates/finance/actions/action_session_start.py +0 -69
- rasa/cli/project_templates/finance/actions/action_update_card_status.py +0 -45
- rasa/cli/project_templates/finance/actions/action_validate_payment_date.py +0 -36
- rasa/cli/project_templates/finance/actions/database.py +0 -276
- rasa/cli/project_templates/finance/config.yml +0 -32
- rasa/cli/project_templates/finance/credentials.yml +0 -33
- rasa/cli/project_templates/finance/csvs/accounts.csv +0 -8
- rasa/cli/project_templates/finance/csvs/advisors.csv +0 -7
- rasa/cli/project_templates/finance/csvs/appointments.csv +0 -211
- rasa/cli/project_templates/finance/csvs/branches.csv +0 -10
- rasa/cli/project_templates/finance/csvs/cards.csv +0 -11
- rasa/cli/project_templates/finance/csvs/payees.csv +0 -10
- rasa/cli/project_templates/finance/csvs/transactions.csv +0 -71
- rasa/cli/project_templates/finance/csvs/users.csv +0 -4
- rasa/cli/project_templates/finance/data/flows/add_payee.yml +0 -29
- rasa/cli/project_templates/finance/data/flows/block_card.yml +0 -66
- rasa/cli/project_templates/finance/data/flows/check_balance.yml +0 -9
- rasa/cli/project_templates/finance/data/flows/list_payees.yml +0 -5
- rasa/cli/project_templates/finance/data/flows/remove_payee.yml +0 -21
- rasa/cli/project_templates/finance/data/flows/select_card.yml +0 -12
- rasa/cli/project_templates/finance/data/flows/transfer_money.yml +0 -67
- rasa/cli/project_templates/finance/data/flows/welcome.yml +0 -14
- rasa/cli/project_templates/finance/data/nlu.yml +0 -29
- rasa/cli/project_templates/finance/data/patterns/pattern_chitchat.yml +0 -7
- rasa/cli/project_templates/finance/data/patterns/pattern_completed.yml +0 -6
- rasa/cli/project_templates/finance/data/patterns/pattern_search.yml +0 -5
- rasa/cli/project_templates/finance/data/patterns/pattern_session_start.yml +0 -9
- rasa/cli/project_templates/finance/data/source/accounts.json +0 -51
- rasa/cli/project_templates/finance/data/source/advisors.json +0 -44
- rasa/cli/project_templates/finance/data/source/appointments.json +0 -1474
- rasa/cli/project_templates/finance/data/source/branches.json +0 -47
- rasa/cli/project_templates/finance/data/source/cards.json +0 -72
- rasa/cli/project_templates/finance/data/source/payees.json +0 -74
- rasa/cli/project_templates/finance/data/source/transactions.json +0 -492
- rasa/cli/project_templates/finance/data/source/users.json +0 -29
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/consequences_of_blocking_card.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/reasons_to_block_card.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/recovering_from_card_fraud.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/tips_for_card_security.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/what_to_do_if_card_is_lost.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/account_balance_security.txt +0 -7
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/common_balance_inquiries.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/methods_to_check_balance.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/understanding_balance_updates.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/what_to_do_if_balance_is_incorrect.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/benefits_of_authorised_payees.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/common_issues_with_payees.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/general_payee_information.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/payee_management_tips.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/understanding_payee_types.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/common_transfer_errors.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/fees_for_transfers.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/general_transfer_information.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/security_tips_for_transfers.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/transfer_processing_times.txt +0 -8
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part1.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part10.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part11.txt +0 -48
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part12.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part13.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part14.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part15.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part16.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part17.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part18.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part19.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part2.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part20.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part21.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part22.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part23.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part24.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part25.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part26.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part27.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part28.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part29.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part3.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part30.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part31.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part32.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part33.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part34.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part35.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part36.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part37.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part38.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part39.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part4.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part40.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part41.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part42.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part43.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part44.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part45.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part46.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part47.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part48.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part49.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part5.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part50.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part51.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part52.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part53.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part54.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part55.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part56.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part57.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part58.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part59.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part6.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part60.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part61.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part7.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part8.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part9.txt +0 -47
- rasa/cli/project_templates/finance/domain/add_payee.yml +0 -47
- rasa/cli/project_templates/finance/domain/block_card.yml +0 -101
- rasa/cli/project_templates/finance/domain/check_balance.yml +0 -9
- rasa/cli/project_templates/finance/domain/default_actions.yml +0 -16
- rasa/cli/project_templates/finance/domain/default_flows.yml +0 -33
- rasa/cli/project_templates/finance/domain/list_payees.yml +0 -4
- rasa/cli/project_templates/finance/domain/remove_payee.yml +0 -16
- rasa/cli/project_templates/finance/domain/select_card.yml +0 -12
- rasa/cli/project_templates/finance/domain/transfer_money.yml +0 -79
- rasa/cli/project_templates/finance/endpoints.yml +0 -62
- rasa/cli/project_templates/finance/prompts/command-generator.jinja2 +0 -57
- rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +0 -19
- rasa/cli/project_templates/finance/tests/conversation_repair/cancellations.yml +0 -12
- rasa/cli/project_templates/finance/tests/conversation_repair/cannot_handle.yml +0 -7
- rasa/cli/project_templates/finance/tests/conversation_repair/chitchat.yml +0 -7
- rasa/cli/project_templates/finance/tests/conversation_repair/clarification.yml +0 -9
- rasa/cli/project_templates/finance/tests/conversation_repair/completion.yml +0 -18
- rasa/cli/project_templates/finance/tests/conversation_repair/corrections.yml +0 -17
- rasa/cli/project_templates/finance/tests/conversation_repair/digressions.yml +0 -32
- rasa/cli/project_templates/finance/tests/conversation_repair/human_handoff.yml +0 -21
- rasa/cli/project_templates/finance/tests/conversation_repair/skipping_collect_steps.yml +0 -16
- rasa/cli/project_templates/finance/tests/demo_scripts/main.yml +0 -16
- rasa/cli/project_templates/finance/tests/happy_paths/balance_verification.yml +0 -15
- rasa/cli/project_templates/finance/tests/happy_paths/banking_questions.yml +0 -12
- rasa/cli/project_templates/finance/tests/happy_paths/card_blocking.yml +0 -52
- rasa/cli/project_templates/finance/tests/happy_paths/money_transfer.yml +0 -136
- rasa/cli/project_templates/finance/tests/happy_paths/payee_management.yml +0 -27
- rasa/cli/project_templates/finance/tests/happy_paths/user_greeted.yml +0 -5
- rasa/cli/project_templates/plain/actions/__init__.py +0 -0
- rasa/cli/project_templates/plain/config.yml +0 -17
- rasa/cli/project_templates/plain/credentials.yml +0 -33
- rasa/cli/project_templates/plain/data/patterns/pattern_session_start.yml +0 -7
- rasa/cli/project_templates/plain/domain.yml +0 -5
- rasa/cli/project_templates/plain/endpoints.yml +0 -58
- rasa/cli/project_templates/telco/actions/__init__.py +0 -0
- rasa/cli/project_templates/telco/actions/actions_billing.py +0 -197
- rasa/cli/project_templates/telco/actions/actions_get_data_from_db.py +0 -43
- rasa/cli/project_templates/telco/actions/actions_run_diagnostics.py +0 -23
- rasa/cli/project_templates/telco/actions/actions_session_start.py +0 -13
- rasa/cli/project_templates/telco/config.yml +0 -25
- rasa/cli/project_templates/telco/credentials.yml +0 -33
- rasa/cli/project_templates/telco/csvs/billing.csv +0 -10
- rasa/cli/project_templates/telco/csvs/customers.csv +0 -5
- rasa/cli/project_templates/telco/data/flows/flow_global.yml +0 -5
- rasa/cli/project_templates/telco/data/flows/flow_reboot_router.yml +0 -8
- rasa/cli/project_templates/telco/data/flows/flow_reset_router.yml +0 -7
- rasa/cli/project_templates/telco/data/flows/flow_solve_internet_issue.yml +0 -73
- rasa/cli/project_templates/telco/data/flows/flow_undertand_bill.yml +0 -45
- rasa/cli/project_templates/telco/data/patterns/pattern_completed.yml +0 -7
- rasa/cli/project_templates/telco/data/patterns/pattern_human_handoff.yml +0 -6
- rasa/cli/project_templates/telco/data/patterns/pattern_search.yml +0 -7
- rasa/cli/project_templates/telco/data/patterns/pattern_session_start.yml +0 -9
- rasa/cli/project_templates/telco/docs/reset_vs_rboot_router.txt +0 -1
- rasa/cli/project_templates/telco/docs/restart_router.txt +0 -6
- rasa/cli/project_templates/telco/docs/run_speed_test.txt +0 -6
- rasa/cli/project_templates/telco/domain/domain_global.yml +0 -29
- rasa/cli/project_templates/telco/domain/domain_patterns.yml +0 -17
- rasa/cli/project_templates/telco/domain/domain_reboot_router.yml +0 -20
- rasa/cli/project_templates/telco/domain/domain_reset_router.yml +0 -11
- rasa/cli/project_templates/telco/domain/domain_run_speed_test.yml +0 -24
- rasa/cli/project_templates/telco/domain/domain_solve_internet_issue.yml +0 -74
- rasa/cli/project_templates/telco/domain/domain_undertand_bill.yml +0 -102
- rasa/cli/project_templates/telco/endpoints.yml +0 -60
- rasa/cli/project_templates/telco/prompts/command-generator.jinja2 +0 -57
- rasa/cli/project_templates/telco/tests/e2e_results_failed.yml +0 -62
- rasa/cli/project_templates/telco/tests/e2e_results_passed.yml +0 -130
- rasa/cli/project_templates/telco/tests/e2e_test_cases/billing_test_cases.yml +0 -68
- rasa/cli/project_templates/telco/tests/e2e_test_cases/global_test_cases.yml +0 -13
- rasa/cli/project_templates/telco/tests/e2e_test_cases/internet_slow_test_case.yml +0 -47
- rasa/cli/project_templates/telco/tests/e2e_test_cases/out_of_scope_test_case.yml +0 -21
- rasa/cli/project_templates/telco/tests/e2e_test_cases/patterns_test_cases.yml +0 -15
- rasa/shared/importers/static.py +0 -63
- rasa/utils/openapi.py +0 -144
- {rasa_pro-3.13.1a18.dist-info → rasa_pro-3.13.1.dev1.dist-info}/NOTICE +0 -0
- {rasa_pro-3.13.1a18.dist-info → rasa_pro-3.13.1.dev1.dist-info}/WHEEL +0 -0
- {rasa_pro-3.13.1a18.dist-info → rasa_pro-3.13.1.dev1.dist-info}/entry_points.txt +0 -0
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from typing import Dict, List, Protocol, Union, runtime_checkable
|
|
3
|
+
from typing import Any, Dict, List, Optional, Protocol, Union, runtime_checkable
|
|
4
4
|
|
|
5
5
|
from rasa.shared.providers.llm.llm_response import LLMResponse
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
@runtime_checkable
|
|
9
9
|
class LLMClient(Protocol):
|
|
10
|
-
"""
|
|
11
|
-
Protocol for an LLM client that specifies the interface for interacting
|
|
10
|
+
"""Protocol for an LLM client that specifies the interface for interacting
|
|
12
11
|
with the API.
|
|
13
12
|
"""
|
|
14
13
|
|
|
15
14
|
@classmethod
|
|
16
15
|
def from_config(cls, config: dict) -> LLMClient:
|
|
17
|
-
"""
|
|
18
|
-
Initializes the llm client with the given configuration.
|
|
16
|
+
"""Initializes the llm client with the given configuration.
|
|
19
17
|
|
|
20
18
|
This class method should be implemented to parse the given
|
|
21
19
|
configuration and create an instance of an llm client.
|
|
@@ -24,17 +22,19 @@ class LLMClient(Protocol):
|
|
|
24
22
|
|
|
25
23
|
@property
|
|
26
24
|
def config(self) -> Dict:
|
|
27
|
-
"""
|
|
28
|
-
Returns the configuration for that the llm client is initialized with.
|
|
25
|
+
"""Returns the configuration for that the llm client is initialized with.
|
|
29
26
|
|
|
30
27
|
This property should be implemented to return a dictionary containing
|
|
31
28
|
the configuration settings for the llm client.
|
|
32
29
|
"""
|
|
33
30
|
...
|
|
34
31
|
|
|
35
|
-
def completion(
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
def completion(
|
|
33
|
+
self,
|
|
34
|
+
messages: Union[List[dict], List[str], str],
|
|
35
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
36
|
+
) -> LLMResponse:
|
|
37
|
+
"""Synchronously generate completions for given list of messages.
|
|
38
38
|
|
|
39
39
|
This method should be implemented to take a list of messages (as
|
|
40
40
|
strings) and return a list of completions (as strings).
|
|
@@ -48,16 +48,19 @@ class LLMClient(Protocol):
|
|
|
48
48
|
- a list of messages. Each message is a string and will be formatted
|
|
49
49
|
as a user message.
|
|
50
50
|
- a single message as a string which will be formatted as user message.
|
|
51
|
+
metadata: Optional metadata to be passed to the LLM call.
|
|
52
|
+
|
|
51
53
|
Returns:
|
|
52
54
|
LLMResponse
|
|
53
55
|
"""
|
|
54
56
|
...
|
|
55
57
|
|
|
56
58
|
async def acompletion(
|
|
57
|
-
self,
|
|
59
|
+
self,
|
|
60
|
+
messages: Union[List[dict], List[str], str],
|
|
61
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
58
62
|
) -> LLMResponse:
|
|
59
|
-
"""
|
|
60
|
-
Asynchronously generate completions for given list of messages.
|
|
63
|
+
"""Asynchronously generate completions for given list of messages.
|
|
61
64
|
|
|
62
65
|
This method should be implemented to take a list of messages (as
|
|
63
66
|
strings) and return a list of completions (as strings).
|
|
@@ -71,14 +74,15 @@ class LLMClient(Protocol):
|
|
|
71
74
|
- a list of messages. Each message is a string and will be formatted
|
|
72
75
|
as a user message.
|
|
73
76
|
- a single message as a string which will be formatted as user message.
|
|
77
|
+
metadata: Optional metadata to be passed to the LLM call.
|
|
78
|
+
|
|
74
79
|
Returns:
|
|
75
80
|
LLMResponse
|
|
76
81
|
"""
|
|
77
82
|
...
|
|
78
83
|
|
|
79
84
|
def validate_client_setup(self, *args, **kwargs) -> None: # type: ignore
|
|
80
|
-
"""
|
|
81
|
-
Perform client setup validation.
|
|
85
|
+
"""Perform client setup validation.
|
|
82
86
|
|
|
83
87
|
This method should be implemented to validate whether the client can be
|
|
84
88
|
used with the parameters provided through configuration or environment
|
|
@@ -95,8 +95,7 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
|
|
|
95
95
|
|
|
96
96
|
@property
|
|
97
97
|
def provider(self) -> str:
|
|
98
|
-
"""
|
|
99
|
-
Returns the provider name for the self hosted llm client.
|
|
98
|
+
"""Returns the provider name for the self hosted llm client.
|
|
100
99
|
|
|
101
100
|
Returns:
|
|
102
101
|
String representing the provider name.
|
|
@@ -105,8 +104,7 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
|
|
|
105
104
|
|
|
106
105
|
@property
|
|
107
106
|
def model(self) -> str:
|
|
108
|
-
"""
|
|
109
|
-
Returns the model name for the self hosted llm client.
|
|
107
|
+
"""Returns the model name for the self hosted llm client.
|
|
110
108
|
|
|
111
109
|
Returns:
|
|
112
110
|
String representing the model name.
|
|
@@ -115,8 +113,7 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
|
|
|
115
113
|
|
|
116
114
|
@property
|
|
117
115
|
def api_base(self) -> str:
|
|
118
|
-
"""
|
|
119
|
-
Returns the base URL for the API endpoint.
|
|
116
|
+
"""Returns the base URL for the API endpoint.
|
|
120
117
|
|
|
121
118
|
Returns:
|
|
122
119
|
String representing the base URL.
|
|
@@ -125,8 +122,7 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
|
|
|
125
122
|
|
|
126
123
|
@property
|
|
127
124
|
def api_type(self) -> Optional[str]:
|
|
128
|
-
"""
|
|
129
|
-
Returns the type of the API endpoint. Currently only OpenAI is supported.
|
|
125
|
+
"""Returns the type of the API endpoint. Currently only OpenAI is supported.
|
|
130
126
|
|
|
131
127
|
Returns:
|
|
132
128
|
String representing the API type.
|
|
@@ -135,8 +131,7 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
|
|
|
135
131
|
|
|
136
132
|
@property
|
|
137
133
|
def api_version(self) -> Optional[str]:
|
|
138
|
-
"""
|
|
139
|
-
Returns the version of the API endpoint.
|
|
134
|
+
"""Returns the version of the API endpoint.
|
|
140
135
|
|
|
141
136
|
Returns:
|
|
142
137
|
String representing the API version.
|
|
@@ -145,8 +140,8 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
|
|
|
145
140
|
|
|
146
141
|
@property
|
|
147
142
|
def config(self) -> Dict:
|
|
148
|
-
"""
|
|
149
|
-
|
|
143
|
+
"""Returns the configuration for the self hosted llm client.
|
|
144
|
+
|
|
150
145
|
Returns:
|
|
151
146
|
Dictionary containing the configuration.
|
|
152
147
|
"""
|
|
@@ -195,13 +190,14 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
|
|
|
195
190
|
|
|
196
191
|
@suppress_logs(log_level=logging.WARNING)
|
|
197
192
|
def _text_completion(self, prompt: Union[List[str], str]) -> LLMResponse:
|
|
198
|
-
"""
|
|
199
|
-
Synchronously generate completions for given prompt.
|
|
193
|
+
"""Synchronously generate completions for given prompt.
|
|
200
194
|
|
|
201
195
|
Args:
|
|
202
196
|
prompt: Prompt to generate the completion for.
|
|
197
|
+
|
|
203
198
|
Returns:
|
|
204
199
|
List of message completions.
|
|
200
|
+
|
|
205
201
|
Raises:
|
|
206
202
|
ProviderClientAPIException: If the API request fails.
|
|
207
203
|
"""
|
|
@@ -213,8 +209,7 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
|
|
|
213
209
|
|
|
214
210
|
@suppress_logs(log_level=logging.WARNING)
|
|
215
211
|
async def _atext_completion(self, prompt: Union[List[str], str]) -> LLMResponse:
|
|
216
|
-
"""
|
|
217
|
-
Asynchronously generate completions for given prompt.
|
|
212
|
+
"""Asynchronously generate completions for given prompt.
|
|
218
213
|
|
|
219
214
|
Args:
|
|
220
215
|
messages: The message can be,
|
|
@@ -225,8 +220,10 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
|
|
|
225
220
|
- a list of messages. Each message is a string and will be formatted
|
|
226
221
|
as a user message.
|
|
227
222
|
- a single message as a string which will be formatted as user message.
|
|
223
|
+
|
|
228
224
|
Returns:
|
|
229
225
|
List of message completions.
|
|
226
|
+
|
|
230
227
|
Raises:
|
|
231
228
|
ProviderClientAPIException: If the API request fails.
|
|
232
229
|
"""
|
|
@@ -237,7 +234,9 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
|
|
|
237
234
|
raise ProviderClientAPIException(e)
|
|
238
235
|
|
|
239
236
|
async def acompletion(
|
|
240
|
-
self,
|
|
237
|
+
self,
|
|
238
|
+
messages: Union[List[dict], List[str], str],
|
|
239
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
241
240
|
) -> LLMResponse:
|
|
242
241
|
"""Asynchronous completion of the model with the given messages.
|
|
243
242
|
|
|
@@ -255,6 +254,7 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
|
|
|
255
254
|
- a list of messages. Each message is a string and will be formatted
|
|
256
255
|
as a user message.
|
|
257
256
|
- a single message as a string which will be formatted as user message.
|
|
257
|
+
metadata: Optional metadata to be passed to the LLM call.
|
|
258
258
|
|
|
259
259
|
Returns:
|
|
260
260
|
The completion response.
|
|
@@ -263,7 +263,11 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
|
|
|
263
263
|
return await super().acompletion(messages)
|
|
264
264
|
return await self._atext_completion(messages)
|
|
265
265
|
|
|
266
|
-
def completion(
|
|
266
|
+
def completion(
|
|
267
|
+
self,
|
|
268
|
+
messages: Union[List[dict], List[str], str],
|
|
269
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
270
|
+
) -> LLMResponse:
|
|
267
271
|
"""Completion of the model with the given messages.
|
|
268
272
|
|
|
269
273
|
Method overrides the base class method to call the appropriate
|
|
@@ -273,6 +277,7 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
|
|
|
273
277
|
|
|
274
278
|
Args:
|
|
275
279
|
messages: The messages to be used for completion.
|
|
280
|
+
metadata: Optional metadata to be passed to the LLM call.
|
|
276
281
|
|
|
277
282
|
Returns:
|
|
278
283
|
The completion response.
|
rasa/studio/upload.py
CHANGED
|
@@ -7,6 +7,7 @@ from typing import Any, Dict, Iterable, List, Optional, Set, Text, Tuple, Union
|
|
|
7
7
|
import questionary
|
|
8
8
|
import requests
|
|
9
9
|
import structlog
|
|
10
|
+
from pydantic import BaseModel, Field
|
|
10
11
|
|
|
11
12
|
import rasa.cli.telemetry
|
|
12
13
|
import rasa.cli.utils
|
|
@@ -23,13 +24,9 @@ from rasa.shared.constants import (
|
|
|
23
24
|
DEFAULT_DOMAIN_PATHS,
|
|
24
25
|
)
|
|
25
26
|
from rasa.shared.core.domain import Domain
|
|
26
|
-
from rasa.shared.core.flows.yaml_flows_io import YAMLFlowsReader
|
|
27
|
+
from rasa.shared.core.flows.yaml_flows_io import YAMLFlowsReader, YamlFlowsWriter
|
|
27
28
|
from rasa.shared.exceptions import RasaException
|
|
28
|
-
from rasa.shared.importers.importer import TrainingDataImporter
|
|
29
|
-
from rasa.shared.importers.utils import (
|
|
30
|
-
CALMUserData,
|
|
31
|
-
extract_calm_import_parts_from_importer,
|
|
32
|
-
)
|
|
29
|
+
from rasa.shared.importers.importer import FlowSyncImporter, TrainingDataImporter
|
|
33
30
|
from rasa.shared.nlu.training_data.formats.rasa_yaml import (
|
|
34
31
|
RasaYAMLReader,
|
|
35
32
|
RasaYAMLWriter,
|
|
@@ -37,6 +34,7 @@ from rasa.shared.nlu.training_data.formats.rasa_yaml import (
|
|
|
37
34
|
from rasa.shared.utils.llm import collect_custom_prompts
|
|
38
35
|
from rasa.shared.utils.yaml import (
|
|
39
36
|
dump_obj_as_yaml_to_string,
|
|
37
|
+
read_yaml,
|
|
40
38
|
read_yaml_file,
|
|
41
39
|
)
|
|
42
40
|
from rasa.studio import results_logger
|
|
@@ -45,7 +43,6 @@ from rasa.studio.config import StudioConfig
|
|
|
45
43
|
from rasa.studio.results_logger import StudioResult, with_studio_error_handler
|
|
46
44
|
from rasa.studio.utils import validate_argument_paths
|
|
47
45
|
from rasa.telemetry import track_upload_to_studio_failed
|
|
48
|
-
from rasa.utils.json_utils import extract_values
|
|
49
46
|
|
|
50
47
|
structlogger = structlog.get_logger()
|
|
51
48
|
|
|
@@ -71,6 +68,16 @@ DOMAIN_KEYS = [
|
|
|
71
68
|
]
|
|
72
69
|
|
|
73
70
|
|
|
71
|
+
class CALMImportParts(BaseModel):
|
|
72
|
+
"""All pieces that will be uploaded to Rasa Studio."""
|
|
73
|
+
|
|
74
|
+
flows: Dict[str, Any]
|
|
75
|
+
domain: Dict[str, Any]
|
|
76
|
+
config: Dict[str, Any]
|
|
77
|
+
endpoints: Dict[str, Any]
|
|
78
|
+
nlu: Dict[str, Any] = Field(default_factory=dict)
|
|
79
|
+
|
|
80
|
+
|
|
74
81
|
def _get_selected_entities_and_intents(
|
|
75
82
|
args: argparse.Namespace,
|
|
76
83
|
intents_from_files: Set[Text],
|
|
@@ -187,6 +194,11 @@ config_keys = [
|
|
|
187
194
|
]
|
|
188
195
|
|
|
189
196
|
|
|
197
|
+
def extract_values(data: Dict, keys: List[Text]) -> Dict:
|
|
198
|
+
"""Extracts values for given keys from a dictionary."""
|
|
199
|
+
return {key: data.get(key) for key in keys if data.get(key)}
|
|
200
|
+
|
|
201
|
+
|
|
190
202
|
def _get_assistant_name(config: Dict[Text, Any]) -> str:
|
|
191
203
|
config_assistant_id = config.get("assistant_id", "")
|
|
192
204
|
assistant_name = questionary.text(
|
|
@@ -225,7 +237,7 @@ def build_calm_import_parts(
|
|
|
225
237
|
config_path: Text,
|
|
226
238
|
endpoints_path: Optional[Text] = None,
|
|
227
239
|
assistant_name: Optional[Text] = None,
|
|
228
|
-
) -> Tuple[str,
|
|
240
|
+
) -> Tuple[str, CALMImportParts]:
|
|
229
241
|
"""Builds the parts of the assistant to be uploaded to Studio.
|
|
230
242
|
|
|
231
243
|
Args:
|
|
@@ -248,10 +260,33 @@ def build_calm_import_parts(
|
|
|
248
260
|
endpoints = read_yaml_file(endpoints_path, expand_env_vars=False)
|
|
249
261
|
assistant_name = assistant_name or _get_assistant_name(config)
|
|
250
262
|
|
|
251
|
-
|
|
252
|
-
|
|
263
|
+
domain_from_files = importer.get_user_domain().as_dict()
|
|
264
|
+
domain = extract_values(domain_from_files, DOMAIN_KEYS)
|
|
265
|
+
|
|
266
|
+
flow_importer = FlowSyncImporter.load_from_dict(
|
|
267
|
+
training_data_paths=[str(data_path)], expand_env_vars=False
|
|
268
|
+
)
|
|
269
|
+
|
|
270
|
+
flows = list(flow_importer.get_user_flows())
|
|
271
|
+
flows_yaml = YamlFlowsWriter().dumps(flows)
|
|
272
|
+
flows = read_yaml(flows_yaml, expand_env_vars=False)
|
|
273
|
+
|
|
274
|
+
nlu_importer = TrainingDataImporter.load_from_dict(
|
|
275
|
+
training_data_paths=[str(data_path)], expand_env_vars=False
|
|
276
|
+
)
|
|
277
|
+
nlu_data = nlu_importer.get_nlu_data()
|
|
278
|
+
nlu_examples = nlu_data.filter_training_examples(
|
|
279
|
+
lambda ex: ex.get("intent") in nlu_data.intents
|
|
280
|
+
)
|
|
281
|
+
nlu_examples_yaml = RasaYAMLWriter().dumps(nlu_examples)
|
|
282
|
+
nlu = read_yaml(nlu_examples_yaml, expand_env_vars=False)
|
|
283
|
+
|
|
284
|
+
parts = CALMImportParts(
|
|
285
|
+
flows=flows,
|
|
286
|
+
domain=domain,
|
|
253
287
|
config=config,
|
|
254
288
|
endpoints=endpoints,
|
|
289
|
+
nlu=nlu,
|
|
255
290
|
)
|
|
256
291
|
|
|
257
292
|
return assistant_name, parts
|
rasa/telemetry.py
CHANGED
|
@@ -1426,7 +1426,6 @@ def track_shell_started(model_type: Text, assistant_id: Text) -> None:
|
|
|
1426
1426
|
|
|
1427
1427
|
Args:
|
|
1428
1428
|
model_type: Type of the model, core / nlu or rasa.
|
|
1429
|
-
assistant_id: ID of the assistant being inspected.
|
|
1430
1429
|
"""
|
|
1431
1430
|
_track(
|
|
1432
1431
|
TELEMETRY_SHELL_STARTED_EVENT,
|
|
@@ -1998,7 +1997,7 @@ def _extract_stream_pii(event_broker: Optional["EventBroker"]) -> bool:
|
|
|
1998
1997
|
def track_privacy_enabled(
|
|
1999
1998
|
privacy_config: "PrivacyConfig", event_broker: Optional["EventBroker"]
|
|
2000
1999
|
) -> None:
|
|
2001
|
-
"""Track when PII management capability is enabled
|
|
2000
|
+
"""Track when PII management capability is enabled"""
|
|
2002
2001
|
stream_pii = _extract_stream_pii(event_broker)
|
|
2003
2002
|
privacy_properties = _extract_privacy_enabled_event_properties(
|
|
2004
2003
|
privacy_config, stream_pii
|
|
@@ -383,6 +383,7 @@ def extract_llm_config(
|
|
|
383
383
|
def extract_attrs_for_llm_based_command_generator(
|
|
384
384
|
self: "LLMBasedCommandGenerator",
|
|
385
385
|
prompt: str,
|
|
386
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
386
387
|
) -> Dict[str, Any]:
|
|
387
388
|
from rasa.dialogue_understanding.generator.flow_retrieval import (
|
|
388
389
|
DEFAULT_EMBEDDINGS_CONFIG,
|
rasa/utils/io.py
CHANGED
|
@@ -26,7 +26,6 @@ from typing_extensions import Protocol
|
|
|
26
26
|
|
|
27
27
|
import rasa.shared.constants
|
|
28
28
|
import rasa.shared.utils.io
|
|
29
|
-
from rasa.shared.exceptions import RasaException
|
|
30
29
|
|
|
31
30
|
if TYPE_CHECKING:
|
|
32
31
|
from prompt_toolkit.validation import Validator
|
|
@@ -125,7 +124,9 @@ def create_path(file_path: Text) -> None:
|
|
|
125
124
|
def file_type_validator(
|
|
126
125
|
valid_file_types: List[Text], error_message: Text
|
|
127
126
|
) -> Type["Validator"]:
|
|
128
|
-
"""Creates a
|
|
127
|
+
"""Creates a `Validator` class which can be used with `questionary` to validate
|
|
128
|
+
file paths.
|
|
129
|
+
"""
|
|
129
130
|
|
|
130
131
|
def is_valid(path: Text) -> bool:
|
|
131
132
|
return path is not None and any(
|
|
@@ -136,7 +137,9 @@ def file_type_validator(
|
|
|
136
137
|
|
|
137
138
|
|
|
138
139
|
def not_empty_validator(error_message: Text) -> Type["Validator"]:
|
|
139
|
-
"""Creates a
|
|
140
|
+
"""Creates a `Validator` class which can be used with `questionary` to validate
|
|
141
|
+
that the user entered something other than whitespace.
|
|
142
|
+
"""
|
|
140
143
|
|
|
141
144
|
def is_valid(input: Text) -> bool:
|
|
142
145
|
return input is not None and input.strip() != ""
|
|
@@ -147,7 +150,9 @@ def not_empty_validator(error_message: Text) -> Type["Validator"]:
|
|
|
147
150
|
def create_validator(
|
|
148
151
|
function: Callable[[Text], bool], error_message: Text
|
|
149
152
|
) -> Type["Validator"]:
|
|
150
|
-
"""Helper method to create
|
|
153
|
+
"""Helper method to create `Validator` classes from callable functions. Should be
|
|
154
|
+
removed when questionary supports `Validator` objects.
|
|
155
|
+
"""
|
|
151
156
|
from prompt_toolkit.document import Document
|
|
152
157
|
from prompt_toolkit.validation import ValidationError, Validator
|
|
153
158
|
|
|
@@ -245,26 +250,3 @@ def write_yaml(
|
|
|
245
250
|
|
|
246
251
|
with Path(target).open("w", encoding="utf-8") as outfile:
|
|
247
252
|
dumper.dump(data, outfile, transform=transform)
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
class InvalidPathException(RasaException):
|
|
251
|
-
"""Raised if a path is invalid - e.g. path traversal is detected."""
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
def subpath(parent: str, child: str) -> str:
|
|
255
|
-
"""Return the path to the child directory of the parent directory.
|
|
256
|
-
|
|
257
|
-
Ensures, that child doesn't navigate to parent directories. Prevents
|
|
258
|
-
path traversal. Raises an InvalidPathException if the path is invalid.
|
|
259
|
-
|
|
260
|
-
Based on Snyk's directory traversal mitigation:
|
|
261
|
-
https://learn.snyk.io/lesson/directory-traversal/
|
|
262
|
-
"""
|
|
263
|
-
safe_path = os.path.abspath(os.path.join(parent, child))
|
|
264
|
-
parent = os.path.abspath(parent)
|
|
265
|
-
|
|
266
|
-
common_base = os.path.commonpath([parent, safe_path])
|
|
267
|
-
if common_base != parent:
|
|
268
|
-
raise InvalidPathException(f"Invalid path: {safe_path}")
|
|
269
|
-
|
|
270
|
-
return safe_path
|
rasa/utils/json_utils.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
from decimal import Decimal
|
|
3
|
-
from typing import Any,
|
|
3
|
+
from typing import Any, Text
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class DecimalEncoder(json.JSONEncoder):
|
|
@@ -58,8 +58,3 @@ def replace_decimals_with_floats(obj: Any) -> Any:
|
|
|
58
58
|
Input `obj` with all `Decimal` types replaced by `float`s.
|
|
59
59
|
"""
|
|
60
60
|
return json.loads(json.dumps(obj, cls=DecimalEncoder))
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
def extract_values(data: Dict, keys: List[Text]) -> Dict:
|
|
64
|
-
"""Extracts values for given keys from a dictionary."""
|
|
65
|
-
return {key: data.get(key) for key in keys if data.get(key)}
|
rasa/utils/log_utils.py
CHANGED
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import logging
|
|
4
4
|
import os
|
|
5
5
|
import sys
|
|
6
|
-
from typing import Any,
|
|
6
|
+
from typing import Any, Optional
|
|
7
7
|
|
|
8
8
|
import structlog
|
|
9
9
|
from structlog.dev import ConsoleRenderer
|
|
@@ -37,7 +37,6 @@ class HumanConsoleRenderer(ConsoleRenderer):
|
|
|
37
37
|
def configure_structlog(
|
|
38
38
|
log_level: Optional[int] = None,
|
|
39
39
|
include_time: bool = False,
|
|
40
|
-
additional_processors: Optional[List[structlog.processors.Processor]] = None,
|
|
41
40
|
) -> None:
|
|
42
41
|
"""Configure logging of the server."""
|
|
43
42
|
if log_level is None: # Log level NOTSET is 0 so we use `is None` here
|
|
@@ -76,9 +75,6 @@ def configure_structlog(
|
|
|
76
75
|
if include_time:
|
|
77
76
|
shared_processors.append(structlog.processors.TimeStamper(fmt="iso"))
|
|
78
77
|
|
|
79
|
-
if additional_processors:
|
|
80
|
-
shared_processors.extend(additional_processors)
|
|
81
|
-
|
|
82
78
|
if not FORCE_JSON_LOGGING and sys.stderr.isatty():
|
|
83
79
|
# Pretty printing when we run in a terminal session.
|
|
84
80
|
# Automatically prints pretty tracebacks when "rich" is installed
|
rasa/utils/plotting.py
CHANGED
|
@@ -99,7 +99,7 @@ def plot_confusion_matrix(
|
|
|
99
99
|
zmax = confusion_matrix.max() if len(confusion_matrix) > 0 else 1
|
|
100
100
|
plt.clf()
|
|
101
101
|
if not color_map:
|
|
102
|
-
color_map = plt.cm.
|
|
102
|
+
color_map = plt.cm.Blues
|
|
103
103
|
plt.imshow(
|
|
104
104
|
confusion_matrix,
|
|
105
105
|
interpolation="nearest",
|
rasa/validator.py
CHANGED
|
@@ -630,14 +630,11 @@ class Validator:
|
|
|
630
630
|
flow_id: str,
|
|
631
631
|
) -> bool:
|
|
632
632
|
"""Validates that a collect step can have either an action or an utterance.
|
|
633
|
-
|
|
634
633
|
Also logs an error if neither an action nor an utterance is defined.
|
|
635
634
|
|
|
636
635
|
Args:
|
|
637
636
|
collect: the name of the slot to collect
|
|
638
637
|
all_good: boolean value indicating the validation status
|
|
639
|
-
domain_slots: the slots of the domain
|
|
640
|
-
flow_id: the id of the flow
|
|
641
638
|
|
|
642
639
|
Returns:
|
|
643
640
|
False, if validation failed, true, otherwise
|
|
@@ -686,10 +683,9 @@ class Validator:
|
|
|
686
683
|
has_action_defined=has_action_defined,
|
|
687
684
|
flow=flow_id,
|
|
688
685
|
event_info=(
|
|
689
|
-
f"The collect step '{collect.collect}' has neither
|
|
690
|
-
f"nor an action defined,
|
|
691
|
-
f"
|
|
692
|
-
f"'{collect.utter}' used in the collect step."
|
|
686
|
+
f"The collect step '{collect.collect}' has neither an utterance "
|
|
687
|
+
f"nor an action defined, or an initial value defined in the domain."
|
|
688
|
+
f"You need to define either an utterance or an action."
|
|
693
689
|
),
|
|
694
690
|
)
|
|
695
691
|
all_good = False
|
rasa/version.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: rasa-pro
|
|
3
|
-
Version: 3.13.
|
|
3
|
+
Version: 3.13.1.dev1
|
|
4
4
|
Summary: State-of-the-art open-core Conversational AI framework for Enterprises that natively leverages generative AI for effortless assistant development.
|
|
5
5
|
Keywords: nlp,machine-learning,machine-learning-library,bot,bots,botkit,rasa conversational-agents,conversational-ai,chatbot,chatbot-framework,bot-framework
|
|
6
6
|
Author: Rasa Technologies GmbH
|
|
@@ -41,11 +41,11 @@ Requires-Dist: colorhash (>=2.0,<2.1.0)
|
|
|
41
41
|
Requires-Dist: confluent-kafka (>=2.10.0,<3.0.0)
|
|
42
42
|
Requires-Dist: cryptography (>=44.0.1)
|
|
43
43
|
Requires-Dist: cvg-python-sdk (>=0.5.1,<0.6.0)
|
|
44
|
-
Requires-Dist: dask (>=2024.
|
|
44
|
+
Requires-Dist: dask (>=2024.7.0,<2024.8.0)
|
|
45
45
|
Requires-Dist: demoji (>=1.1.0,<2.0.0)
|
|
46
46
|
Requires-Dist: diskcache (>=5.6.3,<5.7.0)
|
|
47
47
|
Requires-Dist: dnspython (==2.6.1)
|
|
48
|
-
Requires-Dist: faiss-cpu (>=1.
|
|
48
|
+
Requires-Dist: faiss-cpu (>=1.7.4,<2.0.0)
|
|
49
49
|
Requires-Dist: fbmessenger (>=6.0.0,<6.1.0)
|
|
50
50
|
Requires-Dist: github3.py (>=3.2.0,<3.3.0) ; extra == "gh-release-notes"
|
|
51
51
|
Requires-Dist: gitpython (>=3.1.41,<3.2.0) ; extra == "full"
|
|
@@ -64,8 +64,9 @@ Requires-Dist: keras (==2.14.0)
|
|
|
64
64
|
Requires-Dist: langchain (>=0.2.17,<0.3.0)
|
|
65
65
|
Requires-Dist: langchain-community (>=0.2.19,<0.3.0)
|
|
66
66
|
Requires-Dist: langcodes (>=3.5.0,<4.0.0)
|
|
67
|
+
Requires-Dist: langfuse (>=2.60.2,<2.61.0)
|
|
67
68
|
Requires-Dist: litellm (>=1.69.0,<1.70.0)
|
|
68
|
-
Requires-Dist: matplotlib (>=3.
|
|
69
|
+
Requires-Dist: matplotlib (>=3.7,<3.8)
|
|
69
70
|
Requires-Dist: mattermostwrapper (>=2.2,<2.3)
|
|
70
71
|
Requires-Dist: networkx (>=3.1,<3.2)
|
|
71
72
|
Requires-Dist: numpy (>=1.26.4,<1.27.0)
|
|
@@ -110,15 +111,14 @@ Requires-Dist: safetensors (>=0.4.5,<0.5.0)
|
|
|
110
111
|
Requires-Dist: sanic (>=22.12,<22.13)
|
|
111
112
|
Requires-Dist: sanic-cors (>=2.2.0,<2.3.0)
|
|
112
113
|
Requires-Dist: sanic-jwt (>=1.8.0,<2.0.0)
|
|
113
|
-
Requires-Dist: sanic-openapi (>=21.12.0,<22.0.0)
|
|
114
114
|
Requires-Dist: sanic-routing (>=22.8.0,<23.0.0)
|
|
115
|
-
Requires-Dist: scikit-learn (>=1.
|
|
115
|
+
Requires-Dist: scikit-learn (>=1.5.1,<1.6.0)
|
|
116
116
|
Requires-Dist: scipy (>=1.13.1,<1.14.0)
|
|
117
117
|
Requires-Dist: sentencepiece[sentencepiece] (>=0.1.99,<0.2.0) ; extra == "transformers" or extra == "full"
|
|
118
118
|
Requires-Dist: sentry-sdk (>=2.8.0,<3)
|
|
119
119
|
Requires-Dist: setuptools (>=78.1.1,<78.2.0)
|
|
120
|
-
Requires-Dist: sklearn-crfsuite (>=0.
|
|
121
|
-
Requires-Dist: skops (>=0.
|
|
120
|
+
Requires-Dist: sklearn-crfsuite (>=0.3.6,<0.4.0)
|
|
121
|
+
Requires-Dist: skops (>=0.10.0,<0.11.0)
|
|
122
122
|
Requires-Dist: slack-sdk (>=3.27.1,<3.28.0)
|
|
123
123
|
Requires-Dist: spacy (>=3.5.4,<4.0.0) ; extra == "spacy" or extra == "full"
|
|
124
124
|
Requires-Dist: structlog (>=23.1.0,<23.2.0)
|
|
@@ -136,7 +136,7 @@ Requires-Dist: tensorflow-metal (==1.1.0) ; (sys_platform == "darwin" and platfo
|
|
|
136
136
|
Requires-Dist: tensorflow-text (==2.14.0) ; sys_platform != "win32" and platform_machine != "arm64" and platform_machine != "aarch64"
|
|
137
137
|
Requires-Dist: tensorflow_hub (>=0.13.0,<0.14.0)
|
|
138
138
|
Requires-Dist: terminaltables (>=3.1.10,<3.2.0)
|
|
139
|
-
Requires-Dist: tiktoken (>=0.
|
|
139
|
+
Requires-Dist: tiktoken (>=0.7.0,<0.8.0)
|
|
140
140
|
Requires-Dist: tqdm (>=4.66.2,<5.0.0)
|
|
141
141
|
Requires-Dist: transformers (>=4.38.2,<4.39.0) ; extra == "transformers" or extra == "full"
|
|
142
142
|
Requires-Dist: twilio (>=8.4,<8.5)
|