Sistem RAG (Retrieval-Augmented Generation) care rulează integral local:
- Embeddings prin Ollama (
nomic-embed-text-v2-moe) - Vector store în
sqlite-vec(persistent pe disc) - Query: top-20 chunks → Claude CLI (Sonnet) cu streaming
Port: 8770
- Primești linkuri (articole, pagini) → le descarcă cu
newspaper4k/pypdf/python-docx - Chunking pe propoziții (~500 cuvinte per chunk)
- Embed cu Ollama → inserat în sqlite-vec
- La query: embedding pe întrebare → căutare cosine pe sqlite-vec → top-20 chunks grupate pe document → prompt către Claude Sonnet → răspuns streaming (SSE)
- Claude CLI la
~/.local/bin/claude - Ollama instalat + modelul:
ollama pull nomic-embed-text-v2-moe(saunomic-embed-text)
git clone https://github.com/intelink/linkrag.git
cd linkrag
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python server.pyDeschide: http://localhost:8770
data/linkrag.db— sqlite cu chunks + embeddingsdata/docs/— conținutul descărcat pentru re-citire
CHUNK_SIZE = 500 # cuvinte per chunk
EMBED_MODEL = "nomic-embed-text-v2-moe"
CLAUDE_MODEL = "sonnet"
TOP_K = 20sudo cp linkrag.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now linkrag.service