Added draft base for AI assistant

This commit is contained in:
2025-09-22 11:14:50 +02:00
parent d523629cdd
commit 78ebf4d075
4 changed files with 191 additions and 0 deletions

View File

@@ -0,0 +1,106 @@
{% include 'roles/docker-compose/templates/base.yml.j2' %}
# ===== LLM / Modelle =====
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: unless-stopped
ports:
- "11434:11434" # Ollama API
volumes:
- ollama_models:/root/.ollama
{% include 'roles/docker-container/templates/networks.yml.j2' %}
openwebui:
image: ghcr.io/open-webui/open-webui:main
container_name: openwebui
restart: unless-stopped
depends_on: [ollama]
ports:
- "3001:8080"
environment:
- OLLAMA_BASE_URL=http://ollama:11434
- OFFLINE_MODE=1 # blockt Netz-Zugriffe der App
- HF_HUB_OFFLINE=1 # zwingt HF-Client in Offline-Mode
- ENABLE_PERSISTENT_CONFIG=False # nimm ENV 1:1, ignoriere persistente Defaults
volumes:
- openwebui_data:/app/backend/data
{% include 'roles/docker-container/templates/networks.yml.j2' %}
# ===== Model/Tool Proxy (OpenAI-kompatibel) =====
litellm:
image: ghcr.io/berriai/litellm:main-v1.77.3.dynamic_rates
container_name: litellm
restart: unless-stopped
depends_on: [ollama]
ports: ["4000:4000"]
environment:
- LITELLM_MASTER_KEY=dummy-key
- LITELLM_CONFIG=/etc/litellm/config.yaml
volumes:
- ./litellm.config.yaml:/etc/litellm/config.yaml:ro
command: >
--host 0.0.0.0
--port 4000
--config /etc/litellm/config.yaml
{% include 'roles/docker-container/templates/networks.yml.j2' %}
# ===== VectorDB =====
qdrant:
image: qdrant/qdrant:latest
container_name: qdrant
restart: unless-stopped
ports:
- "6333:6333" # HTTP
- "6334:6334" # gRPC
volumes:
- qdrant_data:/qdrant/storage
{% include 'roles/docker-container/templates/networks.yml.j2' %}
# ===== Flow/Orchestrator =====
flowise:
image: flowiseai/flowise:latest
container_name: flowise
restart: unless-stopped
depends_on: [qdrant, litellm]
ports:
- "3000:3000"
environment:
- PORT=3000
- FLOWISE_USERNAME=admin
- FLOWISE_PASSWORD=admin
- DATABASE_PATH=/root/.flowise
- FLOWISE_FILE_STORAGE_PATH=/root/.flowise/storage
# Qdrant + LiteLLM/Ollama:
- QDRANT_URL=http://qdrant:6333
- OPENAI_API_BASE=http://litellm:4000/v1
- OPENAI_API_KEY=dummy-key
volumes:
- flowise_data:/root/.flowise
{% include 'roles/docker-container/templates/networks.yml.j2' %}
# ===== Knowledge (Optional: DMS/Bucket für Dokumente) =====
minio:
image: quay.io/minio/minio:latest
container_name: minio
restart: unless-stopped
networks: [ai]
ports:
- "9000:9000" # S3 API
- "9001:9001" # Console
environment:
- MINIO_ROOT_USER=admin
- MINIO_ROOT_PASSWORD=adminadmin
command: server /data --console-address ":9001"
volumes:
- minio_data:/data
{% include 'roles/docker-container/templates/networks.yml.j2' %}
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
ollama_models:
openwebui_data:
qdrant_data:
flowise_data:
minio_data:

View File

@@ -0,0 +1,15 @@
model_list:
- model_name: ollama/llama3
litellm_params:
model: ollama/llama3
api_base: http://ollama:11434
rpm: 1000
- model_name: ollama/nomic-embed-text
litellm_params:
model: ollama/nomic-embed-text
api_base: http://ollama:11434
rpm: 1000
litellm_settings:
drop_params: true
set_verbose: true