openrag 0.5.0.dev37__tar.gz → 0.5.1.dev1__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.
Files changed (171) hide show
  1. {openrag-0.5.0.dev37/src/openrag.egg-info → openrag-0.5.1.dev1}/PKG-INFO +1 -1
  2. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/pyproject.toml +1 -1
  3. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/settings.py +1 -4
  4. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/main.py +3 -96
  5. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1/src/openrag.egg-info}/PKG-INFO +1 -1
  6. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/services/flows_service.py +4 -6
  7. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/LICENSE +0 -0
  8. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/MANIFEST.in +0 -0
  9. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/README.md +0 -0
  10. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/setup.cfg +0 -0
  11. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/agent.py +0 -0
  12. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/__init__.py +0 -0
  13. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/auth.py +0 -0
  14. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/chat.py +0 -0
  15. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/connectors.py +0 -0
  16. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/docling.py +0 -0
  17. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/documents.py +0 -0
  18. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/flows.py +0 -0
  19. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/keys.py +0 -0
  20. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/knowledge_filter.py +0 -0
  21. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/langflow_files.py +0 -0
  22. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/models.py +0 -0
  23. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/nudges.py +0 -0
  24. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/oidc.py +0 -0
  25. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/provider_health.py +0 -0
  26. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/provider_validation.py +0 -0
  27. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/router.py +0 -0
  28. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/search.py +0 -0
  29. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/tasks.py +0 -0
  30. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/upload.py +0 -0
  31. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/v1/__init__.py +0 -0
  32. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/v1/chat.py +0 -0
  33. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/v1/documents.py +0 -0
  34. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/v1/knowledge_filters.py +0 -0
  35. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/v1/models.py +0 -0
  36. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/v1/search.py +0 -0
  37. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/api/v1/settings.py +0 -0
  38. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/auth/__init__.py +0 -0
  39. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/auth/ibm_auth.py +0 -0
  40. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/auth_context.py +0 -0
  41. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/bootstrap.py +0 -0
  42. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/config/__init__.py +0 -0
  43. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/config/config_manager.py +0 -0
  44. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/config/embedding_constants.py +0 -0
  45. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/config/model_constants.py +0 -0
  46. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/config/paths.py +0 -0
  47. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/config/settings.py +0 -0
  48. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/__init__.py +0 -0
  49. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/aws_s3/__init__.py +0 -0
  50. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/aws_s3/api.py +0 -0
  51. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/aws_s3/auth.py +0 -0
  52. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/aws_s3/connector.py +0 -0
  53. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/aws_s3/models.py +0 -0
  54. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/aws_s3/support.py +0 -0
  55. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/base.py +0 -0
  56. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/connection_manager.py +0 -0
  57. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/google_drive/__init__.py +0 -0
  58. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/google_drive/connector.py +0 -0
  59. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/google_drive/oauth.py +0 -0
  60. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/ibm_cos/__init__.py +0 -0
  61. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/ibm_cos/api.py +0 -0
  62. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/ibm_cos/auth.py +0 -0
  63. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/ibm_cos/connector.py +0 -0
  64. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/ibm_cos/models.py +0 -0
  65. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/ibm_cos/support.py +0 -0
  66. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/onedrive/__init__.py +0 -0
  67. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/onedrive/connector.py +0 -0
  68. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/onedrive/oauth.py +0 -0
  69. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/service.py +0 -0
  70. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/sharepoint/__init__.py +0 -0
  71. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/sharepoint/connector.py +0 -0
  72. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/sharepoint/oauth.py +0 -0
  73. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/connectors/sharepoint/utils.py +0 -0
  74. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/dependencies.py +0 -0
  75. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/mcp_http/__init__.py +0 -0
  76. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/mcp_http/server.py +0 -0
  77. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/models/__init__.py +0 -0
  78. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/models/processors.py +0 -0
  79. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/models/tasks.py +0 -0
  80. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/models/url.py +0 -0
  81. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/openrag.egg-info/SOURCES.txt +0 -0
  82. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/openrag.egg-info/dependency_links.txt +0 -0
  83. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/openrag.egg-info/entry_points.txt +0 -0
  84. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/openrag.egg-info/requires.txt +0 -0
  85. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/openrag.egg-info/top_level.txt +0 -0
  86. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/services/__init__.py +0 -0
  87. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/services/api_key_service.py +0 -0
  88. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/services/auth_service.py +0 -0
  89. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/services/chat_service.py +0 -0
  90. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/services/conversation_persistence_service.py +0 -0
  91. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/services/document_service.py +0 -0
  92. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/services/knowledge_filter_service.py +0 -0
  93. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/services/langflow_file_service.py +0 -0
  94. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/services/langflow_history_service.py +0 -0
  95. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/services/langflow_mcp_service.py +0 -0
  96. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/services/models_service.py +0 -0
  97. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/services/monitor_service.py +0 -0
  98. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/services/search_service.py +0 -0
  99. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/services/session_ownership_service.py +0 -0
  100. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/services/task_service.py +0 -0
  101. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/session_manager.py +0 -0
  102. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/__init__.py +0 -0
  103. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/_assets/docker-compose.gpu.yml +0 -0
  104. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/_assets/docker-compose.yml +0 -0
  105. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/_assets/flows/components/ollama_embedding.json +0 -0
  106. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/_assets/flows/components/ollama_llm.json +0 -0
  107. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/_assets/flows/components/ollama_llm_text.json +0 -0
  108. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/_assets/flows/components/watsonx_embedding.json +0 -0
  109. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/_assets/flows/components/watsonx_llm.json +0 -0
  110. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/_assets/flows/components/watsonx_llm_text.json +0 -0
  111. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/_assets/flows/ingestion_flow.json +0 -0
  112. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/_assets/flows/openrag_agent.json +0 -0
  113. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/_assets/flows/openrag_nudges.json +0 -0
  114. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/_assets/flows/openrag_url_mcp.json +0 -0
  115. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/_assets/openrag-documents/docling.pdf +0 -0
  116. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/_assets/openrag-documents/ibm_anthropic.pdf +0 -0
  117. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/_assets/openrag-documents/warmup_ocr.pdf +0 -0
  118. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/cli.py +0 -0
  119. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/config_fields.py +0 -0
  120. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/main.py +0 -0
  121. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/managers/__init__.py +0 -0
  122. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/managers/container_manager.py +0 -0
  123. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/managers/docling_manager.py +0 -0
  124. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/managers/env_manager.py +0 -0
  125. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/screens/__init__.py +0 -0
  126. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/screens/config.py +0 -0
  127. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/screens/diagnostics.py +0 -0
  128. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/screens/logs.py +0 -0
  129. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/screens/monitor.py +0 -0
  130. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/screens/welcome.py +0 -0
  131. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/utils/__init__.py +0 -0
  132. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/utils/clipboard.py +0 -0
  133. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/utils/platform.py +0 -0
  134. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/utils/startup_checks.py +0 -0
  135. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/utils/validation.py +0 -0
  136. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/utils/version_check.py +0 -0
  137. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/widgets/__init__.py +0 -0
  138. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/widgets/command_modal.py +0 -0
  139. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/widgets/diagnostics_notification.py +0 -0
  140. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/widgets/error_notification.py +0 -0
  141. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/widgets/factory_reset_warning_modal.py +0 -0
  142. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/widgets/flow_backup_warning_modal.py +0 -0
  143. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/widgets/prune_options_modal.py +0 -0
  144. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/widgets/upgrade_instructions_modal.py +0 -0
  145. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/widgets/version_mismatch_warning_modal.py +0 -0
  146. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/tui/widgets/waves.py +0 -0
  147. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/__init__.py +0 -0
  148. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/acl_utils.py +0 -0
  149. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/container_utils.py +0 -0
  150. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/docling_client.py +0 -0
  151. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/document_processing.py +0 -0
  152. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/embedding_fields.py +0 -0
  153. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/embeddings.py +0 -0
  154. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/encryption.py +0 -0
  155. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/env_utils.py +0 -0
  156. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/file_utils.py +0 -0
  157. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/gpu_detection.py +0 -0
  158. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/hash_utils.py +0 -0
  159. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/langflow_headers.py +0 -0
  160. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/langflow_utils.py +0 -0
  161. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/logging_config.py +0 -0
  162. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/opensearch_delete.py +0 -0
  163. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/opensearch_queries.py +0 -0
  164. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/opensearch_utils.py +0 -0
  165. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/paths.py +0 -0
  166. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/run_mode_utils.py +0 -0
  167. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/telemetry/__init__.py +0 -0
  168. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/telemetry/category.py +0 -0
  169. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/telemetry/client.py +0 -0
  170. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/telemetry/message_id.py +0 -0
  171. {openrag-0.5.0.dev37 → openrag-0.5.1.dev1}/src/utils/version_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openrag
3
- Version: 0.5.0.dev37
3
+ Version: 0.5.1.dev1
4
4
  Summary: OpenRAG is a comprehensive Retrieval-Augmented Generation platform that enables intelligent document search and AI-powered conversations.
5
5
  Classifier: Development Status :: 4 - Beta
6
6
  Classifier: Environment :: Console
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "openrag"
7
- version = "0.5.0.dev37"
7
+ version = "0.5.1.dev1"
8
8
  description = "OpenRAG is a comprehensive Retrieval-Augmented Generation platform that enables intelligent document search and AI-powered conversations."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13"
@@ -1676,10 +1676,7 @@ async def _update_langflow_model_values(config, flows_service, llm_model=None, l
1676
1676
  async def _update_langflow_system_prompt(config, flows_service):
1677
1677
  """Update system prompt in chat flow"""
1678
1678
  try:
1679
- llm_provider = config.agent.llm_provider.lower()
1680
- await flows_service.update_chat_flow_system_prompt(
1681
- config.agent.system_prompt, llm_provider
1682
- )
1679
+ await flows_service.update_chat_flow_system_prompt(config.agent.system_prompt)
1683
1680
  logger.info("Successfully updated chat flow system prompt")
1684
1681
  except Exception as e:
1685
1682
  logger.error(f"Failed to update chat flow system prompt: {str(e)}")
@@ -1619,7 +1619,7 @@ async def create_app():
1619
1619
  """Create and configure the FastAPI application"""
1620
1620
  services = await initialize_services()
1621
1621
 
1622
- app = FastAPI(title="OpenRAG API", version=OPENRAG_VERSION, debug=True)
1622
+ app = FastAPI(title="OpenRAG API", version=OPENRAG_VERSION, debug=True, lifespan=lifespan)
1623
1623
  app.state.services = services # Store services for cleanup
1624
1624
  app.state.background_tasks = set()
1625
1625
 
@@ -2139,102 +2139,9 @@ async def create_app():
2139
2139
  # FastMCP requires its own lifespan to be run so that the
2140
2140
  # StreamableHTTPSessionManager task group is initialized before requests arrive.
2141
2141
  # FastAPI does not automatically propagate lifespan to mounted sub-apps,
2142
- # so we wire it in manually via startup/shutdown handlers.
2142
+ # so we wire it in manually via the parent's lifespan (using app.state).
2143
2143
  _mcp_lifespan_ctx = mcp_http_app.router.lifespan_context(mcp_http_app)
2144
-
2145
- async def _start_mcp_lifespan():
2146
- await _mcp_lifespan_ctx.__aenter__()
2147
- logger.info("FastMCP lifespan started")
2148
-
2149
- async def _stop_mcp_lifespan():
2150
- await _mcp_lifespan_ctx.__aexit__(None, None, None)
2151
- logger.info("FastMCP lifespan stopped")
2152
-
2153
- app.add_event_handler("startup", _start_mcp_lifespan)
2154
- app.add_event_handler("shutdown", _stop_mcp_lifespan)
2155
-
2156
- # Add startup event handler
2157
- @app.on_event("startup")
2158
- async def startup_event():
2159
- await TelemetryClient.send_event(
2160
- Category.APPLICATION_STARTUP, MessageId.ORB_APP_STARTED
2161
- )
2162
- # Start index initialization in background to avoid blocking OIDC endpoints
2163
- t1 = asyncio.create_task(startup_tasks(services))
2164
- app.state.background_tasks.add(t1)
2165
- t1.add_done_callback(app.state.background_tasks.discard)
2166
-
2167
- # Start periodic task cleanup scheduler
2168
- services["task_service"].start_cleanup_scheduler()
2169
-
2170
- # Start periodic flow backup task (every 5 minutes)
2171
- async def periodic_backup():
2172
- """Periodic backup task that runs every 15 minutes"""
2173
- while True:
2174
- try:
2175
- await asyncio.sleep(5 * 60) # Wait 5 minutes
2176
-
2177
- # Check if onboarding has been completed
2178
- config = get_openrag_config()
2179
- if not config.edited:
2180
- logger.debug(
2181
- "Onboarding not completed yet, skipping periodic backup"
2182
- )
2183
- continue
2184
-
2185
- flows_service = services.get("flows_service")
2186
- if flows_service:
2187
- logger.info("Running periodic flow backup")
2188
- backup_results = await flows_service.backup_all_flows(
2189
- only_if_changed=True
2190
- )
2191
- if backup_results["backed_up"]:
2192
- logger.info(
2193
- "Periodic backup completed",
2194
- backed_up=len(backup_results["backed_up"]),
2195
- skipped=len(backup_results["skipped"]),
2196
- )
2197
- else:
2198
- logger.debug(
2199
- "Periodic backup: no flows changed",
2200
- skipped=len(backup_results["skipped"]),
2201
- )
2202
- except asyncio.CancelledError:
2203
- logger.info("Periodic backup task cancelled")
2204
- break
2205
- except Exception as e:
2206
- logger.error(f"Error in periodic backup task: {str(e)}")
2207
- # Continue running even if one backup fails
2208
-
2209
- backup_task = asyncio.create_task(periodic_backup())
2210
- app.state.background_tasks.add(backup_task)
2211
- backup_task.add_done_callback(app.state.background_tasks.discard)
2212
-
2213
- # Add shutdown event handler
2214
- @app.on_event("shutdown")
2215
- async def shutdown_event():
2216
- await TelemetryClient.send_event(
2217
- Category.APPLICATION_SHUTDOWN, MessageId.ORB_APP_SHUTDOWN
2218
- )
2219
- logger.info("Application shutdown initiated")
2220
-
2221
- # Gracefully shutdown OpenSearch connection first
2222
- try:
2223
- from utils.opensearch_utils import graceful_opensearch_shutdown
2224
- await graceful_opensearch_shutdown(clients.opensearch)
2225
- except Exception as e:
2226
- logger.error("Error during graceful OpenSearch shutdown", error=str(e))
2227
-
2228
- await cleanup_subscriptions_proper(services)
2229
- # Cleanup task service (cancels background tasks and process pool)
2230
- await services["task_service"].shutdown()
2231
- # Cleanup async clients (this will also close OpenSearch client if not already closed)
2232
- await clients.cleanup()
2233
- # Cleanup telemetry client
2234
- from utils.telemetry.client import cleanup_telemetry_client
2235
-
2236
- await cleanup_telemetry_client()
2237
- logger.info("Application shutdown completed")
2144
+ app.state.mcp_lifespan_ctx = _mcp_lifespan_ctx
2238
2145
 
2239
2146
  return app
2240
2147
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openrag
3
- Version: 0.5.0.dev37
3
+ Version: 0.5.1.dev1
4
4
  Summary: OpenRAG is a comprehensive Retrieval-Augmented Generation platform that enables intelligent document search and AI-powered conversations.
5
5
  Classifier: Development Status :: 4 - Beta
6
6
  Classifier: Environment :: Console
@@ -673,16 +673,14 @@ class FlowsService:
673
673
  await self._update_flow_field(LANGFLOW_CHAT_FLOW_ID, "model_name", model_name,
674
674
  node_display_name=target_llm_id)
675
675
 
676
- async def update_chat_flow_system_prompt(self, system_prompt: str, provider: str):
676
+ async def update_chat_flow_system_prompt(self, system_prompt: str):
677
677
  """Helper function to update the system prompt in the chat flow"""
678
678
  if not LANGFLOW_CHAT_FLOW_ID:
679
679
  raise ValueError("LANGFLOW_CHAT_FLOW_ID is not configured")
680
680
 
681
- # Determine target component IDs based on provider
682
- target_agent_id = self._get_provider_component_ids(provider)[1]
683
-
684
- await self._update_flow_field(LANGFLOW_CHAT_FLOW_ID, "system_prompt", system_prompt,
685
- node_display_name=target_agent_id)
681
+ await self._update_flow_field(
682
+ LANGFLOW_CHAT_FLOW_ID, "system_prompt", system_prompt, node_display_name=AGENT_COMPONENT_DISPLAY_NAME
683
+ )
686
684
 
687
685
  async def update_flow_docling_preset(self, preset: str, preset_config: dict):
688
686
  """Helper function to update docling preset in the ingest flow"""
File without changes
File without changes
File without changes
File without changes
File without changes