AnswerDotAI / AnswerDotAI/RAGatouille

Rework Dependencies: ship with barebones dependencies & bundle different features as extras

Open
#136 1 comment 1 reaction 0 assignees View on GitHub
enhancement help wanted
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.