mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-25 16:36:21 +02:00
- Fix Docker Compose relative directory problem - Added CONFIGDIR environment variable for docker compose - Correct Pulsar URL defaults for graph utils to be localhost again
722 lines
16 KiB
YAML
722 lines
16 KiB
YAML
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.0
|
|
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.0
|
|
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.0
|
|
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.0
|
|
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.0
|
|
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.0
|
|
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-template
|
|
- -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
|
|
- --definition-template
|
|
- '<instructions>
|
|
|
|
Study the following text and derive definitions for any discovered entities.
|
|
|
|
Do not provide definitions for entities whose definitions are incomplete
|
|
|
|
or unknown.
|
|
|
|
Output relationships in JSON format as an arary of objects with fields:
|
|
|
|
- entity: the name of the entity
|
|
|
|
- definition: English text which defines the entity
|
|
|
|
</instructions>
|
|
|
|
|
|
<text>
|
|
|
|
{text}
|
|
|
|
</text>
|
|
|
|
|
|
<requirements>
|
|
|
|
You will respond only with raw JSON format data. Do not provide
|
|
|
|
explanations. Do not use special characters in the abstract text. The
|
|
|
|
abstract will be written as plain text. Do not add markdown formatting
|
|
|
|
or headers or prefixes. Do not include null or unknown definitions.
|
|
|
|
</requirements>'
|
|
- --relationship-template
|
|
- '<instructions>
|
|
|
|
Study the following text and derive entity relationships. For each
|
|
|
|
relationship, derive the subject, predicate and object of the relationship.
|
|
|
|
Output relationships in JSON format as an arary of objects with fields:
|
|
|
|
- subject: the subject of the relationship
|
|
|
|
- predicate: the predicate
|
|
|
|
- object: the object of the relationship
|
|
|
|
- object-entity: false if the object is a simple data type: name, value or date. true
|
|
if it is an entity.
|
|
|
|
</instructions>
|
|
|
|
|
|
<text>
|
|
|
|
{text}
|
|
|
|
</text>
|
|
|
|
|
|
<requirements>
|
|
|
|
You will respond only with raw JSON format data. Do not provide
|
|
|
|
explanations. Do not use special characters in the abstract text. The
|
|
|
|
abstract must be written as plain text. Do not add markdown formatting
|
|
|
|
or headers or prefixes.
|
|
|
|
</requirements>'
|
|
- --knowledge-query-template
|
|
- 'Study the following set of knowledge statements. The statements are written
|
|
in Cypher format that has been extracted from a knowledge graph. Use only the
|
|
provided set of knowledge statements in your response. Do not speculate if the
|
|
answer is not found in the provided set of knowledge statements.
|
|
|
|
|
|
Here''s the knowledge statements:
|
|
|
|
{graph}
|
|
|
|
|
|
Use only the provided knowledge statements to respond to the following:
|
|
|
|
{query}
|
|
|
|
'
|
|
- --document-query-template
|
|
- 'Study the following context. Use only the information provided in the context
|
|
in your response. Do not speculate if the answer is not found in the provided
|
|
set of knowledge statements.
|
|
|
|
|
|
Here is the context:
|
|
|
|
{documents}
|
|
|
|
|
|
Use only the provided knowledge statements to respond to the following:
|
|
|
|
{query}
|
|
|
|
'
|
|
- --rows-template
|
|
- '<instructions>
|
|
|
|
Study the following text and derive objects which match the schema provided.
|
|
|
|
|
|
You must output an array of JSON objects for each object you discover
|
|
|
|
which matches the schema. For each object, output a JSON object whose fields
|
|
|
|
carry the name field specified in the schema.
|
|
|
|
</instructions>
|
|
|
|
|
|
<schema>
|
|
|
|
{schema}
|
|
|
|
</schema>
|
|
|
|
|
|
<text>
|
|
|
|
{text}
|
|
|
|
</text>
|
|
|
|
|
|
<requirements>
|
|
|
|
You will respond only with raw JSON format data. Do not provide
|
|
|
|
explanations. Do not add markdown formatting or headers or prefixes.
|
|
|
|
</requirements>'
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '0.5'
|
|
memory: 128M
|
|
reservations:
|
|
cpus: '0.1'
|
|
memory: 128M
|
|
image: docker.io/trustgraph/trustgraph-flow:0.10.0
|
|
restart: on-failure:100
|
|
prompt-rag:
|
|
command:
|
|
- prompt-template
|
|
- -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
|
|
- --definition-template
|
|
- '<instructions>
|
|
|
|
Study the following text and derive definitions for any discovered entities.
|
|
|
|
Do not provide definitions for entities whose definitions are incomplete
|
|
|
|
or unknown.
|
|
|
|
Output relationships in JSON format as an arary of objects with fields:
|
|
|
|
- entity: the name of the entity
|
|
|
|
- definition: English text which defines the entity
|
|
|
|
</instructions>
|
|
|
|
|
|
<text>
|
|
|
|
{text}
|
|
|
|
</text>
|
|
|
|
|
|
<requirements>
|
|
|
|
You will respond only with raw JSON format data. Do not provide
|
|
|
|
explanations. Do not use special characters in the abstract text. The
|
|
|
|
abstract will be written as plain text. Do not add markdown formatting
|
|
|
|
or headers or prefixes. Do not include null or unknown definitions.
|
|
|
|
</requirements>'
|
|
- --relationship-template
|
|
- '<instructions>
|
|
|
|
Study the following text and derive entity relationships. For each
|
|
|
|
relationship, derive the subject, predicate and object of the relationship.
|
|
|
|
Output relationships in JSON format as an arary of objects with fields:
|
|
|
|
- subject: the subject of the relationship
|
|
|
|
- predicate: the predicate
|
|
|
|
- object: the object of the relationship
|
|
|
|
- object-entity: false if the object is a simple data type: name, value or date. true
|
|
if it is an entity.
|
|
|
|
</instructions>
|
|
|
|
|
|
<text>
|
|
|
|
{text}
|
|
|
|
</text>
|
|
|
|
|
|
<requirements>
|
|
|
|
You will respond only with raw JSON format data. Do not provide
|
|
|
|
explanations. Do not use special characters in the abstract text. The
|
|
|
|
abstract must be written as plain text. Do not add markdown formatting
|
|
|
|
or headers or prefixes.
|
|
|
|
</requirements>'
|
|
- --knowledge-query-template
|
|
- 'Study the following set of knowledge statements. The statements are written
|
|
in Cypher format that has been extracted from a knowledge graph. Use only the
|
|
provided set of knowledge statements in your response. Do not speculate if the
|
|
answer is not found in the provided set of knowledge statements.
|
|
|
|
|
|
Here''s the knowledge statements:
|
|
|
|
{graph}
|
|
|
|
|
|
Use only the provided knowledge statements to respond to the following:
|
|
|
|
{query}
|
|
|
|
'
|
|
- --document-query-template
|
|
- 'Study the following context. Use only the information provided in the context
|
|
in your response. Do not speculate if the answer is not found in the provided
|
|
set of knowledge statements.
|
|
|
|
|
|
Here is the context:
|
|
|
|
{documents}
|
|
|
|
|
|
Use only the provided knowledge statements to respond to the following:
|
|
|
|
{query}
|
|
|
|
'
|
|
- --rows-template
|
|
- '<instructions>
|
|
|
|
Study the following text and derive objects which match the schema provided.
|
|
|
|
|
|
You must output an array of JSON objects for each object you discover
|
|
|
|
which matches the schema. For each object, output a JSON object whose fields
|
|
|
|
carry the name field specified in the schema.
|
|
|
|
</instructions>
|
|
|
|
|
|
<schema>
|
|
|
|
{schema}
|
|
|
|
</schema>
|
|
|
|
|
|
<text>
|
|
|
|
{text}
|
|
|
|
</text>
|
|
|
|
|
|
<requirements>
|
|
|
|
You will respond only with raw JSON format data. Do not provide
|
|
|
|
explanations. Do not add markdown formatting or headers or prefixes.
|
|
|
|
</requirements>'
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '0.5'
|
|
memory: 128M
|
|
reservations:
|
|
cpus: '0.1'
|
|
memory: 128M
|
|
image: docker.io/trustgraph/trustgraph-flow:0.10.0
|
|
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.0
|
|
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.0
|
|
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.0
|
|
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.0
|
|
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.0
|
|
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.0
|
|
restart: on-failure:100
|
|
text-completion:
|
|
command:
|
|
- text-completion-openai
|
|
- -p
|
|
- pulsar://pulsar:6650
|
|
- -k
|
|
- ${OPENAI_KEY}
|
|
- -x
|
|
- '4096'
|
|
- -t
|
|
- '0'
|
|
- -m
|
|
- GPT-3.5-Turbo
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '0.5'
|
|
memory: 128M
|
|
reservations:
|
|
cpus: '0.1'
|
|
memory: 128M
|
|
image: docker.io/trustgraph/trustgraph-flow:0.10.0
|
|
restart: on-failure:100
|
|
text-completion-rag:
|
|
command:
|
|
- text-completion-openai
|
|
- -p
|
|
- pulsar://pulsar:6650
|
|
- -k
|
|
- ${OPENAI_KEY}
|
|
- -x
|
|
- '4096'
|
|
- -t
|
|
- '0'
|
|
- -m
|
|
- GPT-3.5-Turbo
|
|
- -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.0
|
|
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.0
|
|
restart: on-failure:100
|
|
volumes:
|
|
grafana-storage: {}
|
|
neo4j: {}
|
|
prometheus-data: {}
|
|
pulsar-data: {}
|
|
qdrant: {}
|
|
|