semantic-retrieval-api / CONTRIBUTING.md
Kind07's picture
Initial clean commit for web deployment
ed65693
|
Raw
History Blame Contribute Delete
1.94 kB
# Contributing
Thanks for your interest in contributing! This project is a research-oriented retrieval system, so contributions that improve evaluation rigor, retrieval quality, or code clarity are especially welcome.
## Getting Started
```bash
# Clone and set up
git clone https://github.com/ayushmath07/Semantic-Document-Retrieval-API.git
cd Semantic-Document-Retrieval-API
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # macOS/Linux
pip install -r requirements.txt
```
## Development Workflow
### Run Tests
```bash
pytest tests/ -v
```
All tests must pass before submitting a PR.
### Lint and Format
This project uses [Ruff](https://docs.astral.sh/ruff/) for linting and formatting:
```bash
ruff check . # lint
ruff format --check . # verify formatting
ruff format . # auto-format
```
### Build the Index
```bash
python scripts/build_index.py --dataset scifact
```
### Run Evaluation
```bash
python scripts/evaluate.py
```
## Project Structure
```
app/ Core retrieval modules (calibration, fusion, reranking, API)
scripts/ Index building and evaluation runners
tests/ pytest test suite
eval/ Golden set labels and generated results
data/ Sample documents and FAISS/BM25 index artifacts
```
## Pull Request Guidelines
1. **One concern per PR.** Don't mix refactors with feature additions.
2. **Include tests** for new functionality.
3. **Run the full test suite** before opening the PR.
4. **Update the README** if your change affects the API, retrieval modes, or evaluation.
## Code Style
- Python 3.11+
- Type hints on all function signatures
- Docstrings on all public functions (Google style)
- Ruff-clean (`ruff check .` produces zero warnings)
## Reporting Issues
Open a GitHub issue with:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Python version and OS