Sul on juba korralik komplekt olemas – Ollama, Qwen 14B ja Qdrant. Nüüd lisame AnythingLLM-i, mis oskab kõiki neid komponente kenasti kokku siduda.
Allpool on täielik docker-compose.yml, mis arvestab sinu olemasoleva seadistusega.
# docker-compose.yml
# Salvesta see kataloogi ~/anythingllm/ ja käivita: docker compose up -d
services:
anythingllm:
image: mintplexlabs/anythingllm:latest
container_name: anythingllm
restart: unless-stopped
ports:
- "3002:3001"
volumes:
- /data/docker/anythingllm/storage:/app/server/storage
- /data/docker/anythingllm/logs:/app/server/logs
- /backups/docker/anythingllm:/backups
- /etc/localtime:/etc/localtime:ro
environment:
# Üldine
- NODE_ENV=production
- PORT=3001
- STORAGE_DIR=/app/server/storage
- SETUP=true
# Autentimine (muuda kindlasti ära!)
- AUTH_TOKEN=dwNs55RkiwSEC3TxQG0P
- JWT_SECRET=muuda-see-samuti-turvaliseks
# Andmebaas (AnythingLLM-i enda SQLite, mitte vektorbaas)
- DATA_DIR=/app/server/storage
# LLM – sinu juba töötav Ollama
- LLM_PROVIDER=ollama
- OLLAMA_BASE_PATH=http://host.docker.internal:11434
- OLLAMA_MODEL_PREF=qwen2.5:14b-instruct
- OLLAMA_MODEL_TOKEN_LIMIT=8192
# Embedding-mudel (samuti Ollamast või eraldi)
- EMBEDDING_ENGINE=ollama
- EMBEDDING_BASE_PATH=http://host.docker.internal:11434
- EMBEDDING_MODEL_PREF=nomic-embed-text:latest
- EMBEDDING_MODEL_MAX_CHUNK_LENGTH=8192
# Vektorbaas – sinu olemasolev Qdrant
- VECTOR_DB=qdrant
- QDRANT_ENDPOINT=http://host.docker.internal:6333
#- QDRANT_URI=http://qdrant:6333
# Kui Qdrant-il pole API võtit (vaikeseadistus), jäta tühjaks või kommenteeri välja
# - QDRANT_API_KEY=sinu-api-võti-kui-on
# Võimalik lisada ka transkriptsiooniks, aga pole kohustuslik
# - WHISPER_PROVIDER=local
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- ai_network
networks:
ai_network:
external: true
name: main_ai_network
API võti
ardok_anythingllm
AYKT87V-TYFMEYX-KG1411R-MYEYQ2Q
[[AnythingLLM API]] - vaata API päringute näiteid [[Qdrant]] - vektorbaas
Docker volume'i kustutamine
# Eemalda absoluutselt kõik storage kataloogist (ka peidetud failid)
sudo rm -rf /data/docker/anythingllm/storage/* /data/docker/anythingllm/storage/.* 2>/dev/null
sudo rm -rf /data/docker/anythingllm/logs/* /data/docker/anythingllm/logs/.* 2>/dev/null
Qdrant vajab tekstide vektoriseerimiseks embedding-mudelit. Kõige lihtsam on kasutada Ollamat:
ollama pull nomic-embed-text:latest
See on kerge (~274 MB), töötab kiiresti ja toetab paljusid keeli (sh eesti keelt mõistlikul tasemel).
mkdir -p ~/anythingllm/storage ~/anythingllm/logs
cd ~/anythingllm
docker compose up -d
Seejärel ava brauseris http://localhost:3001. Esimesel käivitamisel palub AnythingLLM sul luua tööruumi (workspace) ja seadistada andmebaasi. Järgi viisardit – see peaks automaatselt tuvastama sinu compose-failis määratud seaded.
Kui su Qdrant jookseb samuti Dockeri konteineris, siis lisa see samasse compose-faili, et nad jagaksid sama Dockeri võrku:
# Lisa olemasoleva anythingllm teenuse alla või eraldi faili:
qdrant:
image: qdrant/qdrant:latest
container_name: qdrant
restart: unless-stopped
ports:
- "6333"
volumes:
- ./qdrant_storage:/qdrant/storage
networks:
- anythingllm_network
Ja muuda QDRANT_ENDPOINT väärtuseks http://qdrant:6333 (Dockeri sisene teenuse nimi).
docker exec -u 0 anythingllm npm install -g bcryptjs
docker exec -u 0 -it anythingllm bash
# Kontrolli onboarding lipu väärtust
sqlite3 /data/docker/anythingllm/storage/anythingllm.db "SELECT label, value FROM system_settings WHERE label = 'onboarding_complete';"
# Muuda seda väärtuseks False
sqlite3 /data/docker/anythingllm/storage/anythingllm.db "UPDATE system_settings SET value = 'false' WHERE label = 'onboarding_complete';"
# Users tabeli struktuur
sqlite3 /data/docker/anythingllm/storage/anythingllm.db ".schema users"
# Tabelite struktuur
sqlite3 /data/docker/anythingllm/storage/anythingllm.db ".tables"