services: cassandra: deploy: resources: limits: cpus: '1.0' memory: 800M reservations: cpus: '0.5' memory: 800M environment: JVM_OPTS: -Xms256M -Xmx256M image: docker.io/cassandra:4.1.6 ports: - 9042:9042 restart: on-failure:100 volumes: - cassandra:/var/lib/cassandra chunker: command: - chunker-token - -p - pulsar://pulsar:6650 - --chunk-size - '250' - --chunk-overlap - '15' deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 embeddings: command: - embeddings-hf - -p - pulsar://pulsar:6650 - -m - all-MiniLM-L6-v2 deploy: resources: limits: cpus: '1.0' memory: 400M reservations: cpus: '0.5' memory: 400M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 grafana: deploy: resources: limits: cpus: '1.0' memory: 256M reservations: cpus: '0.5' memory: 256M environment: GF_ORG_NAME: trustgraph.ai image: docker.io/grafana/grafana:11.1.4 ports: - 3000:3000 restart: on-failure:100 volumes: - grafana-storage:/var/lib/grafana - ./grafana/provisioning/:/etc/grafana/provisioning/dashboards/ - ./grafana/provisioning/:/etc/grafana/provisioning/datasources/ - ./grafana/dashboards/:/var/lib/grafana/dashboards/ graph-rag: command: - graph-rag - -p - pulsar://pulsar:6650 - --prompt-request-queue - non-persistent://tg/request/prompt-rag - --prompt-response-queue - non-persistent://tg/response/prompt-rag-response - --entity-limit - '50' - --triple-limit - '30' - --max-subgraph-size - '3000' deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 init-pulsar: command: - tg-init-pulsar - -p - http://pulsar:8080 deploy: resources: limits: cpus: '1' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 kg-extract-definitions: command: - kg-extract-definitions - -p - pulsar://pulsar:6650 deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 kg-extract-relationships: command: - kg-extract-relationships - -p - pulsar://pulsar:6650 deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 kg-extract-topics: command: - kg-extract-topics - -p - pulsar://pulsar:6650 deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 metering: command: - metering - -p - pulsar://pulsar:6650 deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 metering-rag: command: - metering - -p - pulsar://pulsar:6650 - -i - non-persistent://tg/response/text-completion-rag-response deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 pdf-decoder: command: - pdf-decoder - -p - pulsar://pulsar:6650 deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 prometheus: deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/prom/prometheus:v2.53.2 ports: - 9090:9090 restart: on-failure:100 volumes: - ./prometheus:/etc/prometheus/ - prometheus-data:/prometheus prompt: command: - prompt-generic - -p - pulsar://pulsar:6650 - --text-completion-request-queue - non-persistent://tg/request/text-completion - --text-completion-response-queue - non-persistent://tg/response/text-completion-response deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 prompt-rag: command: - prompt-generic - -p - pulsar://pulsar:6650 - -i - non-persistent://tg/request/prompt-rag - -o - non-persistent://tg/response/prompt-rag-response - --text-completion-request-queue - non-persistent://tg/request/text-completion-rag - --text-completion-response-queue - non-persistent://tg/response/text-completion-rag-response deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 pulsar: command: - bin/pulsar - standalone deploy: resources: limits: cpus: '2.0' memory: 1500M reservations: cpus: '1.0' memory: 1500M environment: PULSAR_MEM: -Xms600M -Xmx600M image: docker.io/apachepulsar/pulsar:3.3.1 ports: - 6650:6650 - 8080:8080 restart: on-failure:100 volumes: - pulsar-data:/pulsar/data qdrant: deploy: resources: limits: cpus: '1.0' memory: 256M reservations: cpus: '0.5' memory: 256M image: docker.io/qdrant/qdrant:v1.11.1 ports: - 6333:6333 - 6334:6334 restart: on-failure:100 volumes: - qdrant:/qdrant/storage query-doc-embeddings: command: - de-query-qdrant - -p - pulsar://pulsar:6650 - -t - http://qdrant:6333 deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 query-graph-embeddings: command: - ge-query-qdrant - -p - pulsar://pulsar:6650 - -t - http://qdrant:6333 deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 query-triples: command: - triples-query-cassandra - -p - pulsar://pulsar:6650 - -g - cassandra deploy: resources: limits: cpus: '0.5' memory: 512M reservations: cpus: '0.1' memory: 512M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 store-doc-embeddings: command: - de-write-qdrant - -p - pulsar://pulsar:6650 - -t - http://qdrant:6333 deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 store-graph-embeddings: command: - ge-write-qdrant - -p - pulsar://pulsar:6650 - -t - http://qdrant:6333 deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 store-triples: command: - triples-write-cassandra - -p - pulsar://pulsar:6650 - -g - cassandra deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 text-completion: command: - text-completion-ollama - -p - pulsar://pulsar:6650 - -m - gemma2:9b - -r - ${OLLAMA_HOST} deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 text-completion-rag: command: - text-completion-ollama - -p - pulsar://pulsar:6650 - -m - gemma2:9b - -r - ${OLLAMA_HOST} - -i - non-persistent://tg/request/text-completion-rag - -o - non-persistent://tg/response/text-completion-rag-response deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 vectorize: command: - embeddings-vectorize - -p - pulsar://pulsar:6650 deploy: resources: limits: cpus: '1.0' memory: 512M reservations: cpus: '0.5' memory: 512M image: docker.io/trustgraph/trustgraph-flow:0.11.13 restart: on-failure:100 volumes: cassandra: {} grafana-storage: {} prometheus-data: {} pulsar-data: {} qdrant: {}