fd454c4d79011d974661934b5b884ed285f3ec0c
- Upload progress bar with percentage, file count, speed, ETA - Detects active upload from upload_*.log files automatically - Last 10 upload lines shown with ✓/✗ color coding - Combined log panel shows both setup.log and upload logs - Upload folder distribution in API response Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
AnythingLLM × Persona RAG Integration
29 persona workspace'i olan, 39,754 dosyalık (67 GB) kitap kütüphanesinden beslenen RAG sistemi. 88 mapped path, 0 unmapped içerik klasörü. Diskte duplicate yok — aynı klasör birden fazla persona'ya atanabiliyor, her workspace kendi vektör embedding'ini tutar.
Mimari
- AnythingLLM Desktop —
http://localhost:3001 - LLM: Ollama (qwen3:8b) via Olla load balancer
- Embedding: Ollama —
bge-m3:latest(1024d) via Olla - Vector DB: LanceDB
- Olla Proxy:
http://100.85.70.44:40114/olla/ollama - OCR: ocrmypdf (tur+eng)
- Kitap Kaynağı:
/mnt/storage/Common/Books/(39,754 dosya, 67 GB)
Personalar (5 Cluster)
| Cluster | Personalar |
|---|---|
| Intel | Frodo, Echo, Ghost, Oracle, Wraith, Scribe, Polyglot |
| Cyber | Neo, Bastion, Sentinel, Specter, Phantom, Cipher, Vortex |
| Military | Marshal, Centurion, Corsair, Warden, Medic |
| Humanities | Chronos, Tribune, Arbiter, Ledger, Sage, Herald, Scholar, Gambit |
| Engineering | Forge, Architect |
Kullanım
Durum Kontrolü
python3 setup.py --status
Monitor (CLI + Web)
python3 monitor.py # tek seferlik CLI
python3 monitor.py --watch # canlı terminal (2s refresh)
python3 monitor.py --web # web dashboard http://localhost:8899
python3 monitor.py --web 9000 # custom port
Workspace Oluştur / Güncelle
python3 setup.py --create-workspaces
python3 setup.py --create-workspaces --persona frodo
Tam Pipeline (upload + OCR + embed)
python3 setup.py --upload-documents --resume
python3 setup.py --upload-documents --cluster cyber --resume
python3 setup.py --upload-documents --persona neo --priority 1 --resume
python3 setup.py --upload-documents --dry-run
Re-assign (vektör recovery — tarama/upload yapmadan)
Dokümanlar zaten upload edilmiş ama vektörler silinmişse veya workspace atamaları bozulmuşsa:
python3 setup.py --reassign --reset # tüm workspace'ler
python3 setup.py --reassign --reset --cluster intel
python3 setup.py --reassign --reset --persona frodo
python3 setup.py --reassign --reset --dry-run # önizleme
python3 setup.py --reassign # sadece eksikleri tamamla
| Flag | Açıklama |
|---|---|
--reassign |
Disk taraması yapmadan mevcut dosyaları embed eder |
--reset |
Önce workspace_docs kaydını sıfırlar |
--verbose / -v |
Debug-level console + log çıktısı |
Embedding Doğrulama Sistemi
Script her embed işlemini 3 katmanlı doğrulamayla kontrol eder:
Her API Çağrısı
- 5 retry progressive backoff ile (Olla farklı instance'lara yönlendirebilir)
- API 200 dönse bile response body'de error kontrolü
- Art arda 5 fail → persona atlanır
İlk Batch Doğrulama
- LanceDB dosyası fiziksel olarak büyüdü mü?
- Workspace'e test sorgusu — vektörler aranabilir mi?
- Model hatası → tüm işlem ABORT
Persona Sonu — Triple Check
- LanceDB fiziksel:
.lancedizin boyutu ve dosya sayısı - Workspace API: Doküman sayısı kontrolü
- Search testi: Gerçek vektörel arama çalışıyor mu
Pre-flight
- Embedding modeli Olla üzerinden 3 kez test edilir (ilk yükleme 120s sürebilir)
- Model bulunamazsa hiç başlamaz
Pipeline
Phase A: Text dosyaları upload
Phase B: Scanned PDF'leri OCR (ocrmypdf)
Phase C: OCR'lı dosyaları upload
Final: Workspace'lere assign/embed (+ doğrulama)
--reassign modu sadece "Final" adımını çalıştırır.
Recovery
Vektör DB Silinirse
python3 setup.py --reassign --reset
Tek Persona Recovery
python3 setup.py --reassign --reset --persona frodo
Tam Sıfırlama
rm upload_progress.json
rm -rf ~/.config/anythingllm-desktop/storage/lancedb/*.lance
rm -rf ~/.config/anythingllm-desktop/storage/vector-cache/*
python3 setup.py --all
Dosyalar
| Dosya | Açıklama |
|---|---|
setup.py |
Ana entegrasyon scripti (upload, OCR, embed, reassign, verification) |
config.yaml |
Persona-klasör eşlemeleri (29 persona, 88 path), batch ayarları |
monitor.py |
CLI + web dashboard (progress, log tail, cluster view) |
setup.log |
Detaylı log dosyası (gitignore'd) |
upload_progress.json |
Upload/atama state tracker (gitignore'd) |
ocr_output/ |
OCR çıktıları (gitignore'd) |
Teknik Notlar
- Olla load balancer birden fazla Ollama instance'a dağıtır — embedding modeli her instance'da olmayabilir, bu yüzden her istek 5 retry yapılır
- Batch boyutu 5 doc — daha büyük batch'lerde AnythingLLM hang edebilir
- Batch arası 5 saniye bekleme (rate limit koruması)
direct-uploads/→/mnt/storage/anythingllm/direct-uploads/(HDD symlink, SSD tasarrufu)--resumeflag'i kesilen işlemi kaldığı yerden devam ettirir- Log dosyası line-buffered — arka planda çalışırken bile anlık yazılır
Description
Languages
Python
100%