Markit_v2 / tests /README.md
AnseMin's picture
Add advanced retrieval strategies and update dependencies for RAG implementation
21c909d
# Tests Directory
This directory contains test files for the Phase 1 RAG implementation.
## Test Files
### πŸ”§ `test_implementation_structure.py`
- **Purpose**: Validates implementation structure without requiring API keys
- **Tests**: Imports, method signatures, class attributes, configuration options
- **Usage**: `python tests/test_implementation_structure.py`
- **Status**: βœ… All 5/5 tests passing
### πŸ§ͺ `test_retrieval_methods.py`
- **Purpose**: Comprehensive testing of all retrieval methods with real data
- **Tests**: Similarity, MMR, BM25, Hybrid search methods
- **Usage**: `python tests/test_retrieval_methods.py`
- **Requirements**: OpenAI and Google API keys needed for full functionality
### πŸ“Š `test_data_usage.py`
- **Purpose**: Demonstrates available methods and checks existing data
- **Features**: Data validation, method documentation, deployment readiness
- **Usage**: `python tests/test_data_usage.py`
- **Status**: βœ… Ready with existing transformer paper data
## Running Tests
### Quick Structure Check (No API Keys)
```bash
cd /path/to/Markit_v2
source .venv/bin/activate
python tests/test_implementation_structure.py
```
### Full Functionality Test (Requires API Keys)
```bash
# Set environment variables first
export OPENAI_API_KEY="your-key"
export GOOGLE_API_KEY="your-key"
python tests/test_retrieval_methods.py
```
### Data Usage Demo
```bash
python tests/test_data_usage.py
```
## Test Results Summary
- **Structure Tests**: βœ… 5/5 passed
- **Implementation**: βœ… Complete and functional
- **Data**: βœ… Transformer paper data available (0.92 MB)
- **Deployment**: βœ… All installation files updated
## Available Retrieval Methods
1. **Similarity** (`retrieval_method='similarity'`)
2. **MMR** (`retrieval_method='mmr'`)
3. **BM25** (`vector_store_manager.get_bm25_retriever()`)
4. **Hybrid** (`retrieval_method='hybrid'`)
All methods are ready for production use once API keys are configured.