Skip to content

Commit dffa058

Browse files
committed
sync: update from internal GitLab repository
Content updated: Files: - README.md - ROADMAP.md - pyproject.toml - requirements.txt - Makefile - pytest.ini - .gitignore - module.xml - CHANGELOG.md Directories: - common/ - iris_rag/ - rag_templates/ - config/ - docs/ - quick_start/ - tools/ - examples/ - scripts/ - data/ - nodejs/ - objectscript/ - tests/ Synced at: 2025-08-02 13:49:29
1 parent 8444e38 commit dffa058

File tree

822 files changed

+164762
-21376
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

822 files changed

+164762
-21376
lines changed

β€Ž.gitignore

100755100644
Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
nodejs/node_modules/
22
.vscode/
3+
outputs/
4+
specs/
5+
eval_results/
6+
comprehensive_ragas_results/
7+
test_benchmark_results/
38

49
# Byte-compiled / optimized / DLL files
510
__pycache__/
@@ -82,7 +87,7 @@ ipython_config.py
8287

8388
# Environments
8489
.env
85-
.venv/
90+
.venv
8691
env/
8792
venv/
8893
ENV/
@@ -234,3 +239,6 @@ testing_system_analysis.md
234239
*_TEST_RESULTS.md
235240
COMPREHENSIVE_*.md
236241
PIPELINE_*.md
242+
243+
# Claude Code guidance file (internal development tool)
244+
CLAUDE.md

β€ŽCHANGELOG.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
### Added
11+
- Requirements-driven orchestrator architecture for elegant automatic pipeline setup
12+
- Unified Query() API architecture for consistent pipeline interfaces
13+
- Basic reranking pipeline with cross-encoder support
14+
- Comprehensive TDD validation for orchestrator architecture
15+
- Pipeline development guide with best practices and anti-patterns
16+
- Public repository synchronization infrastructure
17+
- Enterprise-grade documentation structure
18+
19+
### Changed
20+
- **BREAKING**: All pipelines now use unified `query()` method as the primary interface
21+
- Vector store ID column handling improved for better database compatibility
22+
- Pipeline registration system enhanced with requirements validation
23+
- Development workflow standardized with SPARC methodology
24+
25+
### Fixed
26+
- Chunking ID collision issues in vector store operations
27+
- IDENTITY column compatibility with InterSystems IRIS
28+
- Vector search TypeError in document processing
29+
- Basic rerank pipeline registration and factory integration
30+
31+
### Deprecated
32+
- Pipeline `execute()` and `run()` methods (use `query()` instead)
33+
34+
### Security
35+
- Comprehensive filtering for public repository synchronization
36+
- Exclusion of internal content, secrets, and sensitive data from public releases
37+
38+
## [0.1.0] - 2024-12-01
39+
40+
### Added
41+
- Initial release of RAG Templates library
42+
- Three-tier API design (Simple, Standard, Enterprise)
43+
- Support for 7 RAG techniques: Basic, ColBERT, CRAG, GraphRAG, HyDE, HybridIFind, NodeRAG
44+
- InterSystems IRIS vector database integration
45+
- JavaScript/Node.js API support
46+
- Docker containerization
47+
- Comprehensive test suite with real PMC document validation
48+
- Performance benchmarking framework
49+
- RAGAS evaluation integration
50+
51+
### Changed
52+
- N/A (Initial release)
53+
54+
### Fixed
55+
- N/A (Initial release)
56+
57+
---
58+
59+
## Release Versioning Strategy
60+
61+
This project follows [Semantic Versioning](https://semver.org/):
62+
63+
- **MAJOR** version for incompatible API changes
64+
- **MINOR** version for backwards-compatible functionality additions
65+
- **PATCH** version for backwards-compatible bug fixes
66+
67+
### Version Tags
68+
- Development releases: `X.Y.Z-dev.N`
69+
- Release candidates: `X.Y.Z-rc.N`
70+
- Stable releases: `X.Y.Z`
71+
72+
### Release Process
73+
1. Update CHANGELOG.md with release notes
74+
2. Update version in pyproject.toml
75+
3. Create release tag: `git tag -a vX.Y.Z -m "Release vX.Y.Z"`
76+
4. Sync to public repository
77+
5. Create GitHub release with highlights

β€ŽMakefile

Lines changed: 967 additions & 0 deletions
Large diffs are not rendered by default.

β€ŽREADME.md

Lines changed: 148 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,77 @@
11
# RAG Templates - Enterprise RAG Framework
22

3-
**Production-ready RAG applications with InterSystems IRIS.** Zero-configuration APIs, enterprise-grade architecture, and seamless LangChain integration.
3+
**Production-ready RAG applications with InterSystems IRIS.** Zero-configuration APIs, enterprise-grade architecture, and seamless framework integration.
4+
5+
## 🎯 For IRIS Customers
6+
7+
**Already have data in IRIS?** Add RAG capabilities to your existing systems in minutes:
8+
9+
```python
10+
# Non-destructive integration with existing IRIS data
11+
from rag_templates import ConfigurableRAG
12+
13+
rag = ConfigurableRAG({
14+
"database": {"existing_tables": {"YourSchema.YourTable": {...}}}
15+
})
16+
answer = rag.query("Your business question")
17+
```
18+
19+
**Key Benefits for IRIS Customers:**
20+
- βœ… **No Data Migration**: Works with existing IRIS tables
21+
- βœ… **8 RAG Techniques**: Compare performance on your data
22+
- βœ… **ObjectScript Integration**: Native calls from existing applications
23+
- βœ… **2x Faster**: IRIS WSGI deployment outperforms external solutions
24+
- βœ… **Enterprise Security**: Inherits your existing IRIS security model
25+
26+
## 🧭 Where to Start
27+
28+
**Choose your path based on your situation:**
29+
30+
### πŸ“Š I want to evaluate RAG techniques
31+
```bash
32+
make demo-performance # Compare 8 RAG techniques on sample data
33+
make demo-chat-app # Interactive demo with all features
34+
```
35+
36+
### πŸ”„ I'm migrating from LangChain/LlamaIndex
37+
```bash
38+
make demo-migration # See side-by-side code comparisons
39+
```
40+
πŸ‘‰ **See:** [Framework Migration Guide](docs/FRAMEWORK_MIGRATION.md)
41+
42+
### πŸ₯ I have existing data in IRIS
43+
```bash
44+
make quick-start-demo # Setup with existing data integration
45+
```
46+
πŸ‘‰ **See:** [Existing Data Integration](docs/EXISTING_DATA_INTEGRATION.md)
47+
48+
### πŸš€ I want to start fresh
49+
```bash
50+
make quick-start # Guided setup wizard
51+
```
452

553
## πŸš€ Quick Start
654

55+
### One-Command Setup
56+
Get started with a complete RAG system in minutes using our intelligent setup wizard:
57+
58+
```bash
59+
# Interactive setup with profile selection
60+
make quick-start
61+
62+
# Or choose a specific profile:
63+
make quick-start-minimal # 50 docs, 2GB RAM - Perfect for development
64+
make quick-start-standard # 500 docs, 4GB RAM - Production ready
65+
make quick-start-extended # 5000 docs, 8GB RAM - Enterprise scale
66+
```
67+
68+
The Quick Start system provides:
69+
- **🎯 Profile-based Configuration**: Minimal, Standard, and Extended profiles optimized for different use cases
70+
- **πŸ”§ Interactive CLI Wizard**: Guided setup with intelligent defaults and validation
71+
- **🐳 Docker Integration**: Containerized environments with health monitoring
72+
- **πŸ“Š Health Monitoring**: Real-time system validation and performance tracking
73+
- **πŸ”— MCP Server Integration**: Microservice deployment with enterprise features
74+
775
### Python - Zero Configuration
876
```python
977
from rag_templates import RAG
@@ -15,7 +83,7 @@ answer = rag.query("What is machine learning?")
1583
print(answer)
1684
```
1785

18-
### JavaScript - Zero Configuration
86+
### JavaScript - Zero Configuration
1987
```javascript
2088
import { RAG } from '@rag-templates/core';
2189

@@ -33,6 +101,27 @@ Set result = bridge.Query("What is machine learning?", "basic")
33101
Write result.answer
34102
```
35103

104+
### Quick Start Profiles
105+
106+
| Profile | Documents | Memory | Use Case | Features |
107+
|---------|-----------|--------|----------|----------|
108+
| **Minimal** | 50 | 2GB | Development, Testing | Basic RAG, Local setup |
109+
| **Standard** | 500 | 4GB | Production, Demos | Multiple techniques, MCP server |
110+
| **Extended** | 5000 | 8GB | Enterprise, Scale | Full stack, Monitoring, Docker |
111+
112+
### Quick Start Commands
113+
114+
```bash
115+
# Check system status
116+
make quick-start-status
117+
118+
# Clean up environment
119+
make quick-start-clean
120+
121+
# Custom profile setup
122+
make quick-start-custom PROFILE=my-profile
123+
```
124+
36125
## πŸ—οΈ Core Architecture
37126

38127
### Schema Manager
@@ -52,6 +141,33 @@ vector_store = IRISVectorStore(connection_manager, config_manager)
52141
retriever = vector_store.as_retriever(search_kwargs={"k": 5})
53142
```
54143

144+
### Enterprise Storage & Existing Data Integration
145+
Seamlessly integrate RAG with your existing databases and enterprise data:
146+
147+
```python
148+
# Use existing database tables
149+
config = {
150+
"storage": {
151+
"iris": {
152+
"table_name": "MyCompany.Documents" # Your existing table
153+
}
154+
}
155+
}
156+
157+
# Enterprise storage with manual schema control
158+
from iris_rag.storage.enterprise_storage import IRISStorage
159+
storage = IRISStorage(connection, config)
160+
storage.initialize_schema() # Adds RAG columns to existing tables
161+
```
162+
163+
**Key Features:**
164+
- **Custom table support**: Use existing database tables without modification
165+
- **Non-destructive overlay**: Add RAG capabilities via views and auxiliary tables
166+
- **Schema migration**: Automatically add missing columns to legacy tables
167+
- **Security-hardened**: Input validation and SQL injection prevention
168+
169+
See the [Existing Data Integration Guide](docs/EXISTING_DATA_INTEGRATION.md) for complete setup instructions.
170+
55171
### Configuration System
56172
Environment-aware configuration with validation:
57173
```python
@@ -73,6 +189,7 @@ config = ConfigurationManager()
73189
| **graphrag** | Graph-based knowledge retrieval | Structured knowledge bases | βœ… Production |
74190
| **hybrid_ifind** | Multi-modal search combination | Enterprise search | βœ… Production |
75191
| **noderag** | Node-based structured retrieval | Hierarchical data | βœ… Production |
192+
| **sql_rag** | Natural language to SQL conversion | Structured data queries | βœ… Production |
76193

77194
*ColBERT: Includes experimental [Pylate integration](https://github.com/lightonai/pylate) with pluggable backend support (`native`/`pylate`).
78195

@@ -110,7 +227,7 @@ rag = ConfigurableRAG(config)
110227

111228
## πŸ”— MCP Integration
112229

113-
The Model Context Protocol (MCP) integration allows you to easily deploy and manage RAG services as "microservices". This design enables flexible deployment across various environments and seamless integration with existing enterprise systems.
230+
The Multi-Cloud Platform (MCP) integration allows you to easily deploy and manage RAG services as microservices. This design enables flexible deployment across various environments and seamless integration with existing enterprise systems.
114231

115232
### Creating MCP Servers
116233

@@ -137,14 +254,22 @@ For detailed setup and usage, refer to the [MCP Integration Guide](docs/MCP_INTE
137254

138255
| Guide | Description |
139256
|-------|-------------|
257+
| **[πŸš€ Quick Start Guide](docs/QUICK_START_GUIDE.md)** | **NEW!** One-command setup with intelligent profiles |
140258
| **[πŸ“– User Guide](docs/USER_GUIDE.md)** | Complete usage guide and best practices |
259+
| **[πŸ‘¨β€πŸ’» Developer Guide](docs/DEVELOPER_GUIDE.md)** | Development setup, contribution guide, and best practices |
260+
| **[πŸ”§ Pipeline Development Guide](docs/PIPELINE_DEVELOPMENT_GUIDE.md)** | **NEW!** How to create custom RAG pipelines with proper inheritance patterns |
141261
| **[πŸ”— MCP Integration Guide](docs/MCP_INTEGRATION_GUIDE.md)** | Multi-Cloud Platform integration, MCP server creation, and IRIS SQL tool usage |
142262
| **[πŸ“‹ Documentation](docs/README.md)** | Additional documentation and guides |
143263

144264
## βœ… Verification
145265

146266
```bash
147-
# Quick setup and validation
267+
# Quick Start - One command setup and validation
268+
make quick-start-minimal # Development setup with validation
269+
make quick-start-standard # Production setup with validation
270+
make quick-start-extended # Enterprise setup with validation
271+
272+
# Manual setup and validation
148273
make setup-env && make install
149274
make validate-iris-rag && make test-unit
150275

@@ -153,13 +278,21 @@ make load-1000 && make test-1000
153278

154279
# Performance benchmarking
155280
make test-ragas-1000-enhanced
281+
282+
# Quick Start system status
283+
make quick-start-status # Check system health and configuration
156284
```
157285

158286
## 🌟 Key Features
159287

288+
- **πŸš€ One-Command Setup**: Complete RAG systems in minutes with intelligent profiles
289+
- **🎯 Profile-Based Configuration**: Minimal, Standard, Extended - optimized for every use case
290+
- **πŸ”§ Interactive CLI Wizard**: Guided setup with validation and intelligent defaults
291+
- **🐳 Docker Integration**: Containerized environments with health monitoring
292+
- **πŸ“Š Real-Time Monitoring**: System health, performance metrics, and alerting
160293
- **Zero Configuration**: Production-ready defaults, works immediately
161294
- **Enterprise Architecture**: Schema management, migrations, monitoring
162-
- **LangChain Compatible**: Drop-in replacement for existing workflows
295+
- **LangChain Compatible**: Drop-in replacement for existing workflows
163296
- **Multi-Language**: Python, JavaScript, and ObjectScript support
164297
- **MCP-First Design**: Trivial MCP server creation
165298
- **Advanced RAG**: 7+ sophisticated retrieval techniques
@@ -185,6 +318,16 @@ make test-ragas-1000-enhanced
185318
- **LLM Integration**: [LangChain](https://github.com/langchain-ai/langchain), [OpenAI API](https://platform.openai.com/docs/api-reference)
186319
- **Evaluation**: [RAGAS Framework](https://github.com/explodinggradients/ragas)
187320

321+
## πŸ›£οΈ Roadmap
322+
323+
See our [Roadmap](ROADMAP.md) for planned features, architecture improvements, and long-term vision.
324+
325+
**Upcoming Highlights:**
326+
- **Unified Connection Architecture** - Simplify IRIS database connections
327+
- **Multi-Modal RAG** - Image and document processing support
328+
- **AutoRAG** - Automatic technique selection and optimization
329+
- **RAG Studio** - Visual pipeline builder for enterprise users
330+
188331
## 🀝 Contributing
189332

190333
We welcome contributions! See our [Contributing Guide](CONTRIBUTING.md) for details.

0 commit comments

Comments
Β (0)