AnswerDotAI / AnswerDotAI/RAGatouille
Rework Dependencies: ship with barebones dependencies & bundle different features as extras
- Dominant language
- Python
- Stars
- 4k
- Forks
- 276
- PR merge metrics
- No merged PRs in 30d
Description
Putting this out there as a way to alleviate the _many_ dependencies issues. I'll soon be shipping a PLAID (&compression, that will come later)-free indexing method, which will alleviate the need to run custom CUDA code or `faiss` when indexing small collections (anything up to ~2000 256 token documents can still be queried in hundreds of milliseconds on CPU).
Once this index has shipped, I am planning to overhaul dependencies, as I'm being told more and more that RAGatouille is making it into prod use cases and the "full fat" default version is kind of annoying. This is where I'm currently at in terms of versions:
#### ragatouille
**Features**: Search, In-memory encoding, uncompressed indexing
**Deps**:
- colbert-ai (backbone)
- srsly (serialisation)
- torch (backbone) --> maybe optional
#### **ragatouille\[train\]**
*REMOVE SENTENCE-TRANSFORMERS*
**Features**: Training, hard negative mining
**Additional deps**:
- Voyager (hard neg dense quick retrieval)
#### **ragatouille\[plaid-cpu\]**
**Features**: Plaid indexing on CPU
**Additional** **Deps**:
- faiss-cpu
- llama-index (for now, for chunking)
#### **ragatouille\[plaid-gpu\]**
**Features**: Plaid indexing on GPU
**Additional** **Deps**:
- faiss-gpu
- llama-index (for now, for chunking)
#### **ragatouille\[langchain\]**
**Features**: Allows export as langchain retriever
**Additional** **Deps**:
- langchain
- langchain_core
#### **ragatouille\[onnx\]**
**Features**: Allows ONNX format export (for Vespa)
**Additional** **Deps**:
- onnx
#### **ragatouille\[all\]**
**Features**: Everything
**Deps**:
- all of the above
Any feedback on this would be appreciated at this stage -- very early thoughts still! One big question is whether `torch` (which is required) should ship with the base version, or be optional to facilitate env compatibility.
Contributor guide
No contributing guide indexed for this repository
Research direction
The issue names no files, tests, or entry points and presents an early dependency-design proposal for feedback. Completion criteria are not defined; a maintainer decision on the base package and optional extras is needed before implementation can begin.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100