services: llm: image: ollama/ollama:latest profiles: ["linux"] ports: - 11434:11434 networks: - net pull-model: image: genai-stack/pull-model:latest build: dockerfile: pull_model.Dockerfile environment: - OLLAMA_BASE_URL=${OLLAMA_BASE_URL-http://host.docker.internal:11434} - LLM networks: - net database: image: neo4j:5.11 ports: - 7687:7687 - 7474:7474 volumes: - $PWD/data:/data environment: - NEO4J_AUTH=${NEO4J_USERNAME-neo4j}/${NEO4J_PASSWORD-password} - NEO4J_PLUGINS=["apoc"] - NEO4J_db_tx__log_rotation_retention__policy=false healthcheck: test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider localhost:7474 || exit 1"] interval: 5s timeout: 3s retries: 5 networks: - net loader: build: dockerfile: loader.Dockerfile volumes: - $PWD/embedding_model:/embedding_model environment: - NEO4J_URI=${NEO4J_URI-neo4j://database:7687} - NEO4J_PASSWORD=${NEO4J_PASSWORD-password} - NEO4J_USERNAME=${NEO4J_USERNAME-neo4j} - OPENAI_API_KEY=${OPENAI_API_KEY} - OLLAMA_BASE_URL=${OLLAMA_BASE_URL-http://host.docker.internal:11434} - EMBEDDING_MODEL=${EMBEDDING_MODEL-sentence_transformer} - LANGCHAIN_ENDPOINT=${LANGCHAIN_ENDPOINT-"https://api.smith.langchain.com"} - LANGCHAIN_TRACING_V2=${LANGCHAIN_TRACING_V2-false} - LANGCHAIN_PROJECT=${LANGCHAIN_PROJECT} - LANGCHAIN_API_KEY=${LANGCHAIN_API_KEY} networks: - net depends_on: database: condition: service_healthy pull-model: condition: service_completed_successfully ports: - 8081:8080 - 8502:8502 x-develop: watch: - action: rebuild path: . ignore: - bot.py - pdf_bot.py bot: build: dockerfile: bot.Dockerfile volumes: - $PWD/embedding_model:/embedding_model environment: - NEO4J_URI=${NEO4J_URI-neo4j://database:7687} - NEO4J_PASSWORD=${NEO4J_PASSWORD-password} - NEO4J_USERNAME=${NEO4J_USERNAME-neo4j} - OPENAI_API_KEY=${OPENAI_API_KEY} - OLLAMA_BASE_URL=${OLLAMA_BASE_URL-http://host.docker.internal:11434} - LLM=${LLM-llama2} - EMBEDDING_MODEL=${EMBEDDING_MODEL-sentence_transformer} - LANGCHAIN_ENDPOINT=${LANGCHAIN_ENDPOINT-"https://api.smith.langchain.com"} - LANGCHAIN_TRACING_V2=${LANGCHAIN_TRACING_V2-false} - LANGCHAIN_PROJECT=${LANGCHAIN_PROJECT} - LANGCHAIN_API_KEY=${LANGCHAIN_API_KEY} networks: - net depends_on: database: condition: service_healthy pull-model: condition: service_completed_successfully x-develop: watch: - action: rebuild path: . ignore: - loader.py - pdf_bot.py ports: - 8501:8501 pdf_bot: build: dockerfile: pdf_bot.Dockerfile environment: - NEO4J_URI=${NEO4J_URI-neo4j://database:7687} - NEO4J_PASSWORD=${NEO4J_PASSWORD-password} - NEO4J_USERNAME=${NEO4J_USERNAME-neo4j} - OPENAI_API_KEY=${OPENAI_API_KEY} - OLLAMA_BASE_URL=${OLLAMA_BASE_URL-http://host.docker.internal:11434} - LLM=${LLM-llama2} - EMBEDDING_MODEL=${EMBEDDING_MODEL-sentence_transformer} - LANGCHAIN_ENDPOINT=${LANGCHAIN_ENDPOINT-"https://api.smith.langchain.com"} - LANGCHAIN_TRACING_V2=${LANGCHAIN_TRACING_V2-false} - LANGCHAIN_PROJECT=${LANGCHAIN_PROJECT} - LANGCHAIN_API_KEY=${LANGCHAIN_API_KEY} networks: - net depends_on: database: condition: service_healthy pull-model: condition: service_completed_successfully x-develop: watch: - action: rebuild path: . ignore: - loader.py - bot.py ports: - 8503:8503 networks: net: