Files
pv-agent/compose.yaml
T

63 lines
1.8 KiB
YAML

name: pv-agent
services:
pv-agent:
build:
context: .
dockerfile: Dockerfile
image: pv-agent:local
restart: unless-stopped
init: true
user: "${PUID:-1000}:${PGID:-1000}"
ports:
- "100.103.83.12:${PV_PORT:-8080}:8080"
environment:
OLLAMA_URL: "${OLLAMA_URL:-http://ollama:11434}"
PV_ANSWER_MODEL: "${PV_ANSWER_MODEL:-qwen3.8:27b}"
PV_EMBED_MODEL: "${PV_EMBED_MODEL:-bge-m3}"
PV_DB_PATH: /app/data/index.db
PV_KB_DIR: /app/wissensbasis
PV_PORT: "8080"
PV_API_KEY: "${PV_API_KEY:?PV_API_KEY muss gesetzt sein}"
PV_ADMIN_API_KEY: "${PV_ADMIN_API_KEY:-}"
PV_THINK: "${PV_THINK:-false}"
PV_NUM_CTX: "${PV_NUM_CTX:-32768}"
PV_MAX_CONTEXT_CHARS: "${PV_MAX_CONTEXT_CHARS:-90000}"
PV_NUM_PREDICT: "${PV_NUM_PREDICT:-2048}"
PV_CANDIDATE_POOL: "${PV_CANDIDATE_POOL:-150}"
PV_RRF_K: "${PV_RRF_K:-20}"
PV_DENSE_WEIGHT: "${PV_DENSE_WEIGHT:-2.0}"
PV_CONTEXT_BLOCKS: "${PV_CONTEXT_BLOCKS:-8}"
PV_PER_QUERY_SLOTS: "${PV_PER_QUERY_SLOTS:-2}"
PV_SURVEY_BLOCKS: "${PV_SURVEY_BLOCKS:-16}"
volumes:
- ./data:/app/data
- ./wissensbasis:/app/wissensbasis:ro
networks:
- ollama-default
read_only: true
tmpfs:
- /tmp:size=64m,mode=1777
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
healthcheck:
test:
- CMD
- python
- -c
- >-
import json, urllib.request;
d=json.load(urllib.request.urlopen('http://127.0.0.1:8080/v1/health', timeout=5));
raise SystemExit(0 if d.get('status') == 'ok' else 1)
interval: 30s
timeout: 10s
retries: 5
start_period: 30s
networks:
ollama-default:
external: true
name: ollama-default