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.
- {iris_vector_rag-0.5.2/iris_vector_rag.egg-info → iris_vector_rag-0.5.8}/PKG-INFO +70 -260
- iris_vector_rag-0.5.8/README.md +314 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/__init__.py +1 -1
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/connection_pool.py +11 -12
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/iris_connection_manager.py +26 -7
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/iris_dbapi_connector.py +8 -14
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/config/default_config.yaml +112 -1
- iris_vector_rag-0.5.8/iris_vector_rag/config/entities.py +367 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/config/manager.py +124 -0
- iris_vector_rag-0.5.8/iris_vector_rag/config/validators.py +505 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/dspy_modules/batch_entity_extraction.py +26 -3
- iris_vector_rag-0.5.8/iris_vector_rag/exceptions.py +188 -0
- iris_vector_rag-0.5.8/iris_vector_rag/monitoring/__init__.py +58 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/graphrag.py +2 -2
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/iris_global_graphrag.py +9 -6
- iris_vector_rag-0.5.8/iris_vector_rag/security/__init__.py +34 -0
- iris_vector_rag-0.5.8/iris_vector_rag/services/batch_entity_processor.py +499 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/services/entity_extraction.py +57 -4
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/services/storage.py +171 -14
- iris_vector_rag-0.5.8/iris_vector_rag/storage/constants.py +70 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/storage/schema_manager.py +11 -6
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8/iris_vector_rag.egg-info}/PKG-INFO +70 -260
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag.egg-info/SOURCES.txt +7 -20
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag.egg-info/requires.txt +17 -2
- iris_vector_rag-0.5.8/iris_vector_rag.egg-info/top_level.txt +1 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/pyproject.toml +20 -5
- iris_vector_rag-0.5.2/README.md +0 -517
- iris_vector_rag-0.5.2/adapters/rag_templates_bridge.py +0 -578
- iris_vector_rag-0.5.2/evaluation_framework/__init__.py +0 -66
- iris_vector_rag-0.5.2/evaluation_framework/biomedical_question_generator.py +0 -826
- iris_vector_rag-0.5.2/evaluation_framework/comparative_analysis_system.py +0 -1173
- iris_vector_rag-0.5.2/evaluation_framework/empirical_reporting.py +0 -1298
- iris_vector_rag-0.5.2/evaluation_framework/evaluation_orchestrator.py +0 -1123
- iris_vector_rag-0.5.2/evaluation_framework/execute_production_evaluation.py +0 -382
- iris_vector_rag-0.5.2/evaluation_framework/outputs/production_evaluation/execute_biomedical_rag_10k_evaluation_20250913_200432.py +0 -72
- iris_vector_rag-0.5.2/evaluation_framework/pmc_data_pipeline.py +0 -1332
- iris_vector_rag-0.5.2/evaluation_framework/production_evaluation_config.py +0 -353
- iris_vector_rag-0.5.2/evaluation_framework/ragas_metrics_framework.py +0 -1013
- iris_vector_rag-0.5.2/evaluation_framework/real_production_evaluation.py +0 -544
- iris_vector_rag-0.5.2/evaluation_framework/run_10k_evaluation.py +0 -175
- iris_vector_rag-0.5.2/evaluation_framework/simple_test.py +0 -364
- iris_vector_rag-0.5.2/evaluation_framework/statistical_evaluation_methodology.py +0 -1016
- iris_vector_rag-0.5.2/evaluation_framework/test_framework.py +0 -281
- iris_vector_rag-0.5.2/evaluation_framework/test_iris_connectivity.py +0 -244
- iris_vector_rag-0.5.2/evaluation_framework/test_small_scale_evaluation.py +0 -432
- iris_vector_rag-0.5.2/evaluation_framework/true_e2e_evaluation.py +0 -639
- iris_vector_rag-0.5.2/evaluation_framework/visualization_engine.py +0 -585
- iris_vector_rag-0.5.2/iris_vector_rag.egg-info/top_level.txt +0 -3
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/LICENSE +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/cleanup_job.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/cli.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/main.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/mcp_routes.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/middleware/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/middleware/auth.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/middleware/logging.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/middleware/rate_limit.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/auth.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/errors.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/health.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/pipeline.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/quota.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/request.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/response.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/upload.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/models/websocket.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/routes/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/routes/document.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/routes/health.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/routes/pipeline.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/routes/query.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/services/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/services/auth_service.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/services/document_service.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/services/pipeline_manager.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/websocket/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/websocket/connection.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/websocket/handlers.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/api/websocket/routes.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/batch_utils.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/config.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/connection_manager.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/database.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/database_schema_manager.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/db_init_with_indexes.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/db_vector_utils.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/environment_manager.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/huggingface_utils.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/iris_client.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/iris_connection_pool.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/iris_connector.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/iris_index_utils.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/iris_sql_utils.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/iris_stream_reader.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/llm_cache_config.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/llm_cache_iris.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/llm_cache_manager.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/utils.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/common/vector_sql_utils.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/config/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/config/backend_modes.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/config/embedding_config.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/config/pipeline_config_service.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/base.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/connection.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/exceptions.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/models.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/response_standardizer.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/validators.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/vector_store.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/core/vector_store_exceptions.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/dspy_modules/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/dspy_modules/entity_extraction_module.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/embeddings/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/embeddings/entity_extractor.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/embeddings/iris_embedding.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/embeddings/manager.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/mcp/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/mcp/__main__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/mcp/bridge.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/mcp/cli.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/mcp/config.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/mcp/technique_handlers.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/mcp/tool_schemas.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/mcp/validation.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/memory/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/memory/knowledge_extractor.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/memory/models.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/memory/rag_integration.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/memory/temporal_manager.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/ontology/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/ontology/loader.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/ontology/models.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/ontology/plugins/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/ontology/plugins/general_ontology.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/ontology/reasoner.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/optimization/cache_manager.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/optimization/connection_pool.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/optimization/database_optimizer.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/optimization/hnsw_tuner.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/optimization/parallel_processor.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/optimization/performance_monitor.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/_hybrid_utils.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/basic.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/basic_rerank.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/colbert_pylate/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/colbert_pylate/pylate_pipeline.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/crag.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/factory.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/graphrag_merged.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/hybrid_graphrag.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/hybrid_graphrag_discovery.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/hybrid_graphrag_retrieval.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/pipelines/multi_query_rrf.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/plugins/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/plugins/interface.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/services/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/storage/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/storage/clob_handler.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/storage/enterprise_storage.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/storage/hybrid_schema_manager.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/storage/iris_embedding_ops.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/storage/vector_store_iris.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/testing/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/testing/backend_manager.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/testing/connection_pool.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/testing/exceptions.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/testing/iris_devtools_bridge.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/testing/validators.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/utils/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/utils/module_loader.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/utils/project_root.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/utils/token_counter.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/validation/__init__.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/validation/factory.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/validation/orchestrator.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/validation/requirements.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag/validation/validator.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag.egg-info/dependency_links.txt +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/iris_vector_rag.egg-info/entry_points.txt +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/setup.cfg +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_comprehensive_pipeline_validation_e2e.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_comprehensive_pipeline_validation_e2e_fixed.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_enterprise_storage.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_entity_extraction_service.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_hybrid_graphrag_functional.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_index_ensure.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_mcp_integration.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_mcp_server_integration.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_ontology_loader.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_ontology_support.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_performance_monitor_comprehensive.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_performance_monitor_working.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_pylate_colbert_pipeline.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_schema_manager_bugs.py +0 -0
- {iris_vector_rag-0.5.2 → iris_vector_rag-0.5.8}/tests/test_temporal_manager.py +0 -0
- {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.
|
|
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.
|
|
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.
|
|
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)
|
|
112
127
|
[](https://www.python.org/downloads/)
|
|
113
128
|
[](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
|
|
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
|
|
238
|
+
from iris_vector_rag import create_pipeline
|
|
224
239
|
|
|
225
|
-
#
|
|
226
|
-
|
|
227
|
-
|
|
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
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
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
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
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
|
|
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
|
-
|
|
282
|
+
**Each pipeline uses the same API** - just change the pipeline type:
|
|
336
283
|
|
|
337
|
-
|
|
338
|
-
|
|
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
|
-
|
|
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:
|
|
347
|
+
### IRIS EMBEDDING: Auto-Vectorization
|
|
407
348
|
|
|
408
|
-
**Automatic embedding generation with model caching** - eliminates
|
|
349
|
+
**Automatic embedding generation with model caching** - eliminates repeated model loading overhead for faster document vectorization.
|
|
409
350
|
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
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
|
|
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
|
-
#
|
|
359
|
+
# Enable IRIS EMBEDDING support
|
|
469
360
|
pipeline = create_pipeline(
|
|
470
361
|
'basic',
|
|
471
|
-
embedding_config='
|
|
472
|
-
multi_field_source=['title', 'abstract', 'conclusions'] # Concatenate fields
|
|
362
|
+
embedding_config='medical_embeddings_v1'
|
|
473
363
|
)
|
|
474
364
|
|
|
475
|
-
|
|
476
|
-
|
|
365
|
+
# Documents auto-vectorize on INSERT
|
|
366
|
+
pipeline.load_documents(documents=docs)
|
|
477
367
|
```
|
|
478
368
|
|
|
479
|
-
**
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
-
|
|
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*
|