iris-vector-rag 0.5.2__tar.gz → 0.5.8__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 (202) hide show
  1. {iris_vector_rag-0.5.2/iris_vector_rag.egg-info → iris_vector_rag-0.5.8}/PKG-INFO +70 -260
  2. iris_vector_rag-0.5.8/README.md +314 -0
  3. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/__init__.py +1 -1
  4. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/connection_pool.py +11 -12
  5. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/iris_connection_manager.py +26 -7
  6. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/iris_dbapi_connector.py +8 -14
  7. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/config/default_config.yaml +112 -1
  8. iris_vector_rag-0.5.8/iris_vector_rag/config/entities.py +367 -0
  9. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/config/manager.py +124 -0
  10. iris_vector_rag-0.5.8/iris_vector_rag/config/validators.py +505 -0
  11. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/dspy_modules/batch_entity_extraction.py +26 -3
  12. iris_vector_rag-0.5.8/iris_vector_rag/exceptions.py +188 -0
  13. iris_vector_rag-0.5.8/iris_vector_rag/monitoring/__init__.py +58 -0
  14. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/graphrag.py +2 -2
  15. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/iris_global_graphrag.py +9 -6
  16. iris_vector_rag-0.5.8/iris_vector_rag/security/__init__.py +34 -0
  17. iris_vector_rag-0.5.8/iris_vector_rag/services/batch_entity_processor.py +499 -0
  18. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/services/entity_extraction.py +57 -4
  19. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/services/storage.py +171 -14
  20. iris_vector_rag-0.5.8/iris_vector_rag/storage/constants.py +70 -0
  21. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/storage/schema_manager.py +11 -6
  22. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8/iris_vector_rag.egg-info}/PKG-INFO +70 -260
  23. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag.egg-info/SOURCES.txt +7 -20
  24. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag.egg-info/requires.txt +17 -2
  25. iris_vector_rag-0.5.8/iris_vector_rag.egg-info/top_level.txt +1 -0
  26. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/pyproject.toml +20 -5
  27. iris_vector_rag-0.5.2/README.md +0 -517
  28. iris_vector_rag-0.5.2/adapters/rag_templates_bridge.py +0 -578
  29. iris_vector_rag-0.5.2/evaluation_framework/__init__.py +0 -66
  30. iris_vector_rag-0.5.2/evaluation_framework/biomedical_question_generator.py +0 -826
  31. iris_vector_rag-0.5.2/evaluation_framework/comparative_analysis_system.py +0 -1173
  32. iris_vector_rag-0.5.2/evaluation_framework/empirical_reporting.py +0 -1298
  33. iris_vector_rag-0.5.2/evaluation_framework/evaluation_orchestrator.py +0 -1123
  34. iris_vector_rag-0.5.2/evaluation_framework/execute_production_evaluation.py +0 -382
  35. iris_vector_rag-0.5.2/evaluation_framework/outputs/production_evaluation/execute_biomedical_rag_10k_evaluation_20250913_200432.py +0 -72
  36. iris_vector_rag-0.5.2/evaluation_framework/pmc_data_pipeline.py +0 -1332
  37. iris_vector_rag-0.5.2/evaluation_framework/production_evaluation_config.py +0 -353
  38. iris_vector_rag-0.5.2/evaluation_framework/ragas_metrics_framework.py +0 -1013
  39. iris_vector_rag-0.5.2/evaluation_framework/real_production_evaluation.py +0 -544
  40. iris_vector_rag-0.5.2/evaluation_framework/run_10k_evaluation.py +0 -175
  41. iris_vector_rag-0.5.2/evaluation_framework/simple_test.py +0 -364
  42. iris_vector_rag-0.5.2/evaluation_framework/statistical_evaluation_methodology.py +0 -1016
  43. iris_vector_rag-0.5.2/evaluation_framework/test_framework.py +0 -281
  44. iris_vector_rag-0.5.2/evaluation_framework/test_iris_connectivity.py +0 -244
  45. iris_vector_rag-0.5.2/evaluation_framework/test_small_scale_evaluation.py +0 -432
  46. iris_vector_rag-0.5.2/evaluation_framework/true_e2e_evaluation.py +0 -639
  47. iris_vector_rag-0.5.2/evaluation_framework/visualization_engine.py +0 -585
  48. iris_vector_rag-0.5.2/iris_vector_rag.egg-info/top_level.txt +0 -3
  49. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/LICENSE +0 -0
  50. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/__init__.py +0 -0
  51. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/cleanup_job.py +0 -0
  52. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/cli.py +0 -0
  53. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/main.py +0 -0
  54. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/mcp_routes.py +0 -0
  55. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/middleware/__init__.py +0 -0
  56. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/middleware/auth.py +0 -0
  57. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/middleware/logging.py +0 -0
  58. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/middleware/rate_limit.py +0 -0
  59. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/__init__.py +0 -0
  60. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/auth.py +0 -0
  61. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/errors.py +0 -0
  62. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/health.py +0 -0
  63. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/pipeline.py +0 -0
  64. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/quota.py +0 -0
  65. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/request.py +0 -0
  66. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/response.py +0 -0
  67. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/upload.py +0 -0
  68. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/websocket.py +0 -0
  69. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/routes/__init__.py +0 -0
  70. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/routes/document.py +0 -0
  71. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/routes/health.py +0 -0
  72. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/routes/pipeline.py +0 -0
  73. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/routes/query.py +0 -0
  74. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/services/__init__.py +0 -0
  75. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/services/auth_service.py +0 -0
  76. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/services/document_service.py +0 -0
  77. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/services/pipeline_manager.py +0 -0
  78. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/websocket/__init__.py +0 -0
  79. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/websocket/connection.py +0 -0
  80. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/websocket/handlers.py +0 -0
  81. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/websocket/routes.py +0 -0
  82. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/__init__.py +0 -0
  83. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/batch_utils.py +0 -0
  84. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/config.py +0 -0
  85. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/connection_manager.py +0 -0
  86. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/database.py +0 -0
  87. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/database_schema_manager.py +0 -0
  88. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/db_init_with_indexes.py +0 -0
  89. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/db_vector_utils.py +0 -0
  90. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/environment_manager.py +0 -0
  91. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/huggingface_utils.py +0 -0
  92. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/iris_client.py +0 -0
  93. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/iris_connection_pool.py +0 -0
  94. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/iris_connector.py +0 -0
  95. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/iris_index_utils.py +0 -0
  96. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/iris_sql_utils.py +0 -0
  97. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/iris_stream_reader.py +0 -0
  98. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/llm_cache_config.py +0 -0
  99. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/llm_cache_iris.py +0 -0
  100. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/llm_cache_manager.py +0 -0
  101. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/utils.py +0 -0
  102. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/vector_sql_utils.py +0 -0
  103. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/config/__init__.py +0 -0
  104. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/config/backend_modes.py +0 -0
  105. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/config/embedding_config.py +0 -0
  106. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/config/pipeline_config_service.py +0 -0
  107. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/__init__.py +0 -0
  108. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/base.py +0 -0
  109. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/connection.py +0 -0
  110. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/exceptions.py +0 -0
  111. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/models.py +0 -0
  112. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/response_standardizer.py +0 -0
  113. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/validators.py +0 -0
  114. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/vector_store.py +0 -0
  115. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/vector_store_exceptions.py +0 -0
  116. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/dspy_modules/__init__.py +0 -0
  117. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/dspy_modules/entity_extraction_module.py +0 -0
  118. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/embeddings/__init__.py +0 -0
  119. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/embeddings/entity_extractor.py +0 -0
  120. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/embeddings/iris_embedding.py +0 -0
  121. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/embeddings/manager.py +0 -0
  122. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/mcp/__init__.py +0 -0
  123. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/mcp/__main__.py +0 -0
  124. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/mcp/bridge.py +0 -0
  125. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/mcp/cli.py +0 -0
  126. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/mcp/config.py +0 -0
  127. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/mcp/technique_handlers.py +0 -0
  128. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/mcp/tool_schemas.py +0 -0
  129. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/mcp/validation.py +0 -0
  130. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/memory/__init__.py +0 -0
  131. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/memory/knowledge_extractor.py +0 -0
  132. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/memory/models.py +0 -0
  133. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/memory/rag_integration.py +0 -0
  134. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/memory/temporal_manager.py +0 -0
  135. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/ontology/__init__.py +0 -0
  136. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/ontology/loader.py +0 -0
  137. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/ontology/models.py +0 -0
  138. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/ontology/plugins/__init__.py +0 -0
  139. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/ontology/plugins/general_ontology.py +0 -0
  140. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/ontology/reasoner.py +0 -0
  141. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/optimization/cache_manager.py +0 -0
  142. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/optimization/connection_pool.py +0 -0
  143. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/optimization/database_optimizer.py +0 -0
  144. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/optimization/hnsw_tuner.py +0 -0
  145. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/optimization/parallel_processor.py +0 -0
  146. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/optimization/performance_monitor.py +0 -0
  147. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/__init__.py +0 -0
  148. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/_hybrid_utils.py +0 -0
  149. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/basic.py +0 -0
  150. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/basic_rerank.py +0 -0
  151. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/colbert_pylate/__init__.py +0 -0
  152. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/colbert_pylate/pylate_pipeline.py +0 -0
  153. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/crag.py +0 -0
  154. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/factory.py +0 -0
  155. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/graphrag_merged.py +0 -0
  156. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/hybrid_graphrag.py +0 -0
  157. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/hybrid_graphrag_discovery.py +0 -0
  158. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/hybrid_graphrag_retrieval.py +0 -0
  159. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/multi_query_rrf.py +0 -0
  160. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/plugins/__init__.py +0 -0
  161. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/plugins/interface.py +0 -0
  162. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/services/__init__.py +0 -0
  163. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/storage/__init__.py +0 -0
  164. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/storage/clob_handler.py +0 -0
  165. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/storage/enterprise_storage.py +0 -0
  166. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/storage/hybrid_schema_manager.py +0 -0
  167. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/storage/iris_embedding_ops.py +0 -0
  168. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/storage/vector_store_iris.py +0 -0
  169. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/testing/__init__.py +0 -0
  170. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/testing/backend_manager.py +0 -0
  171. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/testing/connection_pool.py +0 -0
  172. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/testing/exceptions.py +0 -0
  173. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/testing/iris_devtools_bridge.py +0 -0
  174. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/testing/validators.py +0 -0
  175. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/utils/__init__.py +0 -0
  176. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/utils/module_loader.py +0 -0
  177. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/utils/project_root.py +0 -0
  178. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/utils/token_counter.py +0 -0
  179. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/validation/__init__.py +0 -0
  180. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/validation/factory.py +0 -0
  181. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/validation/orchestrator.py +0 -0
  182. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/validation/requirements.py +0 -0
  183. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/validation/validator.py +0 -0
  184. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag.egg-info/dependency_links.txt +0 -0
  185. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag.egg-info/entry_points.txt +0 -0
  186. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/setup.cfg +0 -0
  187. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_comprehensive_pipeline_validation_e2e.py +0 -0
  188. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_comprehensive_pipeline_validation_e2e_fixed.py +0 -0
  189. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_enterprise_storage.py +0 -0
  190. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_entity_extraction_service.py +0 -0
  191. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_hybrid_graphrag_functional.py +0 -0
  192. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_index_ensure.py +0 -0
  193. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_mcp_integration.py +0 -0
  194. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_mcp_server_integration.py +0 -0
  195. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_ontology_loader.py +0 -0
  196. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_ontology_support.py +0 -0
  197. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_performance_monitor_comprehensive.py +0 -0
  198. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_performance_monitor_working.py +0 -0
  199. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_pylate_colbert_pipeline.py +0 -0
  200. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_schema_manager_bugs.py +0 -0
  201. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_temporal_manager.py +0 -0
  202. {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_vector_safe_helpers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iris-vector-rag
3
- Version: 0.5.2
3
+ Version: 0.5.8
4
4
  Summary: Production-ready, extensible RAG framework with native IRIS vector search - unified API for basic, CRAG, GraphRAG, and ColBERT pipelines with RAGAS and DSPy integration
5
5
  Author-email: InterSystems <support@intersystems.com>
6
6
  Maintainer-email: Thomas Dyar <thomas.dyar@intersystems.com>
@@ -51,9 +51,18 @@ Requires-Dist: torch>=2.0.0
51
51
  Provides-Extra: embedding
52
52
  Requires-Dist: torch>=2.0.0; extra == "embedding"
53
53
  Requires-Dist: sentence-transformers>=2.2.0; extra == "embedding"
54
- Requires-Dist: iris-vector-graph>=1.1.1; extra == "embedding"
54
+ Requires-Dist: iris-vector-graph>=1.1.7; extra == "embedding"
55
55
  Provides-Extra: hybrid-graphrag
56
- Requires-Dist: iris-vector-graph>=1.1.1; extra == "hybrid-graphrag"
56
+ Requires-Dist: iris-vector-graph>=1.1.7; extra == "hybrid-graphrag"
57
+ Provides-Extra: monitoring
58
+ Requires-Dist: opentelemetry-api>=1.20.0; extra == "monitoring"
59
+ Requires-Dist: opentelemetry-sdk>=1.20.0; extra == "monitoring"
60
+ Requires-Dist: opentelemetry-exporter-otlp>=1.20.0; extra == "monitoring"
61
+ Provides-Extra: enterprise
62
+ Requires-Dist: opentelemetry-api>=1.20.0; extra == "enterprise"
63
+ Requires-Dist: opentelemetry-sdk>=1.20.0; extra == "enterprise"
64
+ Requires-Dist: opentelemetry-exporter-otlp>=1.20.0; extra == "enterprise"
65
+ Requires-Dist: tqdm>=4.64.0; extra == "enterprise"
57
66
  Provides-Extra: dev
58
67
  Requires-Dist: uv>=0.1.0; extra == "dev"
59
68
  Requires-Dist: pytest>=7.0.0; extra == "dev"
@@ -100,6 +109,10 @@ Requires-Dist: python-multipart>=0.0.6; extra == "all"
100
109
  Requires-Dist: redis>=5.0.0; extra == "all"
101
110
  Requires-Dist: bcrypt>=4.0.0; extra == "all"
102
111
  Requires-Dist: python-jose[cryptography]>=3.3.0; extra == "all"
112
+ Requires-Dist: opentelemetry-api>=1.20.0; extra == "all"
113
+ Requires-Dist: opentelemetry-sdk>=1.20.0; extra == "all"
114
+ Requires-Dist: opentelemetry-exporter-otlp>=1.20.0; extra == "all"
115
+ Requires-Dist: tqdm>=4.64.0; extra == "all"
103
116
  Dynamic: license-file
104
117
 
105
118
  # IRIS Vector RAG Templates
@@ -108,6 +121,8 @@ Dynamic: license-file
108
121
 
109
122
  Build intelligent applications that combine large language models with your enterprise data using battle-tested RAG patterns and native vector search capabilities.
110
123
 
124
+ **Author: Thomas Dyar** (thomas.dyar@intersystems.com)
125
+
111
126
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
112
127
  [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
113
128
  [![InterSystems IRIS](https://img.shields.io/badge/IRIS-2024.1+-purple.svg)](https://www.intersystems.com/products/intersystems-iris/)
@@ -182,7 +197,7 @@ EOF
182
197
  ### 4. Run Your First Query
183
198
 
184
199
  ```python
185
- from iris_rag import create_pipeline
200
+ from iris_vector_rag import create_pipeline
186
201
 
187
202
  # Create pipeline with automatic validation
188
203
  pipeline = create_pipeline('basic', validate_requirements=True)
@@ -220,22 +235,24 @@ print(f"Retrieved: {len(result['retrieved_documents'])} documents")
220
235
  **Switch RAG strategies with one line** - all pipelines share the same interface:
221
236
 
222
237
  ```python
223
- from iris_rag import create_pipeline
238
+ from iris_vector_rag import create_pipeline
224
239
 
225
- # Try different strategies instantly
226
- for pipeline_type in ['basic', 'basic_rerank', 'crag', 'multi_query_rrf', 'graphrag']:
227
- pipeline = create_pipeline(pipeline_type)
240
+ # Start with basic
241
+ pipeline = create_pipeline('basic')
242
+ result = pipeline.query("What are the latest cancer treatment approaches?", top_k=5)
228
243
 
229
- result = pipeline.query(
230
- query="What are the latest cancer treatment approaches?",
231
- top_k=5,
232
- generate_answer=True
233
- )
244
+ # Upgrade to basic_rerank for better accuracy
245
+ pipeline = create_pipeline('basic_rerank')
246
+ result = pipeline.query("What are the latest cancer treatment approaches?", top_k=5)
247
+
248
+ # Try graphrag for entity reasoning
249
+ pipeline = create_pipeline('graphrag')
250
+ result = pipeline.query("What are the latest cancer treatment approaches?", top_k=5)
234
251
 
235
- print(f"\n{pipeline_type.upper()}:")
236
- print(f" Answer: {result['answer'][:150]}...")
237
- print(f" Retrieved: {len(result['retrieved_documents'])} docs")
238
- print(f" Confidence: {result['metadata'].get('confidence', 'N/A')}")
252
+ # All pipelines return the same response format
253
+ print(f"Answer: {result['answer']}")
254
+ print(f"Sources: {result['sources']}")
255
+ print(f"Retrieved: {len(result['retrieved_documents'])} documents")
239
256
  ```
240
257
 
241
258
  ### Standardized Response Format
@@ -260,94 +277,18 @@ for pipeline_type in ['basic', 'basic_rerank', 'crag', 'multi_query_rrf', 'graph
260
277
  }
261
278
  ```
262
279
 
263
- ## Pipeline Deep Dives
264
-
265
- ### CRAG: Self-Correcting Retrieval
266
-
267
- Automatically evaluates retrieval quality and falls back to web search when needed:
268
-
269
- ```python
270
- from iris_rag import create_pipeline
271
-
272
- pipeline = create_pipeline('crag')
273
-
274
- # CRAG evaluates retrieved documents and uses web search if quality is low
275
- result = pipeline.query(
276
- query="What happened in the 2024 Olympics opening ceremony?",
277
- top_k=5,
278
- generate_answer=True
279
- )
280
-
281
- # Check which retrieval method was used
282
- print(f"Method: {result['metadata']['retrieval_method']}") # 'vector' or 'web_search'
283
- print(f"Confidence: {result['metadata']['confidence']}") # 0.0 - 1.0
284
- ```
285
-
286
- ### HybridGraphRAG: Multi-Modal Search
287
-
288
- Combines vector search, text search, and knowledge graph traversal:
289
-
290
- ```python
291
- pipeline = create_pipeline('graphrag')
292
-
293
- result = pipeline.query(
294
- query_text="cancer treatment targets",
295
- method="rrf", # Reciprocal Rank Fusion across all methods
296
- vector_k=30, # Top 30 from vector search
297
- text_k=30, # Top 30 from text search
298
- graph_k=10, # Top 10 from knowledge graph
299
- generate_answer=True
300
- )
301
-
302
- # Rich metadata includes entities and relationships
303
- print(f"Entities: {result['metadata']['entities']}")
304
- print(f"Relationships: {result['metadata']['relationships']}")
305
- print(f"Graph depth: {result['metadata']['graph_depth']}")
306
- ```
307
-
308
- **⚠️ IMPORTANT:** To enable entity extraction during document ingestion, you MUST set `entity_extraction_enabled: True` in your pipeline configuration:
309
-
310
- ```python
311
- from iris_rag.config import ConfigurationManager
312
-
313
- config = ConfigurationManager({
314
- "pipelines": {
315
- "graphrag": {
316
- "entity_extraction_enabled": True, # REQUIRED for entity extraction!
317
- }
318
- },
319
- "llm": {
320
- "provider": "openai",
321
- "api_type": "openai",
322
- "model": "gpt-4o-mini",
323
- "api_key": "your-api-key",
324
- "temperature": 0.0
325
- }
326
- })
327
-
328
- pipeline = create_pipeline('graphrag', config_manager=config)
329
- ```
330
-
331
- **Without this setting**, entity extraction will not run during `load_documents()` and no knowledge graph will be built, making graph-based retrieval unavailable.
332
-
333
- ### MultiQueryRRF: Multi-Perspective Retrieval
280
+ ## Pipeline Selection
334
281
 
335
- Expands queries into multiple perspectives and fuses results:
282
+ **Each pipeline uses the same API** - just change the pipeline type:
336
283
 
337
- ```python
338
- pipeline = create_pipeline('multi_query_rrf')
284
+ - **`basic`** - Fast vector similarity search, great for getting started
285
+ - **`basic_rerank`** - Vector + cross-encoder reranking for higher accuracy
286
+ - **`crag`** - Self-correcting with web search fallback for current events
287
+ - **`graphrag`** - Multi-modal: vector + text + knowledge graph fusion
288
+ - **`multi_query_rrf`** - Query expansion with reciprocal rank fusion
289
+ - **`pylate_colbert`** - ColBERT late interaction for fine-grained matching
339
290
 
340
- # Automatically generates query variations and combines results
341
- result = pipeline.query(
342
- query="How does machine learning work?",
343
- top_k=10,
344
- generate_answer=True
345
- )
346
-
347
- # See the generated query variations
348
- print(f"Query variations: {result['metadata']['generated_queries']}")
349
- print(f"Fusion method: {result['metadata']['fusion_method']}") # 'rrf'
350
- ```
291
+ 📖 **[Complete Pipeline Guide →](docs/PIPELINE_GUIDE.md)** - Decision tree, performance comparison, configuration examples
351
292
 
352
293
  ## Enterprise Features
353
294
 
@@ -403,150 +344,50 @@ make test-ragas-sample
403
344
  # - Answer Relevance
404
345
  ```
405
346
 
406
- ### IRIS EMBEDDING: 346x Faster Auto-Vectorization
347
+ ### IRIS EMBEDDING: Auto-Vectorization
407
348
 
408
- **Automatic embedding generation with model caching** - eliminates the 720x slowdown from repeated model loading:
349
+ **Automatic embedding generation with model caching** - eliminates repeated model loading overhead for faster document vectorization.
409
350
 
410
- ```python
411
- from iris_rag import create_pipeline
412
-
413
- # Enable IRIS EMBEDDING support (Feature 051)
414
- pipeline = create_pipeline(
415
- 'basic',
416
- embedding_config='medical_embeddings_v1' # IRIS EMBEDDING config name
417
- )
418
-
419
- # Documents auto-vectorize on INSERT with cached models
420
- pipeline.load_documents(documents=docs)
421
-
422
- # Queries auto-vectorize using same cached model
423
- result = pipeline.query("What is diabetes?", top_k=5)
424
- ```
425
-
426
- **Performance Achievements:**
427
- - ⚡ **346x speedup** - 1,746 documents vectorized in 3.5 seconds (vs 20 minutes baseline)
428
- - 🎯 **95% cache hit rate** - Models stay in memory across requests
429
- - 🚀 **50ms average latency** - Cache hits complete in <100ms
430
- - 💾 **Automatic fallback** - GPU OOM? Automatically falls back to CPU
431
-
432
- **Configuration Example:**
351
+ **Key Features**:
352
+ - ⚡ Intelligent model caching - models stay in memory across operations
353
+ - 🎯 Multi-field vectorization - combine title, abstract, and content fields
354
+ - 💾 Automatic device selection - GPU, Apple Silicon (MPS), or CPU fallback
433
355
 
434
356
  ```python
435
- from iris_rag.embeddings.iris_embedding import configure_embedding
436
-
437
- # Create embedding configuration
438
- config = configure_embedding(
439
- name="medical_embeddings_v1",
440
- model_name="sentence-transformers/all-MiniLM-L6-v2",
441
- device_preference="auto", # auto, cuda, mps, cpu
442
- batch_size=32,
443
- enable_entity_extraction=True,
444
- entity_types=["Disease", "Medication", "Symptom"]
445
- )
446
-
447
- # Use with any pipeline
448
- pipeline = create_pipeline('basic', embedding_config='medical_embeddings_v1')
449
- ```
450
-
451
- **Multi-Field Vectorization:**
452
-
453
- Combine multiple document fields into a single embedding:
454
-
455
- ```python
456
- from iris_rag.core.models import Document
457
-
458
- # Document with multiple content fields
459
- doc = Document(
460
- page_content="", # Will be auto-filled from metadata
461
- metadata={
462
- "title": "Type 2 Diabetes Treatment",
463
- "abstract": "A comprehensive review of treatment approaches...",
464
- "conclusions": "Insulin therapy combined with lifestyle changes..."
465
- }
466
- )
357
+ from iris_vector_rag import create_pipeline
467
358
 
468
- # Configure multi-field embedding
359
+ # Enable IRIS EMBEDDING support
469
360
  pipeline = create_pipeline(
470
361
  'basic',
471
- embedding_config='paper_embeddings',
472
- multi_field_source=['title', 'abstract', 'conclusions'] # Concatenate fields
362
+ embedding_config='medical_embeddings_v1'
473
363
  )
474
364
 
475
- pipeline.load_documents(documents=[doc])
476
- # → Embedding generated from: "Type 2 Diabetes Treatment. A comprehensive review..."
365
+ # Documents auto-vectorize on INSERT
366
+ pipeline.load_documents(documents=docs)
477
367
  ```
478
368
 
479
- **When to Use IRIS EMBEDDING:**
480
- - ✅ Large document collections (>1000 documents)
481
- - ✅ Frequent re-indexing or incremental updates
482
- - ✅ Real-time vectorization requirements
483
- - ✅ Memory-constrained environments (model stays in memory)
484
- - ✅ Multi-field vectorization needs
485
-
486
- **Comparison:**
487
-
488
- | Method | 1,746 Docs | Model Loads | Cache Hit Rate |
489
- |--------|-----------|-------------|----------------|
490
- | **Manual** (baseline) | 20 minutes | 1,746 (every row) | 0% |
491
- | **IRIS EMBEDDING** | 3.5 seconds | 1 (cached) | 95% |
492
- | **Speedup** | **346x faster** | **1,746x fewer** | **95% efficient** |
369
+ 📖 **[Complete IRIS EMBEDDING Guide →](docs/IRIS_EMBEDDING_GUIDE.md)** - Configuration, performance tuning, multi-field vectorization, troubleshooting
493
370
 
494
371
  ## Model Context Protocol (MCP) Support
495
372
 
496
- **Expose RAG pipelines as MCP tools** for use with Claude Desktop and other MCP clients:
373
+ **Expose RAG pipelines as MCP tools** for Claude Desktop and other MCP clients - enables conversational RAG workflows where Claude queries your documents during conversations.
497
374
 
498
375
  ```bash
499
376
  # Start MCP server
500
- python -m iris_rag.mcp
501
-
502
- # Available MCP tools:
503
- # - rag_basic
504
- # - rag_basic_rerank
505
- # - rag_crag
506
- # - rag_multi_query_rrf
507
- # - rag_graphrag
508
- # - rag_hybrid_graphrag
509
- # - health_check
510
- # - list_tools
377
+ python -m iris_vector_rag.mcp
511
378
  ```
512
379
 
513
- Configure in Claude Desktop:
380
+ All pipelines available as MCP tools: `rag_basic`, `rag_basic_rerank`, `rag_crag`, `rag_graphrag`, `rag_multi_query_rrf`, `rag_pylate_colbert`.
514
381
 
515
- ```json
516
- {
517
- "mcpServers": {
518
- "iris-rag": {
519
- "command": "python",
520
- "args": ["-m", "iris_rag.mcp"],
521
- "env": {
522
- "OPENAI_API_KEY": "your-key"
523
- }
524
- }
525
- }
526
- }
527
- ```
382
+ 📖 **[Complete MCP Integration Guide →](docs/MCP_INTEGRATION.md)** - Claude Desktop setup, configuration, testing, production deployment
528
383
 
529
384
  ## Architecture Overview
530
385
 
531
- ```
532
- iris_rag/
533
- ├── core/ # Abstract base classes (RAGPipeline, VectorStore)
534
- ├── pipelines/ # Pipeline implementations
535
- │ ├── basic.py # BasicRAG
536
- │ ├── basic_rerank.py # Reranking pipeline
537
- │ ├── crag.py # Corrective RAG
538
- │ ├── multi_query_rrf.py # Multi-query with RRF
539
- │ ├── graphrag.py # Graph-based RAG
540
- │ └── hybrid_graphrag.py # Hybrid multi-modal
541
- ├── storage/ # Vector store implementations
542
- │ ├── vector_store_iris.py # IRIS vector store
543
- │ └── schema_manager.py # Schema management
544
- ├── mcp/ # Model Context Protocol server
545
- ├── api/ # Production REST API
546
- ├── services/ # Business logic (entity extraction, etc.)
547
- ├── config/ # Configuration management
548
- └── validation/ # Pipeline contract validation
549
- ```
386
+ **Framework-first design** with abstract base classes (`RAGPipeline`, `VectorStore`) and concrete implementations for 6 production-ready pipelines.
387
+
388
+ **Key Components**: Core abstractions, pipeline implementations, IRIS vector store, MCP server, REST API, validation framework.
389
+
390
+ 📖 **[Comprehensive Architecture Guide →](docs/architecture/COMPREHENSIVE_ARCHITECTURE_OVERVIEW.md)** - System design, component interactions, extension points
550
391
 
551
392
  ## Documentation
552
393
 
@@ -556,35 +397,16 @@ iris_rag/
556
397
  - **[API Reference](docs/API_REFERENCE.md)** - Detailed API documentation
557
398
  - **[Pipeline Guide](docs/PIPELINE_GUIDE.md)** - When to use each pipeline
558
399
  - **[MCP Integration](docs/MCP_INTEGRATION.md)** - Model Context Protocol setup
559
- - **[Production Deployment](docs/PRODUCTION_DEPLOYMENT.md)** - Deployment checklist
560
- - **[Development Guide](docs/DEVELOPMENT.md)** - Contributing and testing
561
-
562
- ## Performance Benchmarks
563
-
564
- **Native IRIS vector search delivers:**
565
-
566
- - 🚀 **50-100x faster** than traditional solutions for hybrid search
567
- - ⚡ **Sub-second queries** on millions of documents
568
- - 📊 **Linear scaling** with IRIS clustering
569
- - 💾 **10x less memory** than external vector databases
400
+ - **[Production Readiness](docs/PRODUCTION_READINESS_ASSESSMENT.md)** - Deployment checklist
570
401
 
571
402
  ## Testing & Quality
572
403
 
573
404
  ```bash
574
- # Run comprehensive test suite
575
- make test
576
-
577
- # Test specific categories
578
- pytest tests/unit/ # Unit tests (fast)
579
- pytest tests/integration/ # Integration tests (with IRIS)
580
- pytest tests/contract/ # API contract validation
581
-
582
- # Run with coverage
583
- pytest --cov=iris_rag --cov-report=html
405
+ make test # Run comprehensive test suite
406
+ pytest tests/unit/ # Unit tests
407
+ pytest tests/integration/ # Integration tests
584
408
  ```
585
409
 
586
- **For detailed testing documentation**, see [DEVELOPMENT.md](docs/DEVELOPMENT.md)
587
-
588
410
  ## Research & References
589
411
 
590
412
  This implementation is based on peer-reviewed research:
@@ -596,26 +418,14 @@ This implementation is based on peer-reviewed research:
596
418
 
597
419
  ## Contributing
598
420
 
599
- We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for:
600
-
601
- - Development setup
602
- - Testing guidelines
603
- - Code style and standards
604
- - Pull request process
421
+ We welcome contributions! See [CONTRIBUTING.md](docs/CONTRIBUTING.md) for development setup, testing guidelines, and pull request process.
605
422
 
606
423
  ## Community & Support
607
424
 
608
- - 💬 **Discussions**: [GitHub Discussions](https://github.com/intersystems-community/iris-rag-templates/discussions)
609
- - 🐛 **Issues**: [GitHub Issues](https://github.com/intersystems-community/iris-rag-templates/issues)
425
+ - 🐛 **Issues**: [GitHub Issues](https://github.com/intersystems-community/iris-vector-rag/issues)
610
426
  - 📖 **Documentation**: [Full Documentation](docs/)
611
427
  - 🏢 **Enterprise Support**: [InterSystems Support](https://www.intersystems.com/support/)
612
428
 
613
429
  ## License
614
430
 
615
431
  MIT License - see [LICENSE](LICENSE) for details.
616
-
617
- ---
618
-
619
- **Built with ❤️ by the InterSystems Community**
620
-
621
- *Powering intelligent applications with enterprise-grade RAG*