iris-vector-rag 0.2.4__tar.gz → 0.2.5__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.2.4 → iris_vector_rag-0.2.5}/PKG-INFO +3 -3
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/__init__.py +1 -1
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/config/manager.py +1 -1
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/pipelines/hybrid_graphrag.py +13 -13
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/pipelines/hybrid_graphrag_discovery.py +25 -50
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/pipelines/hybrid_graphrag_retrieval.py +2 -2
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/storage/hybrid_schema_manager.py +17 -17
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/storage/schema_manager.py +8 -8
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/validation/requirements.py +7 -7
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_vector_rag.egg-info/PKG-INFO +3 -3
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_vector_rag.egg-info/requires.txt +2 -2
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/pyproject.toml +3 -3
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/tests/test_hybrid_graphrag_functional.py +6 -6
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/LICENSE +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/README.md +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/adapters/rag_templates_bridge.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/batch_utils.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/config.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/connection_manager.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/connection_pool.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/database.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/database_schema_manager.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/db_init_with_indexes.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/db_vector_utils.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/environment_manager.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/huggingface_utils.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/iris_client.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/iris_connection_manager.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/iris_connection_pool.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/iris_connector.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/iris_dbapi_connector.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/iris_index_utils.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/iris_sql_utils.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/iris_stream_reader.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/llm_cache_config.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/llm_cache_iris.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/llm_cache_manager.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/utils.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/common/vector_sql_utils.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/biomedical_question_generator.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/comparative_analysis_system.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/empirical_reporting.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/evaluation_orchestrator.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/execute_production_evaluation.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/outputs/production_evaluation/execute_biomedical_rag_10k_evaluation_20250913_200432.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/pmc_data_pipeline.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/production_evaluation_config.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/ragas_metrics_framework.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/real_production_evaluation.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/run_10k_evaluation.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/simple_test.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/statistical_evaluation_methodology.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/test_framework.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/test_iris_connectivity.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/test_small_scale_evaluation.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/true_e2e_evaluation.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/evaluation_framework/visualization_engine.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/cleanup_job.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/cli.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/main.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/mcp_routes.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/middleware/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/middleware/auth.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/middleware/logging.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/middleware/rate_limit.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/models/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/models/auth.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/models/errors.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/models/health.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/models/pipeline.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/models/quota.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/models/request.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/models/response.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/models/upload.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/models/websocket.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/routes/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/routes/document.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/routes/health.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/routes/pipeline.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/routes/query.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/services/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/services/auth_service.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/services/document_service.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/services/pipeline_manager.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/websocket/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/websocket/connection.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/websocket/handlers.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/api/websocket/routes.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/config/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/config/backend_modes.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/config/default_config.yaml +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/config/embedding_config.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/config/pipeline_config_service.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/core/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/core/base.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/core/connection.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/core/exceptions.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/core/models.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/core/response_standardizer.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/core/validators.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/core/vector_store.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/core/vector_store_exceptions.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/dspy_modules/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/dspy_modules/batch_entity_extraction.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/dspy_modules/entity_extraction_module.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/embeddings/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/embeddings/entity_extractor.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/embeddings/iris_embedding.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/embeddings/manager.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/mcp/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/mcp/__main__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/mcp/bridge.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/mcp/cli.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/mcp/config.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/mcp/technique_handlers.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/mcp/tool_schemas.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/mcp/validation.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/memory/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/memory/knowledge_extractor.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/memory/models.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/memory/rag_integration.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/memory/temporal_manager.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/ontology/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/ontology/loader.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/ontology/models.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/ontology/plugins/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/ontology/plugins/general_ontology.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/ontology/reasoner.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/optimization/cache_manager.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/optimization/connection_pool.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/optimization/database_optimizer.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/optimization/hnsw_tuner.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/optimization/parallel_processor.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/optimization/performance_monitor.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/pipelines/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/pipelines/_hybrid_utils.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/pipelines/basic.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/pipelines/basic_rerank.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/pipelines/colbert_pylate/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/pipelines/colbert_pylate/pylate_pipeline.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/pipelines/crag.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/pipelines/factory.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/pipelines/graphrag.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/pipelines/graphrag_merged.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/pipelines/iris_global_graphrag.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/pipelines/multi_query_rrf.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/plugins/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/plugins/interface.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/services/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/services/entity_extraction.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/services/storage.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/storage/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/storage/clob_handler.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/storage/enterprise_storage.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/storage/iris_embedding_ops.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/storage/vector_store_iris.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/testing/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/testing/backend_manager.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/testing/connection_pool.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/testing/exceptions.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/testing/iris_devtools_bridge.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/testing/validators.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/utils/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/utils/module_loader.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/utils/project_root.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/utils/token_counter.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/validation/__init__.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/validation/factory.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/validation/orchestrator.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/validation/validator.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_vector_rag.egg-info/SOURCES.txt +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_vector_rag.egg-info/dependency_links.txt +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_vector_rag.egg-info/entry_points.txt +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_vector_rag.egg-info/top_level.txt +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/setup.cfg +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/tests/test_comprehensive_pipeline_validation_e2e.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/tests/test_comprehensive_pipeline_validation_e2e_fixed.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/tests/test_enterprise_storage.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/tests/test_entity_extraction_service.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/tests/test_index_ensure.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/tests/test_mcp_integration.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/tests/test_mcp_server_integration.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/tests/test_ontology_loader.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/tests/test_ontology_support.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/tests/test_performance_monitor_comprehensive.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/tests/test_performance_monitor_working.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/tests/test_pylate_colbert_pipeline.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/tests/test_schema_manager_bugs.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/tests/test_temporal_manager.py +0 -0
- {iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/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.2.
|
|
3
|
+
Version: 0.2.5
|
|
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,9 @@ 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>=
|
|
54
|
+
Requires-Dist: iris-vector-graph>=1.1.1; extra == "embedding"
|
|
55
55
|
Provides-Extra: hybrid-graphrag
|
|
56
|
-
Requires-Dist: iris-vector-graph>=
|
|
56
|
+
Requires-Dist: iris-vector-graph>=1.1.1; extra == "hybrid-graphrag"
|
|
57
57
|
Provides-Extra: dev
|
|
58
58
|
Requires-Dist: uv>=0.1.0; extra == "dev"
|
|
59
59
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
@@ -18,7 +18,7 @@ from .validation.requirements import get_pipeline_requirements
|
|
|
18
18
|
from .validation.validator import PreConditionValidator
|
|
19
19
|
|
|
20
20
|
# Package version
|
|
21
|
-
__version__ = "0.2.
|
|
21
|
+
__version__ = "0.2.5"
|
|
22
22
|
__author__ = "InterSystems IRIS RAG Templates Project"
|
|
23
23
|
__description__ = "A comprehensive, production-ready framework for implementing Retrieval Augmented Generation (RAG) pipelines using InterSystems IRIS as the vector database backend."
|
|
24
24
|
|
|
@@ -674,7 +674,7 @@ class ConfigurationManager:
|
|
|
674
674
|
"enabled": True,
|
|
675
675
|
"schema_auto_setup": True,
|
|
676
676
|
"fallback_to_graphrag": True,
|
|
677
|
-
"
|
|
677
|
+
"iris_vector_graph": {
|
|
678
678
|
"enabled": True,
|
|
679
679
|
"auto_create_tables": True,
|
|
680
680
|
"community_edition_compatible": True,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Hybrid GraphRAG Pipeline with IRIS Graph Core Integration
|
|
3
3
|
|
|
4
4
|
Enhances the existing GraphRAG pipeline with advanced hybrid search capabilities
|
|
5
|
-
from the
|
|
5
|
+
from the iris_vector_graph module, including RRF fusion and iFind text search.
|
|
6
6
|
|
|
7
7
|
SECURITY-HARDENED VERSION: No hard-coded credentials, config-driven discovery,
|
|
8
8
|
robust error handling, and modular architecture.
|
|
@@ -30,7 +30,7 @@ class HybridGraphRAGPipeline(GraphRAGPipeline):
|
|
|
30
30
|
"""
|
|
31
31
|
Enhanced GraphRAG pipeline with hybrid search capabilities.
|
|
32
32
|
|
|
33
|
-
Integrates
|
|
33
|
+
Integrates iris_vector_graph for:
|
|
34
34
|
- RRF (Reciprocal Rank Fusion) combining vector + text + graph signals
|
|
35
35
|
- HNSW-optimized vector search (50ms performance)
|
|
36
36
|
- Native IRIS iFind text search with stemming/stopwords
|
|
@@ -53,7 +53,7 @@ class HybridGraphRAGPipeline(GraphRAGPipeline):
|
|
|
53
53
|
):
|
|
54
54
|
super().__init__(connection_manager, config_manager, llm_func, vector_store)
|
|
55
55
|
|
|
56
|
-
# Store schema manager for
|
|
56
|
+
# Store schema manager for iris_vector_graph table management
|
|
57
57
|
self.schema_manager = schema_manager
|
|
58
58
|
|
|
59
59
|
# IRIS EMBEDDING configuration (Feature 051)
|
|
@@ -80,12 +80,12 @@ class HybridGraphRAGPipeline(GraphRAGPipeline):
|
|
|
80
80
|
self._initialize_graph_core()
|
|
81
81
|
|
|
82
82
|
def _initialize_graph_core(self):
|
|
83
|
-
"""Initialize
|
|
83
|
+
"""Initialize iris_vector_graph components with secure configuration."""
|
|
84
84
|
success, modules = self.discovery.import_graph_core_modules()
|
|
85
85
|
|
|
86
86
|
if not success:
|
|
87
87
|
logger.warning(
|
|
88
|
-
"
|
|
88
|
+
"iris_vector_graph not available - using standard GraphRAG only"
|
|
89
89
|
)
|
|
90
90
|
return
|
|
91
91
|
|
|
@@ -99,7 +99,7 @@ class HybridGraphRAGPipeline(GraphRAGPipeline):
|
|
|
99
99
|
if not is_valid:
|
|
100
100
|
logger.warning(
|
|
101
101
|
f"IRIS connection parameters missing: {missing_params}. "
|
|
102
|
-
"Disabling
|
|
102
|
+
"Disabling iris_vector_graph integration."
|
|
103
103
|
)
|
|
104
104
|
return
|
|
105
105
|
|
|
@@ -108,7 +108,7 @@ class HybridGraphRAGPipeline(GraphRAGPipeline):
|
|
|
108
108
|
|
|
109
109
|
logger.info(
|
|
110
110
|
f"Connecting to IRIS at {connection_config['host']}:{connection_config['port']}"
|
|
111
|
-
f"/{connection_config['namespace']} for
|
|
111
|
+
f"/{connection_config['namespace']} for iris_vector_graph"
|
|
112
112
|
)
|
|
113
113
|
|
|
114
114
|
iris_connection = iris.connect(
|
|
@@ -142,7 +142,7 @@ class HybridGraphRAGPipeline(GraphRAGPipeline):
|
|
|
142
142
|
)
|
|
143
143
|
|
|
144
144
|
except Exception as e:
|
|
145
|
-
logger.error(f"Failed to initialize
|
|
145
|
+
logger.error(f"Failed to initialize iris_vector_graph components: {e}")
|
|
146
146
|
logger.warning("Falling back to standard GraphRAG implementation")
|
|
147
147
|
self.iris_engine = None
|
|
148
148
|
self.retrieval_methods = None
|
|
@@ -245,7 +245,7 @@ class HybridGraphRAGPipeline(GraphRAGPipeline):
|
|
|
245
245
|
"pipeline_type": "hybrid_graphrag",
|
|
246
246
|
"retrieval_method": retrieval_method,
|
|
247
247
|
"generated_answer": generate_answer and answer is not None,
|
|
248
|
-
"
|
|
248
|
+
"iris_vector_graph_enabled": self.iris_engine is not None,
|
|
249
249
|
},
|
|
250
250
|
}
|
|
251
251
|
|
|
@@ -266,7 +266,7 @@ class HybridGraphRAGPipeline(GraphRAGPipeline):
|
|
|
266
266
|
documents, method = self.retrieval_methods.retrieve_via_hybrid_fusion(
|
|
267
267
|
query_text, top_k, self._get_document_content_for_entity, **kwargs
|
|
268
268
|
)
|
|
269
|
-
# If
|
|
269
|
+
# If iris_vector_graph returns 0 results, fall back to vector search
|
|
270
270
|
if not documents:
|
|
271
271
|
logger.warning(
|
|
272
272
|
"Hybrid fusion returned 0 results. Falling back to vector search."
|
|
@@ -345,7 +345,7 @@ class HybridGraphRAGPipeline(GraphRAGPipeline):
|
|
|
345
345
|
self, query_text: str, top_k: int, method: str, **kwargs
|
|
346
346
|
) -> tuple[List[Document], str]:
|
|
347
347
|
"""
|
|
348
|
-
Enhanced hybrid search fallback when
|
|
348
|
+
Enhanced hybrid search fallback when iris_vector_graph is not available.
|
|
349
349
|
|
|
350
350
|
Implements intelligent search strategies combining knowledge graph traversal
|
|
351
351
|
with vector search to provide hybrid capabilities.
|
|
@@ -610,7 +610,7 @@ class HybridGraphRAGPipeline(GraphRAGPipeline):
|
|
|
610
610
|
self.connection_manager
|
|
611
611
|
)
|
|
612
612
|
else:
|
|
613
|
-
return {"
|
|
613
|
+
return {"iris_vector_graph_enabled": False}
|
|
614
614
|
|
|
615
615
|
def benchmark_search_methods(
|
|
616
616
|
self, query_text: str, iterations: int = 5
|
|
@@ -621,7 +621,7 @@ class HybridGraphRAGPipeline(GraphRAGPipeline):
|
|
|
621
621
|
query_text, self.query, iterations
|
|
622
622
|
)
|
|
623
623
|
else:
|
|
624
|
-
logger.warning("
|
|
624
|
+
logger.warning("iris_vector_graph not available for benchmarking")
|
|
625
625
|
return {}
|
|
626
626
|
|
|
627
627
|
def is_hybrid_enabled(self) -> bool:
|
{iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/pipelines/hybrid_graphrag_discovery.py
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Graph Core Discovery Module
|
|
3
3
|
|
|
4
|
-
Provides secure, config-driven discovery of
|
|
4
|
+
Provides secure, config-driven discovery of iris_vector_graph modules without
|
|
5
5
|
hard-coded paths or unsafe sys.path modifications.
|
|
6
6
|
"""
|
|
7
7
|
|
|
@@ -15,7 +15,7 @@ logger = logging.getLogger(__name__)
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class GraphCoreDiscovery:
|
|
18
|
-
"""Handles discovery and import of
|
|
18
|
+
"""Handles discovery and import of iris_vector_graph modules safely."""
|
|
19
19
|
|
|
20
20
|
def __init__(self, config_manager=None):
|
|
21
21
|
self.config_manager = config_manager
|
|
@@ -24,7 +24,7 @@ class GraphCoreDiscovery:
|
|
|
24
24
|
|
|
25
25
|
def discover_graph_core_path(self) -> Optional[Path]:
|
|
26
26
|
"""
|
|
27
|
-
Discover
|
|
27
|
+
Discover iris_vector_graph path using config-first approach.
|
|
28
28
|
|
|
29
29
|
Priority order:
|
|
30
30
|
1. Configuration manager setting
|
|
@@ -74,17 +74,13 @@ class GraphCoreDiscovery:
|
|
|
74
74
|
return None
|
|
75
75
|
|
|
76
76
|
def _validate_graph_core_path(self, path: Path) -> bool:
|
|
77
|
-
"""Validate that a path contains
|
|
77
|
+
"""Validate that a path contains iris_vector_graph package."""
|
|
78
78
|
if not path.exists() or not path.is_dir():
|
|
79
79
|
return False
|
|
80
80
|
|
|
81
|
-
# Check for
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
return (new_package.exists() and new_package.is_dir()) or (
|
|
86
|
-
legacy_package.exists() and legacy_package.is_dir()
|
|
87
|
-
)
|
|
81
|
+
# Check for iris_vector_graph package directory (top-level module)
|
|
82
|
+
package_dir = path / "iris_vector_graph"
|
|
83
|
+
return package_dir.exists() and package_dir.is_dir()
|
|
88
84
|
|
|
89
85
|
def _search_sibling_directories(self) -> Optional[Path]:
|
|
90
86
|
"""Search sibling directories for graph core (secure patterns only)."""
|
|
@@ -124,10 +120,10 @@ class GraphCoreDiscovery:
|
|
|
124
120
|
|
|
125
121
|
# First, try to import from iris-vector-graph package (preferred)
|
|
126
122
|
try:
|
|
127
|
-
from
|
|
128
|
-
from
|
|
129
|
-
from
|
|
130
|
-
from
|
|
123
|
+
from iris_vector_graph import IRISGraphEngine
|
|
124
|
+
from iris_vector_graph import HybridSearchFusion
|
|
125
|
+
from iris_vector_graph import TextSearchEngine
|
|
126
|
+
from iris_vector_graph import VectorOptimizer
|
|
131
127
|
|
|
132
128
|
modules = {
|
|
133
129
|
"IRISGraphEngine": IRISGraphEngine,
|
|
@@ -137,7 +133,7 @@ class GraphCoreDiscovery:
|
|
|
137
133
|
}
|
|
138
134
|
|
|
139
135
|
logger.info(
|
|
140
|
-
"Successfully imported
|
|
136
|
+
"Successfully imported iris_vector_graph from iris-vector-graph package"
|
|
141
137
|
)
|
|
142
138
|
self._import_cache = {"success": True, "modules": modules}
|
|
143
139
|
return True, modules
|
|
@@ -161,53 +157,32 @@ class GraphCoreDiscovery:
|
|
|
161
157
|
if str(graph_core_path) not in sys.path:
|
|
162
158
|
sys.path.insert(0, str(graph_core_path))
|
|
163
159
|
|
|
164
|
-
# Try
|
|
160
|
+
# Try iris_vector_graph package from local path
|
|
165
161
|
try:
|
|
166
|
-
from
|
|
167
|
-
from
|
|
168
|
-
from
|
|
169
|
-
from
|
|
162
|
+
from iris_vector_graph import IRISGraphEngine
|
|
163
|
+
from iris_vector_graph import HybridSearchFusion
|
|
164
|
+
from iris_vector_graph import TextSearchEngine
|
|
165
|
+
from iris_vector_graph import VectorOptimizer
|
|
170
166
|
|
|
171
167
|
modules = {
|
|
172
168
|
"IRISGraphEngine": IRISGraphEngine,
|
|
173
169
|
"HybridSearchFusion": HybridSearchFusion,
|
|
174
170
|
"TextSearchEngine": TextSearchEngine,
|
|
175
171
|
"VectorOptimizer": VectorOptimizer,
|
|
176
|
-
"package_name": "
|
|
172
|
+
"package_name": "iris_vector_graph",
|
|
177
173
|
}
|
|
178
174
|
logger.info(
|
|
179
|
-
"Successfully imported
|
|
175
|
+
"Successfully imported iris_vector_graph from local path"
|
|
180
176
|
)
|
|
181
177
|
self._import_cache = {"success": True, "modules": modules}
|
|
182
178
|
return True, modules
|
|
183
179
|
|
|
184
|
-
except ImportError as
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
from iris_graph_core.vector_utils import VectorOptimizer
|
|
191
|
-
|
|
192
|
-
modules = {
|
|
193
|
-
"IRISGraphEngine": IRISGraphEngine,
|
|
194
|
-
"HybridSearchFusion": HybridSearchFusion,
|
|
195
|
-
"TextSearchEngine": TextSearchEngine,
|
|
196
|
-
"VectorOptimizer": VectorOptimizer,
|
|
197
|
-
"package_name": "iris_graph_core",
|
|
198
|
-
}
|
|
199
|
-
logger.info(
|
|
200
|
-
"Successfully imported iris_graph_core (legacy) from local path"
|
|
201
|
-
)
|
|
202
|
-
self._import_cache = {"success": True, "modules": modules}
|
|
203
|
-
return True, modules
|
|
204
|
-
|
|
205
|
-
except ImportError as e_legacy:
|
|
206
|
-
logger.warning(
|
|
207
|
-
f"Failed to import from local path: new={e_new}, legacy={e_legacy}"
|
|
208
|
-
)
|
|
209
|
-
self._import_cache = {"success": False, "modules": {}}
|
|
210
|
-
return False, {}
|
|
180
|
+
except ImportError as e:
|
|
181
|
+
logger.warning(
|
|
182
|
+
f"Failed to import from local path: {e}"
|
|
183
|
+
)
|
|
184
|
+
self._import_cache = {"success": False, "modules": {}}
|
|
185
|
+
return False, {}
|
|
211
186
|
|
|
212
187
|
finally:
|
|
213
188
|
sys.path[:] = original_path
|
{iris_vector_rag-0.2.4 → iris_vector_rag-0.2.5}/iris_rag/pipelines/hybrid_graphrag_retrieval.py
RENAMED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Hybrid GraphRAG Retrieval Methods
|
|
3
3
|
|
|
4
4
|
Contains the core retrieval methods for HybridGraphRAG pipeline using
|
|
5
|
-
|
|
5
|
+
iris_vector_graph integration.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
import logging
|
|
@@ -240,7 +240,7 @@ class HybridRetrievalMethods:
|
|
|
240
240
|
) -> Dict[str, Any]:
|
|
241
241
|
"""Benchmark different search methods for performance comparison"""
|
|
242
242
|
if not self.iris_engine:
|
|
243
|
-
logger.warning("
|
|
243
|
+
logger.warning("iris_vector_graph not available for benchmarking")
|
|
244
244
|
return {}
|
|
245
245
|
|
|
246
246
|
methods = ["hybrid", "rrf", "text", "vector", "kg"]
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"""
|
|
2
|
-
HybridGraphRAG Schema Manager -
|
|
2
|
+
HybridGraphRAG Schema Manager - iris_vector_graph Table Management
|
|
3
3
|
|
|
4
4
|
This module manages the database schema for HybridGraphRAG pipelines,
|
|
5
|
-
including the creation and maintenance of
|
|
5
|
+
including the creation and maintenance of iris_vector_graph tables required
|
|
6
6
|
for advanced hybrid search capabilities.
|
|
7
7
|
"""
|
|
8
8
|
|
|
@@ -16,7 +16,7 @@ logger = logging.getLogger(__name__)
|
|
|
16
16
|
|
|
17
17
|
class HybridGraphRAGSchemaManager(SchemaManager):
|
|
18
18
|
"""
|
|
19
|
-
Schema manager for HybridGraphRAG pipelines with
|
|
19
|
+
Schema manager for HybridGraphRAG pipelines with iris_vector_graph support.
|
|
20
20
|
|
|
21
21
|
Extends the base SchemaManager to include creation and management of
|
|
22
22
|
specialized tables required for hybrid search, graph traversal, and
|
|
@@ -26,7 +26,7 @@ class HybridGraphRAGSchemaManager(SchemaManager):
|
|
|
26
26
|
def __init__(self, connection_manager, config_manager):
|
|
27
27
|
"""Initialize HybridGraphRAG schema manager."""
|
|
28
28
|
super().__init__(connection_manager, config_manager)
|
|
29
|
-
self.
|
|
29
|
+
self.iris_vector_graph_tables = {
|
|
30
30
|
"KG_NODEEMBEDDINGS_OPTIMIZED": self._create_kg_nodeembeddings_optimized_table,
|
|
31
31
|
"RDF_EDGES": self._create_rdf_edges_table,
|
|
32
32
|
"RDF_LABELS": self._create_rdf_labels_table,
|
|
@@ -41,7 +41,7 @@ class HybridGraphRAGSchemaManager(SchemaManager):
|
|
|
41
41
|
True if all tables were created/validated successfully
|
|
42
42
|
"""
|
|
43
43
|
try:
|
|
44
|
-
logger.info("🔧 Ensuring HybridGraphRAG schema (
|
|
44
|
+
logger.info("🔧 Ensuring HybridGraphRAG schema (iris_vector_graph tables)...")
|
|
45
45
|
|
|
46
46
|
# First ensure base RAG tables (entities, etc)
|
|
47
47
|
base_tables = ["SourceDocuments", "Entities", "EntityRelationships"]
|
|
@@ -50,11 +50,11 @@ class HybridGraphRAGSchemaManager(SchemaManager):
|
|
|
50
50
|
logger.error(f"Failed to ensure base table: {table}")
|
|
51
51
|
return False
|
|
52
52
|
|
|
53
|
-
# Create
|
|
53
|
+
# Create iris_vector_graph tables
|
|
54
54
|
success_count = 0
|
|
55
|
-
for table_name, create_func in self.
|
|
55
|
+
for table_name, create_func in self.iris_vector_graph_tables.items():
|
|
56
56
|
try:
|
|
57
|
-
if self.
|
|
57
|
+
if self._ensure_iris_vector_graph_table(table_name, create_func):
|
|
58
58
|
success_count += 1
|
|
59
59
|
logger.info(f"✅ Table {table_name} ensured successfully")
|
|
60
60
|
else:
|
|
@@ -62,10 +62,10 @@ class HybridGraphRAGSchemaManager(SchemaManager):
|
|
|
62
62
|
except Exception as e:
|
|
63
63
|
logger.error(f"❌ Error ensuring table {table_name}: {e}")
|
|
64
64
|
|
|
65
|
-
total_tables = len(self.
|
|
65
|
+
total_tables = len(self.iris_vector_graph_tables)
|
|
66
66
|
if success_count == total_tables:
|
|
67
67
|
logger.info(
|
|
68
|
-
f"🎉 All {total_tables}
|
|
68
|
+
f"🎉 All {total_tables} iris_vector_graph tables ensured successfully"
|
|
69
69
|
)
|
|
70
70
|
return True
|
|
71
71
|
else:
|
|
@@ -78,9 +78,9 @@ class HybridGraphRAGSchemaManager(SchemaManager):
|
|
|
78
78
|
logger.error(f"Failed to ensure HybridGraphRAG schema: {e}")
|
|
79
79
|
return False
|
|
80
80
|
|
|
81
|
-
def
|
|
81
|
+
def _ensure_iris_vector_graph_table(self, table_name: str, create_func) -> bool:
|
|
82
82
|
"""
|
|
83
|
-
Ensure a specific
|
|
83
|
+
Ensure a specific iris_vector_graph table exists.
|
|
84
84
|
|
|
85
85
|
Args:
|
|
86
86
|
table_name: Name of the table to ensure
|
|
@@ -110,7 +110,7 @@ class HybridGraphRAGSchemaManager(SchemaManager):
|
|
|
110
110
|
return True
|
|
111
111
|
|
|
112
112
|
# Create the table
|
|
113
|
-
logger.info(f"Creating
|
|
113
|
+
logger.info(f"Creating iris_vector_graph table: RAG.{table_name}")
|
|
114
114
|
create_success = create_func(cursor)
|
|
115
115
|
|
|
116
116
|
if create_success:
|
|
@@ -313,7 +313,7 @@ class HybridGraphRAGSchemaManager(SchemaManager):
|
|
|
313
313
|
conn = self.connection_manager.get_connection()
|
|
314
314
|
cursor = conn.cursor()
|
|
315
315
|
|
|
316
|
-
for table_name in self.
|
|
316
|
+
for table_name in self.iris_vector_graph_tables.keys():
|
|
317
317
|
try:
|
|
318
318
|
# Check table exists
|
|
319
319
|
cursor.execute(
|
|
@@ -340,7 +340,7 @@ class HybridGraphRAGSchemaManager(SchemaManager):
|
|
|
340
340
|
|
|
341
341
|
except Exception as e:
|
|
342
342
|
logger.error(f"Error during schema validation: {e}")
|
|
343
|
-
for table_name in self.
|
|
343
|
+
for table_name in self.iris_vector_graph_tables.keys():
|
|
344
344
|
validation_results[table_name] = False
|
|
345
345
|
|
|
346
346
|
return validation_results
|
|
@@ -349,9 +349,9 @@ class HybridGraphRAGSchemaManager(SchemaManager):
|
|
|
349
349
|
"""Get comprehensive schema information for HybridGraphRAG."""
|
|
350
350
|
info = {}
|
|
351
351
|
|
|
352
|
-
# Add
|
|
352
|
+
# Add iris_vector_graph specific information
|
|
353
353
|
validation = self.validate_hybrid_schema()
|
|
354
|
-
info["
|
|
354
|
+
info["iris_vector_graph_tables"] = validation
|
|
355
355
|
info["hybrid_ready"] = all(validation.values())
|
|
356
356
|
|
|
357
357
|
return info
|
|
@@ -171,7 +171,7 @@ class SchemaManager:
|
|
|
171
171
|
"supports_vector_search": False,
|
|
172
172
|
"supports_graph_traversal": True,
|
|
173
173
|
"table_type": "graph_metadata",
|
|
174
|
-
"created_by": "
|
|
174
|
+
"created_by": "iris_vector_graph",
|
|
175
175
|
},
|
|
176
176
|
"rdf_props": {
|
|
177
177
|
"embedding_column": None,
|
|
@@ -181,7 +181,7 @@ class SchemaManager:
|
|
|
181
181
|
"supports_vector_search": False,
|
|
182
182
|
"supports_graph_traversal": True,
|
|
183
183
|
"table_type": "graph_properties",
|
|
184
|
-
"created_by": "
|
|
184
|
+
"created_by": "iris_vector_graph",
|
|
185
185
|
},
|
|
186
186
|
"rdf_edges": {
|
|
187
187
|
"embedding_column": None,
|
|
@@ -191,7 +191,7 @@ class SchemaManager:
|
|
|
191
191
|
"supports_vector_search": False,
|
|
192
192
|
"supports_graph_traversal": True,
|
|
193
193
|
"table_type": "graph_relationships",
|
|
194
|
-
"created_by": "
|
|
194
|
+
"created_by": "iris_vector_graph",
|
|
195
195
|
},
|
|
196
196
|
"kg_NodeEmbeddings_optimized": {
|
|
197
197
|
"embedding_column": "emb",
|
|
@@ -201,7 +201,7 @@ class SchemaManager:
|
|
|
201
201
|
"supports_vector_search": True,
|
|
202
202
|
"supports_graph_traversal": False,
|
|
203
203
|
"table_type": "optimized_vectors",
|
|
204
|
-
"created_by": "
|
|
204
|
+
"created_by": "iris_vector_graph",
|
|
205
205
|
"requires_hnsw_index": True,
|
|
206
206
|
},
|
|
207
207
|
}
|
|
@@ -457,7 +457,7 @@ class SchemaManager:
|
|
|
457
457
|
config["configuration"].update(
|
|
458
458
|
{
|
|
459
459
|
"table_type": "graph_metadata",
|
|
460
|
-
"created_by": "
|
|
460
|
+
"created_by": "iris_vector_graph",
|
|
461
461
|
"expected_columns": [
|
|
462
462
|
"s", # subject
|
|
463
463
|
"label", # entity type/label
|
|
@@ -472,7 +472,7 @@ class SchemaManager:
|
|
|
472
472
|
config["configuration"].update(
|
|
473
473
|
{
|
|
474
474
|
"table_type": "graph_properties",
|
|
475
|
-
"created_by": "
|
|
475
|
+
"created_by": "iris_vector_graph",
|
|
476
476
|
"expected_columns": [
|
|
477
477
|
"s", # subject
|
|
478
478
|
"key", # property key
|
|
@@ -488,7 +488,7 @@ class SchemaManager:
|
|
|
488
488
|
config["configuration"].update(
|
|
489
489
|
{
|
|
490
490
|
"table_type": "graph_relationships",
|
|
491
|
-
"created_by": "
|
|
491
|
+
"created_by": "iris_vector_graph",
|
|
492
492
|
"expected_columns": [
|
|
493
493
|
"edge_id", # primary key
|
|
494
494
|
"s", # subject
|
|
@@ -507,7 +507,7 @@ class SchemaManager:
|
|
|
507
507
|
config["configuration"].update(
|
|
508
508
|
{
|
|
509
509
|
"table_type": "optimized_vectors",
|
|
510
|
-
"created_by": "
|
|
510
|
+
"created_by": "iris_vector_graph",
|
|
511
511
|
"expected_columns": [
|
|
512
512
|
"id", # entity identifier
|
|
513
513
|
"emb", # vector embedding (optimized VECTOR type)
|
|
@@ -329,7 +329,7 @@ class HybridGraphRAGRequirements(PipelineRequirements):
|
|
|
329
329
|
"""
|
|
330
330
|
Requirements for HybridGraphRAG pipeline.
|
|
331
331
|
|
|
332
|
-
Inherits GraphRAG requirements but with enhanced capabilities when
|
|
332
|
+
Inherits GraphRAG requirements but with enhanced capabilities when iris_vector_graph
|
|
333
333
|
is available. Provides graceful fallback to GraphRAG behavior when enhanced
|
|
334
334
|
features are unavailable.
|
|
335
335
|
"""
|
|
@@ -379,33 +379,33 @@ class HybridGraphRAGRequirements(PipelineRequirements):
|
|
|
379
379
|
|
|
380
380
|
@property
|
|
381
381
|
def optional_tables(self) -> List[TableRequirement]:
|
|
382
|
-
"""Optional
|
|
382
|
+
"""Optional iris_vector_graph enhancement tables."""
|
|
383
383
|
return [
|
|
384
384
|
TableRequirement(
|
|
385
385
|
name="kg_NodeEmbeddings_optimized",
|
|
386
386
|
schema="SQLUSER",
|
|
387
|
-
description="Optimized HNSW vector indexes (
|
|
387
|
+
description="Optimized HNSW vector indexes (iris_vector_graph)",
|
|
388
388
|
required=False,
|
|
389
389
|
supports_vector_search=True,
|
|
390
390
|
),
|
|
391
391
|
TableRequirement(
|
|
392
392
|
name="rdf_labels",
|
|
393
393
|
schema="SQLUSER",
|
|
394
|
-
description="RDF label mappings (
|
|
394
|
+
description="RDF label mappings (iris_vector_graph)",
|
|
395
395
|
required=False,
|
|
396
396
|
supports_vector_search=False,
|
|
397
397
|
),
|
|
398
398
|
TableRequirement(
|
|
399
399
|
name="rdf_props",
|
|
400
400
|
schema="SQLUSER",
|
|
401
|
-
description="RDF property mappings (
|
|
401
|
+
description="RDF property mappings (iris_vector_graph)",
|
|
402
402
|
required=False,
|
|
403
403
|
supports_vector_search=False,
|
|
404
404
|
),
|
|
405
405
|
TableRequirement(
|
|
406
406
|
name="rdf_edges",
|
|
407
407
|
schema="SQLUSER",
|
|
408
|
-
description="RDF edge mappings (
|
|
408
|
+
description="RDF edge mappings (iris_vector_graph)",
|
|
409
409
|
required=False,
|
|
410
410
|
supports_vector_search=False,
|
|
411
411
|
),
|
|
@@ -426,7 +426,7 @@ class HybridGraphRAGRequirements(PipelineRequirements):
|
|
|
426
426
|
name="hnsw_optimized_embeddings",
|
|
427
427
|
table="SQLUSER.kg_NodeEmbeddings_optimized",
|
|
428
428
|
column="embedding",
|
|
429
|
-
description="HNSW-optimized embeddings (
|
|
429
|
+
description="HNSW-optimized embeddings (iris_vector_graph enhancement)",
|
|
430
430
|
required=False,
|
|
431
431
|
),
|
|
432
432
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iris-vector-rag
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.5
|
|
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,9 @@ 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>=
|
|
54
|
+
Requires-Dist: iris-vector-graph>=1.1.1; extra == "embedding"
|
|
55
55
|
Provides-Extra: hybrid-graphrag
|
|
56
|
-
Requires-Dist: iris-vector-graph>=
|
|
56
|
+
Requires-Dist: iris-vector-graph>=1.1.1; extra == "hybrid-graphrag"
|
|
57
57
|
Provides-Extra: dev
|
|
58
58
|
Requires-Dist: uv>=0.1.0; extra == "dev"
|
|
59
59
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "iris-vector-rag"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.5"
|
|
8
8
|
description = "Production-ready, extensible RAG framework with native IRIS vector search - unified API for basic, CRAG, GraphRAG, and ColBERT pipelines with RAGAS and DSPy integration"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = {text = "MIT"}
|
|
@@ -73,10 +73,10 @@ dependencies = [
|
|
|
73
73
|
embedding = [
|
|
74
74
|
"torch>=2.0.0",
|
|
75
75
|
"sentence-transformers>=2.2.0",
|
|
76
|
-
"iris-vector-graph>=
|
|
76
|
+
"iris-vector-graph>=1.1.1"
|
|
77
77
|
]
|
|
78
78
|
hybrid-graphrag = [
|
|
79
|
-
"iris-vector-graph>=
|
|
79
|
+
"iris-vector-graph>=1.1.1"
|
|
80
80
|
]
|
|
81
81
|
dev = [
|
|
82
82
|
"uv>=0.1.0",
|