Repository navigation
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
96 lines (92 loc) · 3.48 KB
/
Copy pathdocker-compose.yml
File metadata and controls
96 lines (92 loc) · 3.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
services:
ollama:
image: ollama/ollama:latest
container_name: skn-ollama
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:11434/api/tags"]
interval: 10s
timeout: 5s
retries: 5
networks:
- agentic-rag-net
backend:
build:
context: .
dockerfile: backend/Dockerfile
container_name: skn-backend
depends_on:
ollama:
condition: service_healthy
ports:
- "8000:8000"
environment:
OLLAMA_BASE_URL: ${OLLAMA_BASE_URL:-http://ollama:11434}
OLLAMA_CHAT_MODEL: ${OLLAMA_CHAT_MODEL:-qwen3.5:4b}
OLLAMA_EMBEDDING_MODEL: ${OLLAMA_EMBEDDING_MODEL:-nomic-embed-text:latest}
CHROMA_COLLECTION_NAME: ${CHROMA_COLLECTION_NAME:-knowledge_base}
CHROMA_PERSIST_DIRECTORY: /data/chroma
RETRIEVAL_TOP_K: ${RETRIEVAL_TOP_K:-4}
RETRIEVAL_PER_QUERY_K: ${RETRIEVAL_PER_QUERY_K:-4}
RETRIEVAL_BM25_K: ${RETRIEVAL_BM25_K:-6}
RETRIEVAL_MIN_SCORE: ${RETRIEVAL_MIN_SCORE:-0.42}
RETRIEVAL_MIN_CHUNKS: ${RETRIEVAL_MIN_CHUNKS:-3}
RETRIEVAL_MIN_SOURCE_DIVERSITY: ${RETRIEVAL_MIN_SOURCE_DIVERSITY:-2}
RERANK_ENABLED: ${RERANK_ENABLED:-true}
DEBUG_TRACE_ENABLED: ${DEBUG_TRACE_ENABLED:-false}
MAX_RETRIEVAL_RETRIES: ${MAX_RETRIEVAL_RETRIES:-1}
MAX_VALIDATION_RETRIES: ${MAX_VALIDATION_RETRIES:-1}
RUNTIME_PROFILE: ${RUNTIME_PROFILE:-balanced}
LOW_LATENCY_SKIP_OVERLAP_CHECK: ${LOW_LATENCY_SKIP_OVERLAP_CHECK:-true}
MODEL_TEMPERATURE: ${MODEL_TEMPERATURE:-1.0}
MODEL_TOP_P: ${MODEL_TOP_P:-0.95}
MODEL_TOP_K: ${MODEL_TOP_K:-20}
MODEL_MIN_P: ${MODEL_MIN_P:-0.0}
MODEL_PRESENCE_PENALTY: ${MODEL_PRESENCE_PENALTY:-1.5}
MODEL_REPETITION_PENALTY: ${MODEL_REPETITION_PENALTY:-1.0}
MODEL_REQUEST_TIMEOUT_SECONDS: ${MODEL_REQUEST_TIMEOUT_SECONDS:-45}
LOW_LATENCY_MODEL_REQUEST_TIMEOUT_SECONDS: ${LOW_LATENCY_MODEL_REQUEST_TIMEOUT_SECONDS:-25}
LOW_LATENCY_MAX_OUTPUT_TOKENS: ${LOW_LATENCY_MAX_OUTPUT_TOKENS:-300}
MODEL_MAX_OUTPUT_TOKENS: ${MODEL_MAX_OUTPUT_TOKENS:-420}
CHUNK_SIZE: ${CHUNK_SIZE:-1200}
CHUNK_OVERLAP: ${CHUNK_OVERLAP:-200}
ALLOWED_SOURCE_DOMAINS: ${ALLOWED_SOURCE_DOMAINS:-support.atlassian.com,confluence.atlassian.com,docs.langchain.com,python.langchain.com,langchain.com,atlassian.com,www.atlassian.com,www.langchain.com,arxiv.org,cdn.openai.com,openai.com,www.openai.com,anthropic.com,www.anthropic.com,ai.google.dev,developers.google.com,research.google,paperswithcode.com,langchain-ai.github.io,github.io}
PUBLIC_SOURCES_ONLY: ${PUBLIC_SOURCES_ONLY:-true}
volumes:
- chroma_data:/data/chroma
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
networks:
- agentic-rag-net
frontend:
image: node:20-alpine
container_name: skn-frontend
depends_on:
backend:
condition: service_healthy
working_dir: /app/react-frontend
ports:
- "5173:5173"
volumes:
- .:/app
- /app/react-frontend/node_modules
environment:
VITE_BACKEND_URL: http://localhost:8000
VITE_BACKEND_STREAM_URL: http://localhost:8000/chat/stream
NODE_ENV: development
command: sh -c "npm install && npm run dev -- --host"
networks:
- agentic-rag-net
volumes:
chroma_data:
ollama_data:
networks:
agentic-rag-net:
driver: bridge