iris-vector-rag 0.2.1__py3-none-any.whl

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 (50) hide show
  1. adapters/rag_templates_bridge.py +578 -0
  2. common/__init__.py +1 -0
  3. common/batch_utils.py +294 -0
  4. common/config.py +58 -0
  5. common/connection_manager.py +242 -0
  6. common/connection_pool.py +445 -0
  7. common/database.py +141 -0
  8. common/database_schema_manager.py +289 -0
  9. common/db_init_with_indexes.py +181 -0
  10. common/db_vector_utils.py +181 -0
  11. common/environment_manager.py +220 -0
  12. common/huggingface_utils.py +206 -0
  13. common/iris_client.py +92 -0
  14. common/iris_connection_manager.py +411 -0
  15. common/iris_connection_pool.py +360 -0
  16. common/iris_connector.py +71 -0
  17. common/iris_dbapi_connector.py +323 -0
  18. common/iris_index_utils.py +195 -0
  19. common/iris_sql_utils.py +704 -0
  20. common/iris_stream_reader.py +166 -0
  21. common/llm_cache_config.py +308 -0
  22. common/llm_cache_iris.py +671 -0
  23. common/llm_cache_manager.py +911 -0
  24. common/utils.py +559 -0
  25. common/vector_sql_utils.py +584 -0
  26. evaluation_framework/__init__.py +66 -0
  27. evaluation_framework/biomedical_question_generator.py +826 -0
  28. evaluation_framework/comparative_analysis_system.py +1173 -0
  29. evaluation_framework/empirical_reporting.py +1298 -0
  30. evaluation_framework/evaluation_orchestrator.py +1123 -0
  31. evaluation_framework/execute_production_evaluation.py +382 -0
  32. evaluation_framework/pmc_data_pipeline.py +1332 -0
  33. evaluation_framework/production_evaluation_config.py +353 -0
  34. evaluation_framework/ragas_metrics_framework.py +1013 -0
  35. evaluation_framework/real_production_evaluation.py +544 -0
  36. evaluation_framework/run_10k_evaluation.py +175 -0
  37. evaluation_framework/simple_test.py +364 -0
  38. evaluation_framework/statistical_evaluation_methodology.py +1016 -0
  39. evaluation_framework/test_framework.py +281 -0
  40. evaluation_framework/test_iris_connectivity.py +244 -0
  41. evaluation_framework/test_small_scale_evaluation.py +432 -0
  42. evaluation_framework/true_e2e_evaluation.py +639 -0
  43. evaluation_framework/visualization_engine.py +585 -0
  44. iris_rag/__init__.py +284 -0
  45. iris_rag/config/default_config.yaml +295 -0
  46. iris_vector_rag-0.2.1.dist-info/METADATA +499 -0
  47. iris_vector_rag-0.2.1.dist-info/RECORD +50 -0
  48. iris_vector_rag-0.2.1.dist-info/WHEEL +5 -0
  49. iris_vector_rag-0.2.1.dist-info/entry_points.txt +2 -0
  50. iris_vector_rag-0.2.1.dist-info/top_level.txt +4 -0
@@ -0,0 +1,499 @@
1
+ Metadata-Version: 2.4
2
+ Name: iris-vector-rag
3
+ Version: 0.2.1
4
+ Summary: Dead-simple library for building RAG applications with InterSystems IRIS
5
+ Author-email: InterSystems <support@intersystems.com>
6
+ Maintainer-email: Thomas Dyar <thomas.dyar@intersystems.com>
7
+ License: MIT
8
+ Project-URL: Homepage, https://github.com/intersystems/rag-templates
9
+ Project-URL: Documentation, https://github.com/intersystems/rag-templates/docs
10
+ Project-URL: Repository, https://github.com/intersystems/rag-templates
11
+ Project-URL: Bug Tracker, https://github.com/intersystems/rag-templates/issues
12
+ Project-URL: Changelog, https://github.com/intersystems/rag-templates/blob/main/CHANGELOG.md
13
+ Keywords: rag,retrieval-augmented-generation,intersystems,iris,vector-database,llm,ai,machine-learning,nlp,embeddings,semantic-search,mcp,model-context-protocol
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
23
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
+ Classifier: Topic :: Database
25
+ Classifier: Topic :: Text Processing :: Linguistic
26
+ Requires-Python: >=3.10
27
+ Description-Content-Type: text/markdown
28
+ Requires-Dist: openai>=1.0.0
29
+ Requires-Dist: anthropic>=0.25.0
30
+ Requires-Dist: sentence-transformers>=2.2.0
31
+ Requires-Dist: numpy>=1.21.0
32
+ Requires-Dist: pandas>=1.3.0
33
+ Requires-Dist: pyyaml>=6.0
34
+ Requires-Dist: requests>=2.28.0
35
+ Requires-Dist: tqdm>=4.64.0
36
+ Requires-Dist: typing-extensions>=4.0.0
37
+ Requires-Dist: psutil>=7.0.0
38
+ Requires-Dist: intersystems-irispython>=5.1.2
39
+ Requires-Dist: langchain-openai>=0.3.24
40
+ Requires-Dist: langchain>=0.3.25
41
+ Requires-Dist: python-dotenv>=1.1.0
42
+ Requires-Dist: matplotlib>=3.10.3
43
+ Requires-Dist: ragas>=0.2.15
44
+ Requires-Dist: seaborn>=0.13.2
45
+ Requires-Dist: plotly>=6.1.2
46
+ Requires-Dist: jaydebeapi>=1.2.3
47
+ Requires-Dist: docker>=6.1.3
48
+ Requires-Dist: tiktoken>=0.5.0
49
+ Provides-Extra: dev
50
+ Requires-Dist: uv>=0.1.0; extra == "dev"
51
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
52
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
53
+ Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
54
+ Requires-Dist: pytest-dotenv>=0.5.2; extra == "dev"
55
+ Requires-Dist: black>=23.0.0; extra == "dev"
56
+ Requires-Dist: isort>=5.12.0; extra == "dev"
57
+ Requires-Dist: flake8>=6.0.0; extra == "dev"
58
+ Requires-Dist: mypy>=1.0.0; extra == "dev"
59
+ Requires-Dist: pre-commit>=3.0.0; extra == "dev"
60
+ Requires-Dist: build>=0.10.0; extra == "dev"
61
+ Requires-Dist: twine>=4.0.0; extra == "dev"
62
+ Provides-Extra: mcp
63
+ Requires-Dist: mcp>=0.1.0; extra == "mcp"
64
+ Requires-Dist: fastapi>=0.100.0; extra == "mcp"
65
+ Requires-Dist: uvicorn>=0.23.0; extra == "mcp"
66
+ Requires-Dist: websockets>=11.0.0; extra == "mcp"
67
+ Provides-Extra: api
68
+ Requires-Dist: fastapi>=0.104.0; extra == "api"
69
+ Requires-Dist: uvicorn[standard]>=0.24.0; extra == "api"
70
+ Requires-Dist: python-multipart>=0.0.6; extra == "api"
71
+ Requires-Dist: websockets>=12.0; extra == "api"
72
+ Requires-Dist: redis>=5.0.0; extra == "api"
73
+ Requires-Dist: bcrypt>=4.0.0; extra == "api"
74
+ Requires-Dist: python-jose[cryptography]>=3.3.0; extra == "api"
75
+ Provides-Extra: all
76
+ Requires-Dist: uv>=0.1.0; extra == "all"
77
+ Requires-Dist: pytest>=7.0.0; extra == "all"
78
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "all"
79
+ Requires-Dist: pytest-cov>=4.0.0; extra == "all"
80
+ Requires-Dist: black>=23.0.0; extra == "all"
81
+ Requires-Dist: isort>=5.12.0; extra == "all"
82
+ Requires-Dist: flake8>=6.0.0; extra == "all"
83
+ Requires-Dist: mypy>=1.0.0; extra == "all"
84
+ Requires-Dist: pre-commit>=3.0.0; extra == "all"
85
+ Requires-Dist: build>=0.10.0; extra == "all"
86
+ Requires-Dist: twine>=4.0.0; extra == "all"
87
+ Requires-Dist: mcp>=0.1.0; extra == "all"
88
+ Requires-Dist: fastapi>=0.104.0; extra == "all"
89
+ Requires-Dist: uvicorn[standard]>=0.24.0; extra == "all"
90
+ Requires-Dist: websockets>=12.0; extra == "all"
91
+ Requires-Dist: python-multipart>=0.0.6; extra == "all"
92
+ Requires-Dist: redis>=5.0.0; extra == "all"
93
+ Requires-Dist: bcrypt>=4.0.0; extra == "all"
94
+ Requires-Dist: python-jose[cryptography]>=3.3.0; extra == "all"
95
+
96
+ # IRIS Vector RAG Templates
97
+
98
+ **Production-ready Retrieval-Augmented Generation (RAG) pipelines powered by InterSystems IRIS Vector Search**
99
+
100
+ Build intelligent applications that combine large language models with your enterprise data using battle-tested RAG patterns and native vector search capabilities.
101
+
102
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
103
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
104
+ [![InterSystems IRIS](https://img.shields.io/badge/IRIS-2024.1+-purple.svg)](https://www.intersystems.com/products/intersystems-iris/)
105
+
106
+ ## Why IRIS Vector RAG?
107
+
108
+ 🚀 **Production-Ready** - Six proven RAG architectures ready to deploy, not research prototypes
109
+
110
+ ⚡ **Blazing Fast** - Native IRIS vector search with HNSW indexing, no external vector databases needed
111
+
112
+ 🔧 **Unified API** - Swap between RAG strategies with a single line of code
113
+
114
+ 📊 **Enterprise-Grade** - ACID transactions, connection pooling, and horizontal scaling built-in
115
+
116
+ 🎯 **100% Compatible** - Works seamlessly with LangChain, RAGAS, and your existing ML stack
117
+
118
+ 🧪 **Fully Validated** - Comprehensive test suite with automated contract validation
119
+
120
+ ## Available RAG Pipelines
121
+
122
+ | Pipeline Type | Use Case | Retrieval Method | When to Use |
123
+ |---------------|----------|------------------|-------------|
124
+ | **basic** | Standard retrieval | Vector similarity | General Q&A, getting started, baseline comparisons |
125
+ | **basic_rerank** | Improved precision | Vector + cross-encoder reranking | Higher accuracy requirements, legal/medical domains |
126
+ | **crag** | Self-correcting | Vector + evaluation + web search fallback | Dynamic knowledge, fact-checking, current events |
127
+ | **graphrag** | Knowledge graphs | Vector + text + graph + RRF fusion | Complex entity relationships, research, medical knowledge |
128
+ | **multi_query_rrf** | Multi-perspective | Query expansion + reciprocal rank fusion | Complex queries, comprehensive coverage needed |
129
+ | **pylate_colbert** | Fine-grained matching | ColBERT late interaction embeddings | Nuanced semantic understanding, high precision |
130
+
131
+ ## Quick Start
132
+
133
+ ### 1. Install
134
+
135
+ ```bash
136
+ # Clone repository
137
+ git clone https://github.com/intersystems-community/iris-rag-templates.git
138
+ cd iris-rag-templates
139
+
140
+ # Setup environment (requires uv package manager)
141
+ make setup-env
142
+ make install
143
+ source .venv/bin/activate
144
+ ```
145
+
146
+ ### 2. Start IRIS Database
147
+
148
+ ```bash
149
+ # Start IRIS with Docker Compose
150
+ docker-compose up -d
151
+
152
+ # Initialize database schema
153
+ make setup-db
154
+
155
+ # Optional: Load sample medical data
156
+ make load-data
157
+ ```
158
+
159
+ ### 3. Configure API Keys
160
+
161
+ ```bash
162
+ cat > .env << 'EOF'
163
+ OPENAI_API_KEY=your-key-here
164
+ ANTHROPIC_API_KEY=your-key-here # Optional, for Claude models
165
+ IRIS_HOST=localhost
166
+ IRIS_PORT=1972
167
+ IRIS_NAMESPACE=USER
168
+ IRIS_USERNAME=_SYSTEM
169
+ IRIS_PASSWORD=SYS
170
+ EOF
171
+ ```
172
+
173
+ ### 4. Run Your First Query
174
+
175
+ ```python
176
+ from iris_rag import create_pipeline
177
+
178
+ # Create pipeline with automatic validation
179
+ pipeline = create_pipeline('basic', validate_requirements=True)
180
+
181
+ # Load your documents
182
+ from iris_rag.core.models import Document
183
+
184
+ docs = [
185
+ Document(
186
+ page_content="RAG combines retrieval with generation for accurate AI responses.",
187
+ metadata={"source": "rag_basics.pdf", "page": 1}
188
+ ),
189
+ Document(
190
+ page_content="Vector search finds semantically similar content using embeddings.",
191
+ metadata={"source": "vector_search.pdf", "page": 5}
192
+ )
193
+ ]
194
+
195
+ pipeline.load_documents(documents=docs)
196
+
197
+ # Query with LLM-generated answer
198
+ result = pipeline.query(
199
+ query="What is RAG?",
200
+ top_k=5,
201
+ generate_answer=True
202
+ )
203
+
204
+ print(f"Answer: {result['answer']}")
205
+ print(f"Sources: {result['sources']}")
206
+ print(f"Retrieved: {len(result['retrieved_documents'])} documents")
207
+ ```
208
+
209
+ ## Unified API Across All Pipelines
210
+
211
+ **Switch RAG strategies with one line** - all pipelines share the same interface:
212
+
213
+ ```python
214
+ from iris_rag import create_pipeline
215
+
216
+ # Try different strategies instantly
217
+ for pipeline_type in ['basic', 'basic_rerank', 'crag', 'multi_query_rrf', 'graphrag']:
218
+ pipeline = create_pipeline(pipeline_type)
219
+
220
+ result = pipeline.query(
221
+ query="What are the latest cancer treatment approaches?",
222
+ top_k=5,
223
+ generate_answer=True
224
+ )
225
+
226
+ print(f"\n{pipeline_type.upper()}:")
227
+ print(f" Answer: {result['answer'][:150]}...")
228
+ print(f" Retrieved: {len(result['retrieved_documents'])} docs")
229
+ print(f" Confidence: {result['metadata'].get('confidence', 'N/A')}")
230
+ ```
231
+
232
+ ### Standardized Response Format
233
+
234
+ **100% LangChain & RAGAS compatible** responses:
235
+
236
+ ```python
237
+ {
238
+ "query": "What is diabetes?",
239
+ "answer": "Diabetes is a chronic metabolic condition...", # LLM answer
240
+ "retrieved_documents": [Document(...)], # LangChain Documents
241
+ "contexts": ["context 1", "context 2"], # RAGAS contexts
242
+ "sources": ["medical.pdf p.12", "diabetes.pdf p.3"], # Source citations
243
+ "execution_time": 0.523,
244
+ "metadata": {
245
+ "num_retrieved": 5,
246
+ "pipeline_type": "basic",
247
+ "retrieval_method": "vector",
248
+ "generated_answer": True,
249
+ "processing_time": 0.523
250
+ }
251
+ }
252
+ ```
253
+
254
+ ## Pipeline Deep Dives
255
+
256
+ ### CRAG: Self-Correcting Retrieval
257
+
258
+ Automatically evaluates retrieval quality and falls back to web search when needed:
259
+
260
+ ```python
261
+ from iris_rag import create_pipeline
262
+
263
+ pipeline = create_pipeline('crag')
264
+
265
+ # CRAG evaluates retrieved documents and uses web search if quality is low
266
+ result = pipeline.query(
267
+ query="What happened in the 2024 Olympics opening ceremony?",
268
+ top_k=5,
269
+ generate_answer=True
270
+ )
271
+
272
+ # Check which retrieval method was used
273
+ print(f"Method: {result['metadata']['retrieval_method']}") # 'vector' or 'web_search'
274
+ print(f"Confidence: {result['metadata']['confidence']}") # 0.0 - 1.0
275
+ ```
276
+
277
+ ### HybridGraphRAG: Multi-Modal Search
278
+
279
+ Combines vector search, text search, and knowledge graph traversal:
280
+
281
+ ```python
282
+ pipeline = create_pipeline('graphrag')
283
+
284
+ result = pipeline.query(
285
+ query_text="cancer treatment targets",
286
+ method="rrf", # Reciprocal Rank Fusion across all methods
287
+ vector_k=30, # Top 30 from vector search
288
+ text_k=30, # Top 30 from text search
289
+ graph_k=10, # Top 10 from knowledge graph
290
+ generate_answer=True
291
+ )
292
+
293
+ # Rich metadata includes entities and relationships
294
+ print(f"Entities: {result['metadata']['entities']}")
295
+ print(f"Relationships: {result['metadata']['relationships']}")
296
+ print(f"Graph depth: {result['metadata']['graph_depth']}")
297
+ ```
298
+
299
+ ### MultiQueryRRF: Multi-Perspective Retrieval
300
+
301
+ Expands queries into multiple perspectives and fuses results:
302
+
303
+ ```python
304
+ pipeline = create_pipeline('multi_query_rrf')
305
+
306
+ # Automatically generates query variations and combines results
307
+ result = pipeline.query(
308
+ query="How does machine learning work?",
309
+ top_k=10,
310
+ generate_answer=True
311
+ )
312
+
313
+ # See the generated query variations
314
+ print(f"Query variations: {result['metadata']['generated_queries']}")
315
+ print(f"Fusion method: {result['metadata']['fusion_method']}") # 'rrf'
316
+ ```
317
+
318
+ ## Enterprise Features
319
+
320
+ ### Production-Ready Database
321
+
322
+ **IRIS provides everything you need in one database:**
323
+
324
+ - ✅ Native vector search (no external vector DB needed)
325
+ - ✅ ACID transactions (your data is safe)
326
+ - ✅ SQL + NoSQL + Vector in one platform
327
+ - ✅ Horizontal scaling and clustering
328
+ - ✅ Enterprise-grade security and compliance
329
+
330
+ ### Connection Pooling
331
+
332
+ **Automatic concurrency management:**
333
+
334
+ ```python
335
+ from iris_rag.storage import IRISVectorStore
336
+
337
+ # Connection pool handles concurrency automatically
338
+ store = IRISVectorStore()
339
+
340
+ # Safe for multi-threaded applications
341
+ # Pool manages connections, no manual management needed
342
+ ```
343
+
344
+ ### Automatic Schema Management
345
+
346
+ **Database schema created and migrated automatically:**
347
+
348
+ ```python
349
+ pipeline = create_pipeline('basic', validate_requirements=True)
350
+ # ✅ Checks database connection
351
+ # ✅ Validates schema exists
352
+ # ✅ Migrates to latest version if needed
353
+ # ✅ Reports validation results
354
+ ```
355
+
356
+ ### RAGAS Evaluation Built-In
357
+
358
+ **Measure your RAG pipeline performance:**
359
+
360
+ ```bash
361
+ # Evaluate all pipelines on your data
362
+ make test-ragas-sample
363
+
364
+ # Generates detailed metrics:
365
+ # - Answer Correctness
366
+ # - Faithfulness
367
+ # - Context Precision
368
+ # - Context Recall
369
+ # - Answer Relevance
370
+ ```
371
+
372
+ ## Model Context Protocol (MCP) Support
373
+
374
+ **Expose RAG pipelines as MCP tools** for use with Claude Desktop and other MCP clients:
375
+
376
+ ```bash
377
+ # Start MCP server
378
+ python -m iris_rag.mcp
379
+
380
+ # Available MCP tools:
381
+ # - rag_basic
382
+ # - rag_basic_rerank
383
+ # - rag_crag
384
+ # - rag_multi_query_rrf
385
+ # - rag_graphrag
386
+ # - rag_hybrid_graphrag
387
+ # - health_check
388
+ # - list_tools
389
+ ```
390
+
391
+ Configure in Claude Desktop:
392
+
393
+ ```json
394
+ {
395
+ "mcpServers": {
396
+ "iris-rag": {
397
+ "command": "python",
398
+ "args": ["-m", "iris_rag.mcp"],
399
+ "env": {
400
+ "OPENAI_API_KEY": "your-key"
401
+ }
402
+ }
403
+ }
404
+ }
405
+ ```
406
+
407
+ ## Architecture Overview
408
+
409
+ ```
410
+ iris_rag/
411
+ ├── core/ # Abstract base classes (RAGPipeline, VectorStore)
412
+ ├── pipelines/ # Pipeline implementations
413
+ │ ├── basic.py # BasicRAG
414
+ │ ├── basic_rerank.py # Reranking pipeline
415
+ │ ├── crag.py # Corrective RAG
416
+ │ ├── multi_query_rrf.py # Multi-query with RRF
417
+ │ ├── graphrag.py # Graph-based RAG
418
+ │ └── hybrid_graphrag.py # Hybrid multi-modal
419
+ ├── storage/ # Vector store implementations
420
+ │ ├── vector_store_iris.py # IRIS vector store
421
+ │ └── schema_manager.py # Schema management
422
+ ├── mcp/ # Model Context Protocol server
423
+ ├── api/ # Production REST API
424
+ ├── services/ # Business logic (entity extraction, etc.)
425
+ ├── config/ # Configuration management
426
+ └── validation/ # Pipeline contract validation
427
+ ```
428
+
429
+ ## Documentation
430
+
431
+ 📚 **Comprehensive documentation for every use case:**
432
+
433
+ - **[User Guide](docs/USER_GUIDE.md)** - Complete installation and usage
434
+ - **[API Reference](docs/API_REFERENCE.md)** - Detailed API documentation
435
+ - **[Pipeline Guide](docs/PIPELINE_GUIDE.md)** - When to use each pipeline
436
+ - **[MCP Integration](docs/MCP_INTEGRATION.md)** - Model Context Protocol setup
437
+ - **[Production Deployment](docs/PRODUCTION_DEPLOYMENT.md)** - Deployment checklist
438
+ - **[Development Guide](docs/DEVELOPMENT.md)** - Contributing and testing
439
+
440
+ ## Performance Benchmarks
441
+
442
+ **Native IRIS vector search delivers:**
443
+
444
+ - 🚀 **50-100x faster** than traditional solutions for hybrid search
445
+ - ⚡ **Sub-second queries** on millions of documents
446
+ - 📊 **Linear scaling** with IRIS clustering
447
+ - 💾 **10x less memory** than external vector databases
448
+
449
+ ## Testing & Quality
450
+
451
+ ```bash
452
+ # Run comprehensive test suite
453
+ make test
454
+
455
+ # Test specific categories
456
+ pytest tests/unit/ # Unit tests (fast)
457
+ pytest tests/integration/ # Integration tests (with IRIS)
458
+ pytest tests/contract/ # API contract validation
459
+
460
+ # Run with coverage
461
+ pytest --cov=iris_rag --cov-report=html
462
+ ```
463
+
464
+ **For detailed testing documentation**, see [DEVELOPMENT.md](docs/DEVELOPMENT.md)
465
+
466
+ ## Research & References
467
+
468
+ This implementation is based on peer-reviewed research:
469
+
470
+ - **Basic RAG**: Lewis et al., [Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks](https://arxiv.org/abs/2005.11401), NeurIPS 2020
471
+ - **CRAG**: Yan et al., [Corrective Retrieval Augmented Generation](https://arxiv.org/abs/2401.15884), arXiv 2024
472
+ - **GraphRAG**: Edge et al., [From Local to Global: A Graph RAG Approach](https://arxiv.org/abs/2404.16130), arXiv 2024
473
+ - **ColBERT**: Khattab & Zaharia, [ColBERT: Efficient and Effective Passage Search](https://arxiv.org/abs/2004.12832), SIGIR 2020
474
+
475
+ ## Contributing
476
+
477
+ We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for:
478
+
479
+ - Development setup
480
+ - Testing guidelines
481
+ - Code style and standards
482
+ - Pull request process
483
+
484
+ ## Community & Support
485
+
486
+ - 💬 **Discussions**: [GitHub Discussions](https://github.com/intersystems-community/iris-rag-templates/discussions)
487
+ - 🐛 **Issues**: [GitHub Issues](https://github.com/intersystems-community/iris-rag-templates/issues)
488
+ - 📖 **Documentation**: [Full Documentation](docs/)
489
+ - 🏢 **Enterprise Support**: [InterSystems Support](https://www.intersystems.com/support/)
490
+
491
+ ## License
492
+
493
+ MIT License - see [LICENSE](LICENSE) for details.
494
+
495
+ ---
496
+
497
+ **Built with ❤️ by the InterSystems Community**
498
+
499
+ *Powering intelligent applications with enterprise-grade RAG*
@@ -0,0 +1,50 @@
1
+ adapters/rag_templates_bridge.py,sha256=6fKlOFn-j0kTOcTMDmoGKneTRKE3mb5qQtgzuxL6ky0,20268
2
+ common/__init__.py,sha256=ovoWvlXraRi10Fwt0rTMPSIOm32HvAli0m4KgDc1cRI,16
3
+ common/batch_utils.py,sha256=1kbb_LpkECaqpcEirNwhYH2xQZyr4hzXjWRlOMXsEZc,10085
4
+ common/config.py,sha256=A-we2aNj80gbopwtJsPJUlazEE6LDlsv91eJ9GQiEkY,1505
5
+ common/connection_manager.py,sha256=VFOuoPWKqb809g5KMKkBg0B2Wij9REBAM6FmdwuLpFA,8724
6
+ common/connection_pool.py,sha256=LJ558-CHIgnv9ns_JfSfS9G_ZDWT3tS9U8cdgCZtK_c,14225
7
+ common/database.py,sha256=kRtAKzh2l3KeBF805PSOXu3HBqvwT8dcFNdbPoVQ9ck,4455
8
+ common/database_schema_manager.py,sha256=Bts-K_4T9wxLKlaUxMwFwKZLApYmiseDQxXZ2iRNql4,10019
9
+ common/db_init_with_indexes.py,sha256=w1IpNK6Pbsl1-4-QE1VZeTLZhzSV4kAvUH5QUltMzB0,6440
10
+ common/db_vector_utils.py,sha256=H1volkkTRGM-067aXABTEGK9YhEkyEG_9m94fKzTRS0,7639
11
+ common/environment_manager.py,sha256=eJ-B4oHXzenelVpGt5y3GPmkHT9_3FkoEIF9ECvsusE,7829
12
+ common/huggingface_utils.py,sha256=URpwucLKRvP1efK-ijUsKmYgnLwqulDiHp4kjZ_77tA,6394
13
+ common/iris_client.py,sha256=755Kfu4oTeONUPPTsZJPWAl94BGXJeqt-qOVPJ9trw8,2734
14
+ common/iris_connection_manager.py,sha256=TgdCUvpb8f9dVcXkeQz_eYhMl9ykMbAIohawGnzVip8,15038
15
+ common/iris_connection_pool.py,sha256=yvuXpBmTIgDNVTvYNl-hdFq7MSvFn3PgjDjEyT5gQHo,11646
16
+ common/iris_connector.py,sha256=Qo-jFdizP3huH3nK7bidyEKeqihT8pwaP7NSpxoC2YI,2288
17
+ common/iris_dbapi_connector.py,sha256=73D2RS5j950YKlwhmnY-Xo38n0VgaEpul0jyiT1Kp3s,11378
18
+ common/iris_index_utils.py,sha256=3SyyP7BjVY76WxHFbI013XFJgfdBR3kSvjEhII-VSjA,6535
19
+ common/iris_sql_utils.py,sha256=pCRp_XuhvthTgiWWAl3kryaxpRxAbMt_gjvcfBmAqQE,24469
20
+ common/iris_stream_reader.py,sha256=eqVhCwBjt3yLqW_V2OpxwEiw1kQKlQXqAHFFuS938bI,5345
21
+ common/llm_cache_config.py,sha256=Q9qtjt4CUYvk9y8c9L1Tl5pWH756_HHHmWI9YjtsJ1k,11589
22
+ common/llm_cache_iris.py,sha256=nY1pcG_wxUH4gkSGCMQTegW7wEXDEJtyyaB_iP4r78Q,24074
23
+ common/llm_cache_manager.py,sha256=P-jNBN4071B9S22AOUajyBi3yFCOaT-YFo-N09dvJVQ,36320
24
+ common/utils.py,sha256=_3xIte-rv41Z998pO2aK8lZq2bCQKLldv_-dyUGSqjU,20298
25
+ common/vector_sql_utils.py,sha256=72KrTnxfEhRvLecLuMwKxkEHSERjTcTSKy6-I0BB230,21153
26
+ evaluation_framework/__init__.py,sha256=1k9PQsrDNd-B4xG4d2UYvUGJv9U_iBWnRjuhEyN8bsY,2025
27
+ evaluation_framework/biomedical_question_generator.py,sha256=cgaE34rQw67eNCcC6fh3vQoBnUqFPnPwYUROWwXABJY,30316
28
+ evaluation_framework/comparative_analysis_system.py,sha256=j_MJu2H6BkeGwYqQi9T-823AoXwSIOK3pPNHJMAWmwo,43487
29
+ evaluation_framework/empirical_reporting.py,sha256=UaZHSqQM4Ov640fr2hl7rypM8VPTknQmgVh9zhiEx2w,48199
30
+ evaluation_framework/evaluation_orchestrator.py,sha256=RnSON51hjk-0t4lGa5P098WTpO_7a-PU_XWMUu4ezPk,39455
31
+ evaluation_framework/execute_production_evaluation.py,sha256=DSXzbBbBh4BzrYbQW8satEl1c1MX7VMFWGdToPvP06s,13648
32
+ evaluation_framework/pmc_data_pipeline.py,sha256=5hRLziXdv0O4AVhyTD8_6nrSchdzHhAVH7Awk9YEuiE,44699
33
+ evaluation_framework/production_evaluation_config.py,sha256=Y9JzuzbWBVMCFBwoBjygFfWEacBlpVTc2V9fn6OY4xk,12395
34
+ evaluation_framework/ragas_metrics_framework.py,sha256=zt1aTbE3dB9IlYT0RTeULC_HMQ2YiBK8V-v0pYk-7xk,37948
35
+ evaluation_framework/real_production_evaluation.py,sha256=6BpQWdzzEcQ8rW5HVj6ja4CKGN318HQP3jvLX8iD0xM,20868
36
+ evaluation_framework/run_10k_evaluation.py,sha256=LXOqRstARh5q7-HbVG_yLJIRbN529sznNY6pr-jl1sc,5370
37
+ evaluation_framework/simple_test.py,sha256=fuRkQ9tq4Ic4uceNBMUDTjqs1fl3R6jTgxkZ2E-cF4Q,12614
38
+ evaluation_framework/statistical_evaluation_methodology.py,sha256=9eAS8tAcOHFkJQWYaoObzb4IwX-rf7DAgCzlgRHwemA,36064
39
+ evaluation_framework/test_framework.py,sha256=akN7F2Ai2tVDTGBwIKJTI9w4kqalp1fhh-FfBvwaPGQ,10381
40
+ evaluation_framework/test_iris_connectivity.py,sha256=_3cDIYjD1HXPCfuXGm9fBKagbf_IVvPmreEpvpzXA64,8509
41
+ evaluation_framework/test_small_scale_evaluation.py,sha256=nkxpGlsnbvyfEH4fKRJiqbug4x5iRQyMIe0hYzDnENE,16845
42
+ evaluation_framework/true_e2e_evaluation.py,sha256=FFczA9Bf3crL9VGICGGCMaWCIMwZLTuzhzQtmtWV-XA,29283
43
+ evaluation_framework/visualization_engine.py,sha256=mpANwOjjm-m0bNF8F_oEDfpzojZi6zQpJemspZPLkpU,19315
44
+ iris_rag/__init__.py,sha256=54LE0nbU4bP8j5-zU48Idbjr4e9jYBfnGr04WRM53l0,10022
45
+ iris_rag/config/default_config.yaml,sha256=ieTYKvz7qrI0RitmoPfoc42F0bI25Uo8yvmveE3VYcY,12253
46
+ iris_vector_rag-0.2.1.dist-info/METADATA,sha256=D_SUxg0UluC1UX35hmNWI7z7C4wb7hLDYbtP38AWR84,16780
47
+ iris_vector_rag-0.2.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
48
+ iris_vector_rag-0.2.1.dist-info/entry_points.txt,sha256=TjbMGaAJwGjKEUXKLQg3dYvSA01IryxYHo9E2oCamKE,52
49
+ iris_vector_rag-0.2.1.dist-info/top_level.txt,sha256=tOC9pog6xJ7LdmIVpCb276dstAEfxRxMwv-5Hyls8Fw,46
50
+ iris_vector_rag-0.2.1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ rag-templates = iris_rag.cli:main
@@ -0,0 +1,4 @@
1
+ adapters
2
+ common
3
+ evaluation_framework
4
+ iris_rag