Initial upload
This commit is contained in:
40
recipes/ai/rag-crawler/README.md
Normal file
40
recipes/ai/rag-crawler/README.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# RAG Crawler – Vollversion (freundlich & getrennt vom RAG-Speicher)
|
||||
|
||||
Dieser Crawler läuft **separat** vom RAG/Memory-Stack. Er:
|
||||
- respektiert `robots.txt`
|
||||
- nutzt zufällige Delays (min/max), per-Domain-Quoten & Limitierung der Parallelität
|
||||
- unterstützt zwei Modi: `update` (normal) und `drip` (sehr langsam/menschlich)
|
||||
- speichert Texte/PDFs im Dateisystem (Corpus), optional „drippt“ er nur wenige Seiten je Lauf
|
||||
- hat einen separaten **Ingest** nach deiner Memory-API (`/store`), kompatibel zu deiner `memory-api`
|
||||
|
||||
## Schnellstart
|
||||
```bash
|
||||
# 1) installieren
|
||||
bash recipes/services/rag-crawler/install.sh
|
||||
|
||||
# 2) Quellen bearbeiten
|
||||
nano /srv/ai/rag-crawler/crawler/sources.yml
|
||||
|
||||
# 3) Crawl (vollständig/regelmäßig)
|
||||
source /srv/ai/rag-crawler/venv/bin/activate
|
||||
python3 /srv/ai/rag-crawler/crawler/main.py --mode=update
|
||||
|
||||
# 4) „Drip“-Modus (z.B. stündlich je Domain nur 1 URL)
|
||||
python3 /srv/ai/rag-crawler/crawler/main.py --mode=drip --budget 1
|
||||
|
||||
# 5) Ingest aller neuen/aktualisierten Texte in die Memory-API
|
||||
python3 /srv/ai/rag-crawler/crawler/ingest.py --root /srv/ai/corpus --memory http://127.0.0.1:8085
|
||||
```
|
||||
|
||||
## Scheduling (Beispiele)
|
||||
- Crontab:
|
||||
`@hourly source /srv/ai/rag-crawler/venv/bin/activate && python3 /srv/ai/rag-crawler/crawler/main.py --mode=drip --budget 1`
|
||||
`*/10 * * * * source /srv/ai/rag-crawler/venv/bin/activate && python3 /srv/ai/rag-crawler/crawler/ingest.py --root /srv/ai/corpus --memory http://127.0.0.1:8085`
|
||||
- systemd Timer (optional): siehe `EXTRAS.md`
|
||||
|
||||
## Ordner
|
||||
- `/srv/ai/rag-crawler` – Crawler + venv
|
||||
- `/srv/ai/corpus` – Rohdaten (Text/PDF) + `.crawler_state.json`
|
||||
|
||||
## Hinweis
|
||||
- **Keine ENV notwendig** – alle Werte werden interaktiv abgefragt oder in `sources.yml` gepflegt.
|
||||
Reference in New Issue
Block a user