File size: 1,687 Bytes
7ff7119
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
services:
  # ---------------------------------------------------------------------------
  # Streamlit + LangGraph backend
  # ---------------------------------------------------------------------------
  langgraph-app:
    build: .
    image: paperhawk:latest
    container_name: document-intelligence-amd
    ports:
      - "8501:8501"
    env_file:
      - .env
    environment:
      # Default vLLM — overridable via .env or shell export
      - LLM_PROFILE=${LLM_PROFILE:-vllm}
      - VLLM_BASE_URL=${VLLM_BASE_URL:-http://localhost:8000/v1}
      - VLLM_MODEL=${VLLM_MODEL:-Qwen/Qwen2.5-14B-Instruct}
      - OLLAMA_BASE_URL=http://ollama:11434
    volumes:
      # AsyncSqliteSaver checkpointer persists across restarts
      - ./data:/app/data
      # ChromaDB persistent vector store
      - ./chroma_db:/app/chroma_db
    depends_on:
      ollama:
        condition: service_healthy
        required: false
    restart: unless-stopped

  # ---------------------------------------------------------------------------
  # Ollama LLM server (OPTIONAL profile — local dev fallback)
  # ---------------------------------------------------------------------------
  # Start:  docker compose --profile ollama up -d
  # Model:  docker compose exec ollama ollama pull qwen2.5:7b-instruct
  ollama:
    image: ollama/ollama:latest
    container_name: document-intelligence-amd-ollama
    profiles: ["ollama"]
    ports:
      - "11434:11434"
    volumes:
      - ollama_models:/root/.ollama
    healthcheck:
      test: ["CMD", "ollama", "list"]
      interval: 10s
      timeout: 5s
      retries: 10
      start_period: 30s
    restart: unless-stopped

volumes:
  ollama_models: