## 1. RAG Parameetrite Optimeerimine (KÕIGE OLULISEM) Kuna sul on **suured JSON failid** (186K tokenit) ja **palju dokumente** (1000+), pead RAG seadeid täpsustama: ### Praegu sinu docker-compose'is: ```yaml - CHUNK_SIZE=600 # ✅ Hea algus - CHUNK_OVERLAP=80 # ✅ Hea algus - RAG_TOP_K=5 # ✅ Hea algus ``` ### Soovituslikud täiendused: ```yaml # RAG & EMBEDDINGS - Optimeeritud suurte andmekogumite jaoks - ENABLE_RAG_WEB_SEARCH=true - RAG_EMBEDDING_ENGINE=ollama - RAG_EMBEDDING_MODEL=nomic-embed-text:latest # CHUNK SEADED (teadusartiklitele) - CHUNK_SIZE=600 # Hea artikli lõikude jaoks - CHUNK_OVERLAP=80 # 13% overlap (piisav kontekst) - CHUNK_MIN_SIZE=200 # Väldi liiga väikseid chunke # RETRIEVAL SEADED - RAG_TOP_K=5 # Mitu chunki tuuakse (5-10 on hea) - RAG_RELEVANCE_THRESHOLD=0.5 # Minimaalne relevantsi skoor (0.0-1.0) - RAG_RERANKING_MODEL= # Tühi = ei kasuta reranking'ut (lisa kui vaja) # TEXT EXTRACTION - PDF_EXTRACT_IMAGES=true # Ekstraheeri ka pildid PDF-dest - ENABLE_RAG_LOCAL_WEB_FETCH=true # Luba kohalike URL-ide fetch - CONTENT_EXTRACTION_ENGINE=default # 'default' või 'tika' (Tika = rohkem formaate) # HYBRID SEARCH (täpsustab otsingutulemusi) - RAG_ENABLE_HYBRID_SEARCH=true # Kombineerib vektori- ja tekstiotsingut - RAG_HYBRID_SEARCH_ALPHA=0.5 # 0.5 = 50% vektor, 50% tekst # FILE UPLOAD SEADED - ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION=true ``` *** ## 2. Embedding Mudeli Optimeerimine Praegu kasutad: `nomic-embed-text:latest` ### Alternatiivid suurematele andmekogumitele: ```yaml # Variant A: Nomic (praegune, hea üldine) - RAG_EMBEDDING_MODEL=nomic-embed-text:latest - RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODE=true # Variant B: all-minilm (kiirem, väiksem, vähem täpne) - RAG_EMBEDDING_MODEL=all-minilm:latest # Variant C: BGE (parem teadusartiklitele, suurem) - RAG_EMBEDDING_MODEL=bge-large:latest ``` **Soovitus:** Jää `nomic-embed-text` juurde - hea kompromiss kiiruse ja kvaliteedi vahel. **Kontrolli, et mudel on alla laaditud:** ```bash docker exec ollama ollama list # Peaks nägema: nomic-embed-text:latest # Kui puudub, laadi alla: docker exec ollama ollama pull nomic-embed-text:latest ``` *** ## 3. Konteksti Akna Suurendamine Praegu: ```yaml - CHAT_CONTEXT_WINDOW=8192 ``` Kuna sinu mudel toetab suuremat konteksti, **suurenda**: ```yaml - CHAT_CONTEXT_WINDOW=32768 # Või 65536 kui llama-server toetab ``` See peab vastama llama-serveri `--ctx-size` väärtusele. *** ## 4. Knowledge Base Reindexeerimine Pärast RAG parameetrite muutmist **PEAD reindexeerima** olemasolevaid teadmiste baase: ### UI kaudu: 1. **Open WebUI → Workspace → Knowledge** 2. **Vali oma Knowledge baas** (nt "Teadusartiklid") 3. **Kolm punkti (...) → "Reindex"** 4. **Oota, kuni valmis** (võib võtta aega) ### Või API kaudu: ```bash # Hangi Knowledge ID curl http://localhost:3000/api/v1/knowledge \ -H "Authorization: Bearer YOUR_API_KEY" # Reindex curl -X POST http://localhost:3000/api/v1/knowledge/KNOWLEDGE_ID/reindex \ -H "Authorization: Bearer YOUR_API_KEY" ``` *** ## 5. Qdrant Kollektsioonide Optimeerimine Qdrant loob automaatselt kollektsioone, aga võid parameetreid optimeerida. ### Kontrolli Qdrant'i: ```bash # Vaata kollektsioone curl http://localhost:6333/collections # Peaks nägema midagi stiilis: # { # "result": { # "collections": [ # {"name": "documents"} # ] # } # } ``` ### Optimeeri Qdrant (valikuline): Loo `/data/docker/open-webui/qdrant-config.yaml`: ```yaml storage: # Optimeeri suurtele andmekogumitele hnsw_ef_construct: 100 # Default: 100 (suurendades = täpsem, aeglasem indekseerimine) hnsw_m: 16 # Default: 16 (suurendades = täpsem otsing, rohkem mälu) # Mälu optimeerimine on_disk: false # Hoia vektorid RAM-is (kiirem, aga vajab rohkem mälu) # on_disk: true # Kui vektoreid on väga palju (>1M) service: max_request_size_mb: 256 # Suurenda kui suur failide hulk ``` *** ## 6. PostgreSQL Indeksite Lisamine Open WebUI kasutab Postgres'i metadata jaoks. Lisa indeksid parema jõudluse jaoks: ```bash # Ühenda Postgresega docker exec -it postgres_postgis psql -U ai_user -d openwebui_db # Lisa indeksid CREATE INDEX IF NOT EXISTS idx_knowledge_created_at ON knowledge (created_at DESC); CREATE INDEX IF NOT EXISTS idx_knowledge_user_id ON knowledge (user_id); CREATE INDEX IF NOT EXISTS idx_document_knowledge_id ON document (knowledge_id); CREATE INDEX IF NOT EXISTS idx_chat_user_id ON chat (user_id); CREATE INDEX IF NOT EXISTS idx_message_chat_id ON message (chat_id); # Väljumine \q ``` *** ## 7. Failide Üleslaadimise Optimeerim Praegu: ```yaml - FILE_UPLOAD_MAX_SIZE=100 # 100MB - FILE_UPLOAD_ALLOWED_TYPES=.pdf,.txt,.md,.csv,.json,.xml ``` ### Täiendused: ```yaml # FAILIDE ÜLESLAADMINE - UPLOAD_DIR=/app/backend/data/uploads - ENABLE_FILE_UPLOAD=true - FILE_UPLOAD_MAX_SIZE=100 # MB (suurenda kui vaja) - FILE_UPLOAD_ALLOWED_TYPES=.pdf,.txt,.md,.csv,.json,.xml,.docx,.xlsx,.html # BATCH UPLOAD (mitme faili korraga) - FILE_UPLOAD_BATCH_SIZE=10 # Korraga 10 faili - FILE_UPLOAD_CONCURRENT_WORKERS=4 # 4 paralleelset töötlejat # FILE PROCESSING - ENABLE_RAG_HYBRID_SEARCH=true - PDF_EXTRACT_IMAGES=true - ENABLE_IMAGE_GENERATION=false # Kui ei vaja piltide genereerimist ``` *** ## 8. Admin Panel Seaded Pärast sisselogimist Open WebUI-sse: ### Admin Panel → Settings → Documents: ``` Chunk Size: 600 Chunk Overlap: 80 Top K: 5 Embedding Model: nomic-embed-text:latest Hybrid Search: ☑️ Enabled ``` ### Admin Panel → Settings → Interface: ``` Default Model: (vali oma llama.cpp mudel) Context Length: 32768 (või 65536) Enable Message Suggestions: ☑️ Show Username: ☑️ ``` ### Admin Panel → Settings → Audio: Kui kasutad häälesisestust (Whisper): ``` STT Engine: Whisper STT Model: http://100.87.1.24:8070/v1 TTS Engine: openedai-speech ``` *** ## 9. Workspace'i Kasutamine Nüüd saad luua kohandatud mudeleid: ### Loo kohandatud teadusartiklite mudel: 1. **Workspace → Models → + New Model** 2. **Seaded:** - **Model Name**: "Teadusartiklite Analüüsija" - **Base Model**: Vali oma llama.cpp mudel - **System Prompt**: ``` Sa oled ekspert teadusartiklite analüüsija. Sinu ülesanded: - Analüüsida teadusartikleid põhjalikult - Tuvastada uurimisküsimused, metoodika, tulemused - Hinnata uuringu kvaliteeti kriitiliselt - Pakkuda soovitusi uute artiklite kirjutamiseks Vastused peavad olema: - Täpsed ja faktilistele andmetele tuginevad - Struktureeritud ja loogilised - Eesti keeles (kui ei ole teisiti palutud) - Akadeemilises stiilis ``` - **Knowledge**: Vali "Teadusartiklid" (või sinu loodud Knowledge baas) - **Temperature**: 0.7 - **Top P**: 0.9 - **Max Tokens**: 4096 3. **Salvesta** *** ## 10. Promptide Loomine Loo sagedasti kasutatavaid prompte: ### Näide 1: Artikli Kokkuvõte **Workspace → Prompts → + New Prompt** ``` Title: Artikli Analüüs Command: /analyysi Content: Analüüsi järgmist teadusartiklit: **Artikkel:** {{article_text | textarea:required}} **Paku:** 1. Peamine uurimisküsimus 2. Kasutatud metoodika 3. Põhilised tulemused 4. Piirangud ja kriitika 5. Praktiline rakendatavus 6. Seotud uurimissuunad ``` ### Näide 2: Kirjanduse Ülevaade ``` Title: Kirjanduse Ülevaade Command: /kirjandus Content: Loo kirjanduse ülevaade järgmisel teemal: **Teema:** {{topic | input:required}} **Ajavahemik:** {{years | input}} **Kasuta Knowledge baasi artikleid ja paku:** 1. Peamised uurimissuunad 2. Olulisemad leiud 3. Uurimislüngad 4. Tuleviku perspektiivid ``` *** ## 11. Monitoring ja Logid ### Kontrolli Qdrant'i kasutust: ```bash # Vaata Qdrant kollektsioone curl http://localhost:6333/collections | jq # Vaata kollektsiooni infot curl http://localhost:6333/collections/documents | jq # Peaks nägema: # - vectors_count: mitu vektorit on salvestatud # - indexed_vectors_count: mitu on indekseeritud ``` ### Kontrolli Open WebUI logisid: ```bash # Vaata RAG toiminguid docker logs open-webui | grep -i "rag\|embedding\|chunk" # Vaata Qdrant ühendusi docker logs open-webui | grep -i "qdrant" ``` *** ## 12. Backup ja Restore ### Qdrant backup: ```bash # Loo snapshot curl -X POST http://localhost:6333/collections/documents/snapshots # Lae alla snapshot # Vaata Docker volume'i: qdrant_data:/qdrant/storage/snapshots/ # Kopeeri backup docker cp qdrant:/qdrant/storage/snapshots/ /backup/qdrant/ ``` ### PostgreSQL backup: ```bash # Loo dump docker exec postgres_postgis pg_dump -U ai_user openwebui_db > /backup/openwebui_db.sql # Restore docker exec -i postgres_postgis psql -U ai_user openwebui_db < /backup/openwebui_db.sql ``` *** ## 13. Jõudluse Optimeerimine ### Kui Open WebUI on aeglane: ```yaml # docker-compose.yml - lisa open-webui alla: deploy: resources: limits: cpus: '4' memory: 8G reservations: cpus: '2' memory: 4G ``` ### Kui Qdrant on aeglane: ```yaml # docker-compose.yml - qdrant sektsioon: environment: - QDRANT__STORAGE__OPTIMIZERS__INDEXING_THRESHOLD=20000 # Optimeeri indekseerimist - QDRANT__STORAGE__WAL__WAL_CAPACITY_MB=256 # Suurenda WAL puhvrit ``` *** ## 14. Turvalisuse Parandused (Production'is) ```yaml # Eemalda CORS wildcard - CORS_ALLOW_ORIGIN=http://localhost:3000,http://100.87.1.24:3000 # Lisa JWT secret - WEBUI_JWT_SECRET_KEY=genereeri_turvaline_random_string_256bit # Keela signup - ENABLE_SIGNUP=false # SSL Cookie - WEBUI_SESSION_COOKIE_SECURE=true # Ainult HTTPS-ga - WEBUI_SESSION_COOKIE_SAME_SITE=strict ``` *** ## 15. API Integratsioon (Programmiline Kasutus) Kui tahad kasutada Python skripte: ```python import requests # Open WebUI API BASE_URL = "http://localhost:3000" API_KEY = "sk-xxxxx" # Hangi Admin Panel → Settings → Account → API Keys headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } # Küsi mudelilt response = requests.post( f"{BASE_URL}/api/chat", headers=headers, json={ "model": "llama-cpp-server", "messages": [ {"role": "user", "content": "Analüüsi artikklit ID 123"} ], "stream": False } ) print(response.json()) ``` *** ## Kokkuvõte - Prioriteedid ### ✅ Tee kindlasti: 1. **Reindex Knowledge baasi** pärast chunk size muutmist 2. **Kontrolli embedding mudeli olemasolu** (`ollama list`) 3. **Suurenda CHAT_CONTEXT_WINDOW** → 32768 või 65536 4. **Loo kohandatud mudel** teadusartiklitele (Workspace → Models) ### ⚡ Tee kui on aega: 5. Lisa PostgreSQL indeksid (jõudlus) 6. Loo kasulikud promptid (/analyysi, /kirjandus) 7. Optimeeri Qdrant seaded (kui >10K dokumenti) 8. Seadista backup'id ### 🔮 Tee tulevikus: 9. Lisa Reranking mudel (täpsem RAG) 10. Integreeri SearXNG web search 11. Loo API skriptid automatiseerimiseks 12. Lisa SSL ja täiustatud turvalisus