services: 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.10.1 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.10.1 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 - ${CONFIGDIR}/grafana/provisioning/:/etc/grafana/provisioning/dashboards/ - ${CONFIGDIR}/grafana/provisioning/:/etc/grafana/provisioning/datasources/ - ${CONFIGDIR}/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.10.1 restart: on-failure:100 init-pulsar: command: - sh - -c - while true; do pulsar-admin --admin-url http://pulsar:8080 tenants create tg ; pulsar-admin --admin-url http://pulsar:8080 namespaces create tg/flow ; pulsar-admin --admin-url http://pulsar:8080 namespaces create tg/request ; pulsar-admin --admin-url http://pulsar:8080 namespaces create tg/response ; pulsar-admin --admin-url http://pulsar:8080 namespaces set-retention --size -1 --time 3m tg/response; sleep 20; done deploy: resources: limits: cpus: '1' memory: 400M reservations: cpus: '0.1' memory: 400M image: docker.io/apachepulsar/pulsar:3.3.1 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.10.1 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.10.1 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.10.1 restart: on-failure:100 neo4j: deploy: resources: limits: cpus: '1.0' memory: 768M reservations: cpus: '0.5' memory: 768M environment: NEO4J_AUTH: neo4j/password image: docker.io/neo4j:5.22.0-community-bullseye ports: - 7474:7474 - 7687:7687 restart: on-failure:100 volumes: - neo4j:/data 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.10.1 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: - ${CONFIGDIR}/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.10.1 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.10.1 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.10.1 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.10.1 restart: on-failure:100 query-triples: command: - triples-query-neo4j - -p - pulsar://pulsar:6650 - -g - bolt://neo4j:7687 deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.10.1 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.10.1 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.10.1 restart: on-failure:100 store-triples: command: - triples-write-neo4j - -p - pulsar://pulsar:6650 - -g - bolt://neo4j:7687 deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.10.1 restart: on-failure:100 text-completion: command: - text-completion-llamafile - -p - pulsar://pulsar:6650 - -m - LLaMA_CPP - -r - ${LLAMAFILE_URL} deploy: resources: limits: cpus: '0.5' memory: 128M reservations: cpus: '0.1' memory: 128M image: docker.io/trustgraph/trustgraph-flow:0.10.1 restart: on-failure:100 text-completion-rag: command: - text-completion-llamafile - -p - pulsar://pulsar:6650 - -m - LLaMA_CPP - -r - ${LLAMAFILE_URL} - -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.10.1 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.10.1 restart: on-failure:100 volumes: grafana-storage: {} neo4j: {} prometheus-data: {} pulsar-data: {} qdrant: {}