# Repo Guidelines This repository contains the LLM-based Cancer Risk Assessment Assistant. ## Core Technologies - **FastAPI** for the web framework - **LangChain** for LLM orchestration - **uv** for environment and dependency management - **hydra:** for configuration management ## Coding Philosophy - Prioritize clarity and reusability. - Favor simple replication over heavy abstraction. - Keep comments short and only where the code isn't self-explanatory. - Avoid verbose docstrings for simple functions. ## Testing - Write meaningful tests that verify core functionality and prevent regressions. - Run tests with `uv run pytest`. ## Development Setup - Create the virtual environment (at '.venv') with `uv sync`. ## Running commands - As the repository uses uv, the uv should be used to run all commands, e.g., "uv run python ..." NOT "python ...". - **FastAPI Server**: `uv run uvicorn apps.api.main:app --reload` - **CLI Demo**: `uv run python apps/cli/main.py` - **Tests**: `uv run pytest` These guidelines apply to the entire repository. ## Important Note for Developers When making changes to the project, ensure that the following files are updated to reflect the changes: - `README.md` - `AGENTS.md` - `GEMINI.md` ## Risk Model Availability Risk calculators exposed to Gemini-based agents include: - **Gail** - Breast cancer risk - **Claus** - Breast cancer risk based on family history - **Tyrer-Cuzick** - Breast cancer risk (IBIS model) - **BOADICEA** - Breast and ovarian cancer risk (via CanRisk API) - **PLCOm2012** - Lung cancer risk - **LLPi** - Liverpool Lung Project improved model for lung cancer risk (8.7-year prediction) - **CRC-PRO** - Colorectal cancer risk - **PCPT** - Prostate cancer risk - **Extended PBCG** - Prostate cancer risk (extended model) - **Prostate Mortality** - Prostate cancer-specific mortality prediction - **MRAT** - Melanoma risk (5-year prediction) - **aMAP** - Hepatocellular carcinoma (liver cancer) risk - **QCancer** - Multi-site cancer differential Register additional models in `src/sentinel/risk_models/__init__.py` so they are available system-wide.