iatoolkit 2.3.2__tar.gz → 2.3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {iatoolkit-2.3.2/src/iatoolkit.egg-info → iatoolkit-2.3.4}/PKG-INFO +1 -1
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/__init__.py +1 -1
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/config/system_prompts_pack.yaml +16 -2
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/locales/en.yaml +1 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/locales/es.yaml +1 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/company_context_service.py +24 -14
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/context_builder_service.py +80 -20
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/prompt_service.py +4 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/system_prompt_catalog.py +51 -1
- {iatoolkit-2.3.2 → iatoolkit-2.3.4/src/iatoolkit.egg-info}/PKG-INFO +1 -1
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/LICENSE +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/LICENSE_COMMUNITY.md +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/pyproject.toml +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/readme.md +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/requirements.txt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/setup.cfg +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/base_company.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/cli_commands.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/common/__init__.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/common/exceptions.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/common/interfaces/__init__.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/common/interfaces/asset_storage.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/common/interfaces/database_provider.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/common/interfaces/memory_lint_trigger.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/common/interfaces/secret_provider.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/common/interfaces/signup_policy_resolver.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/common/interfaces/web_search_provider.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/common/model_registry.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/common/routes.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/common/secret_resolver.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/common/session_manager.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/common/util.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/company_registry.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/config/__init__.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/config/llm_capabilities.yaml +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/config/system_tools_pack.yaml +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/core.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/__init__.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/brevo_mail_app.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/call_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/connectors/__init__.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/google_auth_client.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/google_chat_app.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/inference_embeddings_client.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/inference_handler.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/jina_embeddings_client.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/llm_providers/__init__.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/llm_providers/deepseek_adapter.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/llm_providers/gemini_adapter.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/llm_providers/openai_adapter.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/llm_providers/openai_compatible_chat_adapter.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/llm_proxy.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/llm_response.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/redis_session_manager.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/repositories/__init__.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/repositories/api_key_repo.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/repositories/database_manager.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/repositories/document_repo.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/repositories/env_secret_provider.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/repositories/filesystem_asset_repository.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/repositories/llm_query_repo.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/repositories/memory_repo.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/repositories/models.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/repositories/profile_repo.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/repositories/prompt_resource_repo.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/repositories/sql_dataset_repo.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/repositories/sql_source_repo.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/repositories/vs_repo.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/__init__.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/api_key_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/attachment_policy_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/auth_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/benchmark_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/branding_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/configuration_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/dispatcher_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/embedding_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/excel_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/file_processor_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/history_manager_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/http_tool_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/i18n_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/inference_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/jwt_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/knowledge_base_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/language_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/license_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/llm_client_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/mail_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/memory_compiler_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/memory_lint_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/memory_lookup_policy_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/memory_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/memory_wiki_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/noop_memory_compilation_trigger.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/noop_memory_lint_trigger.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/parsers/__init__.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/parsers/contracts.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/parsers/image_normalizer.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/parsers/parsing_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/parsers/pdf_ocr_detection.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/parsers/provider_factory.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/parsers/provider_resolver.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/parsers/providers/__init__.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/parsers/providers/basic_provider.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/parsers/providers/docling_provider.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/parsers/validator.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/pdf_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/profile_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/prompt_resource_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/query_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/signup_policy_resolver.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/sql_dataset_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/sql_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/sql_source_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/storage_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/structured_output_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/system_tools.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/tool_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/user_feedback_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/user_session_context_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/visual_kb_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/visual_tool_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/warmup_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/web_search/__init__.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/web_search/provider_factory.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/web_search/providers/__init__.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/web_search/providers/brave_provider.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/services/web_search_service.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/images/fernando.jpeg +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/images/iatoolkit_core.png +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/images/iatoolkit_logo.png +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/js/chat_filepond.js +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/js/chat_help_content.js +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/js/chat_history_button.js +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/js/chat_main.js +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/js/chat_memory_button.js +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/js/chat_model_selector.js +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/js/chat_onboarding_button.js +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/js/chat_reload_button.js +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/styles/chat_iatoolkit.css +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/styles/chat_modal.css +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/styles/chat_public.css +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/styles/documents.css +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/styles/landing_page.css +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/styles/llm_output.css +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/static/styles/onboarding.css +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/__init__.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/chat_state_rules.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/chat_user_profile.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/core_identity.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/email_output.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/file_download_output.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/format_styles.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/html_structures.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/links_documents.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/memory_usage.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/multimodal_basics.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/output_basics.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/presentation_formatting.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/query_main.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/sql_aggregation_scope.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/sql_casting.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/sql_core.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/sql_jsonb.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/sql_rules.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/system_prompts/tool_html_passthrough.prompt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/templates/_company_header.html +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/templates/_login_widget.html +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/templates/base.html +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/templates/change_password.html +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/templates/chat.html +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/templates/chat_memory_modal.html +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/templates/chat_modals.html +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/templates/error.html +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/templates/forgot_password.html +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/templates/home_hosted_default.html +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/templates/memory/wiki_schema.md +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/templates/onboarding_shell.html +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/templates/pdf/base.html +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/templates/pdf/letter.html +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/templates/pdf/report.html +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/templates/pdf/simple.html +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/templates/signup.html +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/__init__.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/api_key_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/base_login_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/categories_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/change_password_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/chat_context_preview_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/chat_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/configuration_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/connectors_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/embedding_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/forgot_password_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/help_content_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/history_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/home_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/init_context_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/llmquery_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/load_document_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/login_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/logout_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/memory_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/profile_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/prompt_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/prompt_context_preview_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/prompt_resource_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/rag_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/root_redirect_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/signup_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/static_page_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/tool_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/users_api_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/views/verify_user_view.py +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit.egg-info/SOURCES.txt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit.egg-info/requires.txt +0 -0
- {iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit.egg-info/top_level.txt +0 -0
|
@@ -2,42 +2,47 @@ version: 2
|
|
|
2
2
|
prompts:
|
|
3
3
|
- key: core_identity
|
|
4
4
|
filename: core_identity.prompt
|
|
5
|
+
section: identity
|
|
5
6
|
include:
|
|
6
7
|
execution_modes:
|
|
7
8
|
- chat
|
|
8
9
|
- agent
|
|
9
10
|
- key: chat_user_profile
|
|
10
11
|
filename: chat_user_profile.prompt
|
|
12
|
+
section: identity
|
|
11
13
|
include:
|
|
12
14
|
execution_modes:
|
|
13
15
|
- chat
|
|
14
16
|
- key: chat_state_rules
|
|
15
17
|
filename: chat_state_rules.prompt
|
|
18
|
+
section: conversation_rules
|
|
16
19
|
include:
|
|
17
20
|
execution_modes:
|
|
18
21
|
- chat
|
|
19
22
|
- key: links_documents
|
|
20
23
|
filename: links_documents.prompt
|
|
24
|
+
section: conversation_rules
|
|
21
25
|
include:
|
|
22
26
|
execution_modes:
|
|
23
27
|
- chat
|
|
24
28
|
- agent
|
|
25
29
|
- key: memory_usage
|
|
26
30
|
filename: memory_usage.prompt
|
|
31
|
+
section: conversation_rules
|
|
27
32
|
include:
|
|
28
33
|
execution_modes:
|
|
29
34
|
- chat
|
|
30
|
-
- agent
|
|
31
35
|
all_capabilities:
|
|
32
36
|
- can_use_memory
|
|
33
37
|
- key: multimodal_basics
|
|
34
38
|
filename: multimodal_basics.prompt
|
|
39
|
+
section: conversation_rules
|
|
35
40
|
include:
|
|
36
41
|
execution_modes:
|
|
37
42
|
- chat
|
|
38
|
-
- agent
|
|
39
43
|
- key: output_basics
|
|
40
44
|
filename: output_basics.prompt
|
|
45
|
+
section: output_contract
|
|
41
46
|
include:
|
|
42
47
|
execution_modes:
|
|
43
48
|
- chat
|
|
@@ -46,6 +51,7 @@ prompts:
|
|
|
46
51
|
- chat_compatible
|
|
47
52
|
- key: presentation_formatting
|
|
48
53
|
filename: presentation_formatting.prompt
|
|
54
|
+
section: output_contract
|
|
49
55
|
include:
|
|
50
56
|
execution_modes:
|
|
51
57
|
- chat
|
|
@@ -53,6 +59,7 @@ prompts:
|
|
|
53
59
|
- chat_compatible
|
|
54
60
|
- key: html_structures
|
|
55
61
|
filename: html_structures.prompt
|
|
62
|
+
section: output_contract
|
|
56
63
|
include:
|
|
57
64
|
execution_modes:
|
|
58
65
|
- chat
|
|
@@ -60,12 +67,14 @@ prompts:
|
|
|
60
67
|
- chat_compatible
|
|
61
68
|
- key: tool_html_passthrough
|
|
62
69
|
filename: tool_html_passthrough.prompt
|
|
70
|
+
section: output_contract
|
|
63
71
|
include:
|
|
64
72
|
execution_modes:
|
|
65
73
|
- chat
|
|
66
74
|
- agent
|
|
67
75
|
- key: file_download_output
|
|
68
76
|
filename: file_download_output.prompt
|
|
77
|
+
section: output_contract
|
|
69
78
|
include:
|
|
70
79
|
execution_modes:
|
|
71
80
|
- chat
|
|
@@ -74,6 +83,7 @@ prompts:
|
|
|
74
83
|
- can_generate_files
|
|
75
84
|
- key: email_output
|
|
76
85
|
filename: email_output.prompt
|
|
86
|
+
section: output_contract
|
|
77
87
|
include:
|
|
78
88
|
execution_modes:
|
|
79
89
|
- chat
|
|
@@ -82,6 +92,7 @@ prompts:
|
|
|
82
92
|
- can_send_email
|
|
83
93
|
- key: sql_core
|
|
84
94
|
filename: sql_core.prompt
|
|
95
|
+
section: data_access_rules
|
|
85
96
|
include:
|
|
86
97
|
execution_modes:
|
|
87
98
|
- chat
|
|
@@ -90,6 +101,7 @@ prompts:
|
|
|
90
101
|
- can_query_sql
|
|
91
102
|
- key: sql_jsonb
|
|
92
103
|
filename: sql_jsonb.prompt
|
|
104
|
+
section: data_access_rules
|
|
93
105
|
include:
|
|
94
106
|
execution_modes:
|
|
95
107
|
- chat
|
|
@@ -98,6 +110,7 @@ prompts:
|
|
|
98
110
|
- can_query_sql
|
|
99
111
|
- key: sql_casting
|
|
100
112
|
filename: sql_casting.prompt
|
|
113
|
+
section: data_access_rules
|
|
101
114
|
include:
|
|
102
115
|
execution_modes:
|
|
103
116
|
- chat
|
|
@@ -106,6 +119,7 @@ prompts:
|
|
|
106
119
|
- can_query_sql
|
|
107
120
|
- key: sql_aggregation_scope
|
|
108
121
|
filename: sql_aggregation_scope.prompt
|
|
122
|
+
section: data_access_rules
|
|
109
123
|
include:
|
|
110
124
|
execution_modes:
|
|
111
125
|
- chat
|
|
@@ -31,46 +31,56 @@ class CompanyContextService:
|
|
|
31
31
|
self.asset_repo = asset_repo
|
|
32
32
|
|
|
33
33
|
def get_company_context(self, company_short_name: str) -> str:
|
|
34
|
+
blocks = self.get_company_context_blocks(company_short_name)
|
|
35
|
+
return "\n\n---\n\n".join(
|
|
36
|
+
section
|
|
37
|
+
for section in (
|
|
38
|
+
blocks.get("markdown_context"),
|
|
39
|
+
blocks.get("sql_context"),
|
|
40
|
+
blocks.get("yaml_context"),
|
|
41
|
+
)
|
|
42
|
+
if section
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
def get_company_context_blocks(self, company_short_name: str) -> dict[str, str]:
|
|
34
46
|
"""
|
|
35
47
|
Builds the full context by aggregating three sources:
|
|
36
48
|
1. Static context files (Markdown).
|
|
37
49
|
2. Physical SQL schemas and enriched metadata.
|
|
38
50
|
3. Residual schema files (YAML files not already covered by SQL enrichment).
|
|
39
51
|
"""
|
|
40
|
-
|
|
52
|
+
md_context = ""
|
|
53
|
+
sql_context = ""
|
|
54
|
+
yaml_context = ""
|
|
41
55
|
db_tables = []
|
|
42
56
|
|
|
43
57
|
# 1. Context from Markdown (context/*.md) files
|
|
44
58
|
try:
|
|
45
|
-
md_context = self._get_static_file_context(company_short_name)
|
|
46
|
-
if md_context:
|
|
47
|
-
context_parts.append(md_context)
|
|
59
|
+
md_context = self._get_static_file_context(company_short_name).strip()
|
|
48
60
|
except Exception as e:
|
|
49
61
|
logging.warning(f"Could not load Markdown context for '{company_short_name}': {e}")
|
|
50
62
|
|
|
51
63
|
# 2. Resolve company-specific SQL databases. We collect them first so YAML
|
|
52
64
|
# context can avoid duplicating table definitions already covered by SQL.
|
|
53
|
-
sql_context = ""
|
|
54
65
|
try:
|
|
55
66
|
sql_context, db_tables = self._get_sql_enriched_context(company_short_name)
|
|
67
|
+
sql_context = sql_context.strip()
|
|
56
68
|
except Exception as e:
|
|
57
69
|
logging.warning(f"Could not generate SQL context for '{company_short_name}': {e}")
|
|
58
70
|
|
|
59
|
-
# 3. Append physical SQL context after markdown. Table-level YAML metadata
|
|
60
|
-
# is already merged inline inside the enriched SQL definitions.
|
|
61
|
-
if sql_context:
|
|
62
|
-
context_parts.append(sql_context)
|
|
63
|
-
|
|
64
71
|
# 4. Context from residual yaml (schema/*.yaml) files
|
|
65
72
|
try:
|
|
66
|
-
yaml_schema_context = self._get_yaml_schema_context(company_short_name, db_tables)
|
|
73
|
+
yaml_schema_context = self._get_yaml_schema_context(company_short_name, db_tables).strip()
|
|
67
74
|
if yaml_schema_context:
|
|
68
|
-
|
|
75
|
+
yaml_context = f"## Esquemas adicionales\n\n{yaml_schema_context}"
|
|
69
76
|
except Exception as e:
|
|
70
77
|
logging.warning(f"Could not load Yaml context for '{company_short_name}': {e}")
|
|
71
78
|
|
|
72
|
-
|
|
73
|
-
|
|
79
|
+
return {
|
|
80
|
+
"markdown_context": md_context,
|
|
81
|
+
"sql_context": sql_context,
|
|
82
|
+
"yaml_context": yaml_context,
|
|
83
|
+
}
|
|
74
84
|
|
|
75
85
|
def get_sql_context(self, company_short_name: str, allowed_databases: List[str] | None = None) -> str:
|
|
76
86
|
try:
|
|
@@ -27,6 +27,14 @@ class ContextBuilderService:
|
|
|
27
27
|
MEMORY_TOOL_NAMES = {"iat_memory_search", "iat_memory_get_page"}
|
|
28
28
|
FILE_GENERATION_TOOL_NAMES = {"iat_generate_excel", "iat_generate_pdf"}
|
|
29
29
|
EMAIL_TOOL_NAME = "iat_send_email"
|
|
30
|
+
SYSTEM_PROMPT_SECTION_ORDER = (
|
|
31
|
+
"identity",
|
|
32
|
+
"business_context",
|
|
33
|
+
"conversation_rules",
|
|
34
|
+
"retrieval_guidance",
|
|
35
|
+
"data_access_rules",
|
|
36
|
+
"output_contract",
|
|
37
|
+
)
|
|
30
38
|
|
|
31
39
|
"""
|
|
32
40
|
Service responsible for constructing the text contexts and prompts used by the LLM.
|
|
@@ -175,28 +183,30 @@ class ContextBuilderService:
|
|
|
175
183
|
execution_mode="chat",
|
|
176
184
|
response_mode="chat_compatible",
|
|
177
185
|
)
|
|
178
|
-
system_prompt_template = system_prompt_payload.get("content", "")
|
|
179
186
|
selected_system_prompt_keys = system_prompt_payload.get("selected_keys")
|
|
180
187
|
if not isinstance(selected_system_prompt_keys, list):
|
|
181
188
|
selected_system_prompt_keys = []
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
question=None,
|
|
189
|
+
rendered_sections = self._render_system_prompt_sections(
|
|
190
|
+
system_prompt_payload=system_prompt_payload,
|
|
185
191
|
client_data=user_profile,
|
|
186
192
|
company=company,
|
|
187
193
|
service_list=available_tools,
|
|
188
194
|
)
|
|
189
195
|
|
|
190
196
|
# 3. Get company specific context (DB Schemas, Docs, etc.)
|
|
191
|
-
|
|
197
|
+
company_context_blocks = self.company_context_service.get_company_context_blocks(company_short_name)
|
|
192
198
|
collection_context = self._build_collection_context(company_short_name)
|
|
193
199
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
+
final_system_context = self._join_context_sections(
|
|
201
|
+
rendered_sections.get("identity"),
|
|
202
|
+
company_context_blocks.get("markdown_context"),
|
|
203
|
+
rendered_sections.get("conversation_rules"),
|
|
204
|
+
rendered_sections.get("retrieval_guidance"),
|
|
205
|
+
collection_context,
|
|
206
|
+
rendered_sections.get("data_access_rules"),
|
|
207
|
+
company_context_blocks.get("sql_context"),
|
|
208
|
+
company_context_blocks.get("yaml_context"),
|
|
209
|
+
rendered_sections.get("output_contract"),
|
|
200
210
|
)
|
|
201
211
|
|
|
202
212
|
return final_system_context, user_profile, selected_system_prompt_keys
|
|
@@ -284,14 +294,11 @@ class ContextBuilderService:
|
|
|
284
294
|
execution_mode="agent",
|
|
285
295
|
response_mode=str(resolved_contract.get("response_mode") or "chat_compatible").strip().lower() or "chat_compatible",
|
|
286
296
|
)
|
|
287
|
-
system_prompt_template = system_prompt_payload.get("content", "")
|
|
288
297
|
selected_system_prompt_keys = system_prompt_payload.get("selected_keys")
|
|
289
298
|
if not isinstance(selected_system_prompt_keys, list):
|
|
290
299
|
selected_system_prompt_keys = []
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
template_string=system_prompt_template,
|
|
294
|
-
question=None,
|
|
300
|
+
rendered_sections = self._render_system_prompt_sections(
|
|
301
|
+
system_prompt_payload=system_prompt_payload,
|
|
295
302
|
client_data=user_profile,
|
|
296
303
|
company=company,
|
|
297
304
|
service_list=enabled_tools,
|
|
@@ -311,14 +318,67 @@ class ContextBuilderService:
|
|
|
311
318
|
collection_names=rag_collections,
|
|
312
319
|
)
|
|
313
320
|
|
|
314
|
-
final_system_context =
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
321
|
+
final_system_context = self._join_context_sections(
|
|
322
|
+
rendered_sections.get("identity"),
|
|
323
|
+
rendered_sections.get("conversation_rules"),
|
|
324
|
+
rendered_sections.get("retrieval_guidance"),
|
|
325
|
+
collection_context,
|
|
326
|
+
rendered_sections.get("data_access_rules"),
|
|
327
|
+
sql_context,
|
|
328
|
+
rendered_sections.get("output_contract"),
|
|
318
329
|
)
|
|
319
330
|
|
|
320
331
|
return final_system_context, user_profile, selected_system_prompt_keys
|
|
321
332
|
|
|
333
|
+
def _render_system_prompt_sections(
|
|
334
|
+
self,
|
|
335
|
+
*,
|
|
336
|
+
system_prompt_payload: dict | None,
|
|
337
|
+
client_data: dict | None,
|
|
338
|
+
company: Company,
|
|
339
|
+
service_list: list[dict] | None,
|
|
340
|
+
) -> dict[str, str]:
|
|
341
|
+
payload = system_prompt_payload or {}
|
|
342
|
+
raw_sections = payload.get("sections")
|
|
343
|
+
rendered_sections: dict[str, str] = {}
|
|
344
|
+
|
|
345
|
+
if isinstance(raw_sections, list) and raw_sections:
|
|
346
|
+
for item in raw_sections:
|
|
347
|
+
if not isinstance(item, dict):
|
|
348
|
+
continue
|
|
349
|
+
section_name = str(item.get("section") or "").strip().lower()
|
|
350
|
+
template_string = str(item.get("content") or "").strip()
|
|
351
|
+
if not section_name or not template_string:
|
|
352
|
+
continue
|
|
353
|
+
rendered_sections[section_name] = self.util.render_prompt_from_string(
|
|
354
|
+
template_string=template_string,
|
|
355
|
+
question=None,
|
|
356
|
+
client_data=client_data,
|
|
357
|
+
company=company,
|
|
358
|
+
service_list=service_list,
|
|
359
|
+
).strip()
|
|
360
|
+
|
|
361
|
+
if rendered_sections:
|
|
362
|
+
return rendered_sections
|
|
363
|
+
|
|
364
|
+
fallback_content = str(payload.get("content") or "").strip()
|
|
365
|
+
if not fallback_content:
|
|
366
|
+
return {}
|
|
367
|
+
|
|
368
|
+
return {
|
|
369
|
+
"identity": self.util.render_prompt_from_string(
|
|
370
|
+
template_string=fallback_content,
|
|
371
|
+
question=None,
|
|
372
|
+
client_data=client_data,
|
|
373
|
+
company=company,
|
|
374
|
+
service_list=service_list,
|
|
375
|
+
).strip()
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
@staticmethod
|
|
379
|
+
def _join_context_sections(*sections: str | None) -> str:
|
|
380
|
+
return "\n\n".join(section for section in sections if section)
|
|
381
|
+
|
|
322
382
|
def _build_collection_context(self, company_short_name: str, collection_names: list[str] | None = None) -> str:
|
|
323
383
|
try:
|
|
324
384
|
descriptors = self.knowledge_base_service.get_collection_descriptors(company_short_name)
|
|
@@ -674,10 +674,14 @@ class PromptService:
|
|
|
674
674
|
selected_keys = payload.get("selected_keys")
|
|
675
675
|
if not isinstance(selected_keys, list):
|
|
676
676
|
selected_keys = []
|
|
677
|
+
sections = payload.get("sections")
|
|
678
|
+
if not isinstance(sections, list):
|
|
679
|
+
sections = []
|
|
677
680
|
|
|
678
681
|
return {
|
|
679
682
|
"content": payload.get("content", ""),
|
|
680
683
|
"selected_keys": selected_keys,
|
|
684
|
+
"sections": sections,
|
|
681
685
|
}
|
|
682
686
|
|
|
683
687
|
except IAToolkitException:
|
|
@@ -11,6 +11,15 @@ import yaml
|
|
|
11
11
|
SYSTEM_PROMPTS_CONFIG_PACKAGE = "iatoolkit.config"
|
|
12
12
|
SYSTEM_PROMPTS_CONFIG_FILENAME = "system_prompts_pack.yaml"
|
|
13
13
|
SYSTEM_PROMPTS_PACKAGE = "iatoolkit.system_prompts"
|
|
14
|
+
SYSTEM_PROMPT_SECTION_ORDER = (
|
|
15
|
+
"identity",
|
|
16
|
+
"business_context",
|
|
17
|
+
"conversation_rules",
|
|
18
|
+
"retrieval_guidance",
|
|
19
|
+
"data_access_rules",
|
|
20
|
+
"output_contract",
|
|
21
|
+
)
|
|
22
|
+
SYSTEM_PROMPT_ALLOWED_SECTIONS = set(SYSTEM_PROMPT_SECTION_ORDER)
|
|
14
23
|
|
|
15
24
|
|
|
16
25
|
def _read_catalog_text() -> str:
|
|
@@ -81,6 +90,17 @@ def _normalize_pattern_list(value: Any, index: int) -> list[str]:
|
|
|
81
90
|
return normalized
|
|
82
91
|
|
|
83
92
|
|
|
93
|
+
def _normalize_section(value: Any, index: int) -> str:
|
|
94
|
+
section = str(value or "").strip().lower()
|
|
95
|
+
if not section:
|
|
96
|
+
raise ValueError(f"prompts[{index}].section is required")
|
|
97
|
+
if section not in SYSTEM_PROMPT_ALLOWED_SECTIONS:
|
|
98
|
+
raise ValueError(
|
|
99
|
+
f"prompts[{index}].section must be one of {list(SYSTEM_PROMPT_SECTION_ORDER)}"
|
|
100
|
+
)
|
|
101
|
+
return section
|
|
102
|
+
|
|
103
|
+
|
|
84
104
|
def _normalize_include_rule(value: Any, index: int) -> dict:
|
|
85
105
|
if value in (None, "always"):
|
|
86
106
|
return {
|
|
@@ -165,6 +185,7 @@ def _parse_catalog(text: str) -> list[dict]:
|
|
|
165
185
|
filename = str(raw_prompt.get("filename") or "").strip()
|
|
166
186
|
if not filename:
|
|
167
187
|
raise ValueError(f"prompts[{index}].filename is required")
|
|
188
|
+
section = _normalize_section(raw_prompt.get("section"), index)
|
|
168
189
|
|
|
169
190
|
include_rule = _normalize_include_rule(raw_prompt.get("include"), index)
|
|
170
191
|
|
|
@@ -172,6 +193,7 @@ def _parse_catalog(text: str) -> list[dict]:
|
|
|
172
193
|
{
|
|
173
194
|
"key": key,
|
|
174
195
|
"filename": filename,
|
|
196
|
+
"section": section,
|
|
175
197
|
"include": include_rule,
|
|
176
198
|
}
|
|
177
199
|
)
|
|
@@ -279,14 +301,42 @@ def build_system_prompt_payload(
|
|
|
279
301
|
for entry in selected_entries:
|
|
280
302
|
filename = str(entry.get("filename") or "").strip()
|
|
281
303
|
key = str(entry.get("key") or "").strip()
|
|
304
|
+
section = str(entry.get("section") or "").strip().lower()
|
|
282
305
|
if not filename or not key:
|
|
283
306
|
continue
|
|
284
307
|
content_parts.append(_read_prompt_text(filename))
|
|
285
308
|
selected_keys.append(key)
|
|
286
309
|
|
|
310
|
+
section_buckets: dict[str, dict[str, Any]] = {
|
|
311
|
+
section: {"section": section, "content_parts": [], "selected_keys": []}
|
|
312
|
+
for section in SYSTEM_PROMPT_SECTION_ORDER
|
|
313
|
+
}
|
|
314
|
+
for entry in selected_entries:
|
|
315
|
+
filename = str(entry.get("filename") or "").strip()
|
|
316
|
+
key = str(entry.get("key") or "").strip()
|
|
317
|
+
section = str(entry.get("section") or "").strip().lower()
|
|
318
|
+
if not filename or not key or section not in section_buckets:
|
|
319
|
+
continue
|
|
320
|
+
section_buckets[section]["content_parts"].append(_read_prompt_text(filename))
|
|
321
|
+
section_buckets[section]["selected_keys"].append(key)
|
|
322
|
+
|
|
323
|
+
sections: list[dict] = []
|
|
324
|
+
for section in SYSTEM_PROMPT_SECTION_ORDER:
|
|
325
|
+
bucket = section_buckets[section]
|
|
326
|
+
if not bucket["content_parts"]:
|
|
327
|
+
continue
|
|
328
|
+
sections.append(
|
|
329
|
+
{
|
|
330
|
+
"section": section,
|
|
331
|
+
"content": "\n\n".join(bucket["content_parts"]),
|
|
332
|
+
"selected_keys": list(bucket["selected_keys"]),
|
|
333
|
+
}
|
|
334
|
+
)
|
|
335
|
+
|
|
287
336
|
return {
|
|
288
|
-
"content": "\n\n".join(
|
|
337
|
+
"content": "\n\n".join(section["content"] for section in sections),
|
|
289
338
|
"selected_keys": selected_keys,
|
|
339
|
+
"sections": sections,
|
|
290
340
|
}
|
|
291
341
|
|
|
292
342
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/common/interfaces/signup_policy_resolver.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/connectors/file_connector_factory.py
RENAMED
|
File without changes
|
{iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py
RENAMED
|
File without changes
|
{iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/infra/connectors/google_drive_connector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.3.2 → iatoolkit-2.3.4}/src/iatoolkit/repositories/filesystem_asset_repository.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|