From 13f6b5d87ffa50734904ebc12e235a1babf247aa Mon Sep 17 00:00:00 2001 From: JackColquitt Date: Wed, 11 Sep 2024 10:10:39 -0700 Subject: [PATCH 01/15] Updated readme --- README.md | 12 ++++++------ trustgraph_banner.png => TG_Banner.png | Bin 165011 -> 162245 bytes 2 files changed, 6 insertions(+), 6 deletions(-) rename trustgraph_banner.png => TG_Banner.png (56%) diff --git a/README.md b/README.md index adaad212..3e51b4dc 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # TrustGraph -![TrustGraph banner](trustgraph_banner.png) +![TrustGraph banner](TG_Banner.png) 🚀 [Get Started](https://trustgraph.ai/docs/getstarted) 💬 [Join the Discord](https://discord.gg/AXpxVjwzAw) @@ -9,11 +9,11 @@ ## Introduction -TrustGraph is a true end-to-end (e2e) knowledge pipeline that performs a `Naive Extraction` on a text corpus to build a RDF style knowledge graph coupled with a `RAG` service compatible with cloud LLMs and open-source SLMs (Small Language Models). +TrustGraph deploys private GraphRAG pipelines to unlock the wisdom buried in your data. TrustGraph ingests data to build a RDF style knowledge graph to enable accurate and secure `RAG` requests compatible with cloud LLMs and open-source SLMs (Small Language Models). -The pipeline processing components are interconnected with a pub/sub engine to maximize modularity and enable new knowledge processing functions. The core processing components decode documents, chunk text, perform embeddings, apply a local SLM/LLM, call a LLM API, and generate LM predictions. +The pipeline processing components are interconnected with a pub/sub engine to maximize modularity for agent integration. The core processing components decode documents, chunk text, perform embeddings, apply a local SLM/LLM, call a LLM API, and generate LM predictions. -The processing showcases the reliability and efficiences of Graph RAG algorithms which can capture contextual language flags that are missed in conventional RAG approaches. Graph querying algorithms enable retrieving not just relevant knowledge but language cues essential to understanding semantic uses unique to a text corpus. +The processing showcases the reliability and efficiences of GraphRAG algorithms which can capture contextual language flags that are missed in conventional RAG approaches. Graph querying algorithms enable retrieving not just relevant knowledge but language cues essential to understanding semantic uses unique to a text corpus. Processing modules are executed in containers. Processing can be scaled-up by deploying multiple containers. @@ -30,7 +30,7 @@ Processing modules are executed in containers. Processing can be scaled-up by d - Storing embeddings in [Qdrant](https://qdrant.tech/) - Build and load [Knowledge Cores](https://trustgraph.ai/docs/category/knowledge-cores) - Embedding query service -- Graph RAG query service +- GraphRAG query service - All procesing integrates with [Apache Pulsar](https://github.com/apache/pulsar/) - Containers deployed using `Docker` or [Podman](http://podman.io/) - Plug'n'play architecture: switch different LLM modules to suit your needs @@ -55,7 +55,7 @@ The entire architecture, the pub/sub backbone and set of modules, is bundled int - `embeddings-hf` - A service which analyses text and returns a vector embedding using one of the HuggingFace embeddings models. - `embeddings-ollama` - A service which analyses text and returns a vector embedding using an Ollama embeddings model. - `embeddings-vectorize` - Uses an embeddings service to get a vector embedding which is added to the processor payload. -- `graph-rag` - A query service which applies a Graph RAG algorithm to provide a response to a text prompt. +- `graph-rag` - A query service which applies a GraphRAG algorithm to provide a response to a text prompt. - `triples-write-cassandra` - Takes knowledge graph edges and writes them to a Cassandra store. - `triples-write-neo4j` - Takes knowledge graph edges and writes them to a Neo4j store. - `kg-extract-definitions` - knowledge extractor - examines text and produces graph edges. describing discovered terms and also their defintions. Definitions are derived using the input documents. diff --git a/trustgraph_banner.png b/TG_Banner.png similarity index 56% rename from trustgraph_banner.png rename to TG_Banner.png index 861660dce69a88f816c22503921bec7543c1c13d..301827934f85fe3b296761a9a3c3d4b42d357499 100644 GIT binary patch delta 69679 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%0A!0s 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 VbpS6ReK-IB002ovPDHLkV1mI(i=6-f From 728ff7542a9fb3999ee521468be62f18b8649705 Mon Sep 17 00:00:00 2001 From: Jack Colquitt <126733989+JackColquitt@users.noreply.github.com> Date: Sun, 15 Sep 2024 14:47:57 -0700 Subject: [PATCH 02/15] Extraction upgrade (#61) * Added KG Topics * Updated prompt-template * Fixed prompt-generic --- prometheus/prometheus.yml | 1 + scripts/kg-extract-topics | 6 + setup.py | 1 + trustgraph/clients/prompt_client.py | 7 + trustgraph/extract/kg/topics/__init__.py | 3 + trustgraph/extract/kg/topics/__main__.py | 7 + trustgraph/extract/kg/topics/extract.py | 134 ++++++++++++++++++++ trustgraph/model/prompt/generic/prompts.py | 108 +++++++++++----- trustgraph/model/prompt/generic/service.py | 81 +++++++++++- trustgraph/model/prompt/template/prompts.py | 3 + trustgraph/model/prompt/template/service.py | 90 ++++++++++++- trustgraph/schema/prompt.py | 5 + 12 files changed, 401 insertions(+), 45 deletions(-) create mode 100755 scripts/kg-extract-topics create mode 100644 trustgraph/extract/kg/topics/__init__.py create mode 100755 trustgraph/extract/kg/topics/__main__.py create mode 100755 trustgraph/extract/kg/topics/extract.py diff --git a/prometheus/prometheus.yml b/prometheus/prometheus.yml index 7a7024cf..f459dad9 100644 --- a/prometheus/prometheus.yml +++ b/prometheus/prometheus.yml @@ -27,6 +27,7 @@ scrape_configs: - 'vectorize:8000' - 'embeddings:8000' - 'kg-extract-definitions:8000' + - 'kg-extract-topics:8000' - 'kg-extract-relationships:8000' - 'store-graph-embeddings:8000' - 'store-triples:8000' diff --git a/scripts/kg-extract-topics b/scripts/kg-extract-topics new file mode 100755 index 00000000..e8ff2688 --- /dev/null +++ b/scripts/kg-extract-topics @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 + +from trustgraph.extract.kg.topics import run + +run() + diff --git a/setup.py b/setup.py index 601524c9..94883544 100644 --- a/setup.py +++ b/setup.py @@ -75,6 +75,7 @@ setuptools.setup( "scripts/graph-to-turtle", "scripts/init-pulsar-manager", "scripts/kg-extract-definitions", + "scripts/kg-extract-topics", "scripts/kg-extract-relationships", "scripts/load-graph-embeddings", "scripts/load-pdf", diff --git a/trustgraph/clients/prompt_client.py b/trustgraph/clients/prompt_client.py index dd1f4e5d..f7f5a3ef 100644 --- a/trustgraph/clients/prompt_client.py +++ b/trustgraph/clients/prompt_client.py @@ -44,6 +44,13 @@ class PromptClient(BaseClient): kind="extract-definitions", chunk=chunk, timeout=timeout ).definitions + + def request_topics(self, chunk, timeout=300): + + return self.call( + kind="extract-topics", chunk=chunk, + timeout=timeout + ).topics def request_relationships(self, chunk, timeout=300): diff --git a/trustgraph/extract/kg/topics/__init__.py b/trustgraph/extract/kg/topics/__init__.py new file mode 100644 index 00000000..81287a3c --- /dev/null +++ b/trustgraph/extract/kg/topics/__init__.py @@ -0,0 +1,3 @@ + +from . extract import * + diff --git a/trustgraph/extract/kg/topics/__main__.py b/trustgraph/extract/kg/topics/__main__.py new file mode 100755 index 00000000..403fe672 --- /dev/null +++ b/trustgraph/extract/kg/topics/__main__.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python3 + +from . extract import run + +if __name__ == '__main__': + run() + diff --git a/trustgraph/extract/kg/topics/extract.py b/trustgraph/extract/kg/topics/extract.py new file mode 100755 index 00000000..e2ebe5b0 --- /dev/null +++ b/trustgraph/extract/kg/topics/extract.py @@ -0,0 +1,134 @@ + +""" +Simple decoder, accepts embeddings+text chunks input, applies entity analysis to +get entity definitions which are output as graph edges. +""" + +import urllib.parse +import json + +from .... schema import ChunkEmbeddings, Triple, Source, Value +from .... schema import chunk_embeddings_ingest_queue, triples_store_queue +from .... schema import prompt_request_queue +from .... schema import prompt_response_queue +from .... log_level import LogLevel +from .... clients.prompt_client import PromptClient +from .... rdf import TRUSTGRAPH_ENTITIES, DEFINITION +from .... base import ConsumerProducer + +DEFINITION_VALUE = Value(value=DEFINITION, is_uri=True) + +module = ".".join(__name__.split(".")[1:-1]) + +default_input_queue = chunk_embeddings_ingest_queue +default_output_queue = triples_store_queue +default_subscriber = module + +class Processor(ConsumerProducer): + + def __init__(self, **params): + + input_queue = params.get("input_queue", default_input_queue) + output_queue = params.get("output_queue", default_output_queue) + subscriber = params.get("subscriber", default_subscriber) + pr_request_queue = params.get( + "prompt_request_queue", prompt_request_queue + ) + pr_response_queue = params.get( + "prompt_response_queue", prompt_response_queue + ) + + super(Processor, self).__init__( + **params | { + "input_queue": input_queue, + "output_queue": output_queue, + "subscriber": subscriber, + "input_schema": ChunkEmbeddings, + "output_schema": Triple, + "prompt_request_queue": pr_request_queue, + "prompt_response_queue": pr_response_queue, + } + ) + + self.prompt = PromptClient( + pulsar_host=self.pulsar_host, + input_queue=pr_request_queue, + output_queue=pr_response_queue, + subscriber = module + "-prompt", + ) + + def to_uri(self, text): + + part = text.replace(" ", "-").lower().encode("utf-8") + quoted = urllib.parse.quote(part) + uri = TRUSTGRAPH_ENTITIES + quoted + + return uri + + def get_topics(self, chunk): + + return self.prompt.request_topics(chunk) + + def emit_edge(self, s, p, o): + + t = Triple(s=s, p=p, o=o) + self.producer.send(t) + + def handle(self, msg): + + v = msg.value() + print(f"Indexing {v.source.id}...", flush=True) + + chunk = v.chunk.decode("utf-8") + + try: + + defs = self.get_topics(chunk) + + for defn in defs: + + s = defn.name + o = defn.definition + + if s == "": continue + if o == "": continue + + if s is None: continue + if o is None: continue + + s_uri = self.to_uri(s) + + s_value = Value(value=str(s_uri), is_uri=True) + o_value = Value(value=str(o), is_uri=False) + + self.emit_edge(s_value, DEFINITION_VALUE, o_value) + + except Exception as e: + print("Exception: ", e, flush=True) + + print("Done.", flush=True) + + @staticmethod + def add_args(parser): + + ConsumerProducer.add_args( + parser, default_input_queue, default_subscriber, + default_output_queue, + ) + + parser.add_argument( + '--prompt-request-queue', + default=prompt_request_queue, + help=f'Prompt request queue (default: {prompt_request_queue})', + ) + + parser.add_argument( + '--prompt-completion-response-queue', + default=prompt_response_queue, + help=f'Prompt response queue (default: {prompt_response_queue})', + ) + +def run(): + + Processor.start(module, __doc__) + diff --git a/trustgraph/model/prompt/generic/prompts.py b/trustgraph/model/prompt/generic/prompts.py index e9254dd9..c16afc89 100644 --- a/trustgraph/model/prompt/generic/prompts.py +++ b/trustgraph/model/prompt/generic/prompts.py @@ -1,50 +1,92 @@ def to_relationships(text): - prompt = f""" -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. - + prompt = f"""You are a helpful assistant that performs information extraction tasks for a provided text. - +Read the provided text. You will model the text as an information network for a RDF knowledge graph in JSON. + +Information Network Rules: +- An information network has subjects connected by predicates to objects. +- A subject is a named-entity or a conceptual topic. +- One subject can have many predicates and objects. +- An object is a property or attribute of a subject. +- A subject can be connected by a predicate to another subject. + +Reading Instructions: +- Ignore document formatting in the provided text. +- Study the provided text carefully. + +Here is the text: {text} - - -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. -""" +Response Instructions: +- Obey the information network rules. +- Do not return special characters. +- Respond only with well-formed JSON. +- The JSON response shall be an array of JSON objects with keys "subject", "predicate", "object", and "object-entity". +- The JSON response shall use the following structure: + +```json +[{{"subject": string, "predicate": string, "object": string, "object-entity": boolean}}] +``` + +- The key "object-entity" is TRUE only if the "object" is a subject. +- Do not write any additional text or explanations. +""" + + return prompt + +def to_topics(text): + + prompt = f"""You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON. + +Reading Instructions: +- Ignore document formatting in the provided text. +- Study the provided text carefully. + +Here is the text: +{text} + +Response Instructions: +- Do not respond with special characters. +- Return only topics that are concepts and unique to the provided text. +- Respond only with well-formed JSON. +- The JSON response shall be an array of objects with keys "topic" and "definition". +- The JSON response shall use the following structure: + +```json +[{{"topic": string, "definition": string}}] +``` + +- Do not write any additional text or explanations. +""" return prompt def to_definitions(text): - prompt = f""" -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 - + prompt = f"""You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify entities and their definitions in JSON. - +Reading Instructions: +- Ignore document formatting in the provided text. +- Study the provided text carefully. + +Here is the text: {text} - - -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. -""" +Response Instructions: +- Do not respond with special characters. +- Return only entities that are named-entities such as: people, organizations, physical objects, locations, animals, products, commodotities, or substances. +- Respond only with well-formed JSON. +- The JSON response shall be an array of objects with keys "entity" and "definition". +- The JSON response shall use the following structure: + +```json +[{{"entity": string, "definition": string}}] +``` + +- Do not write any additional text or explanations. +""" return prompt diff --git a/trustgraph/model/prompt/generic/service.py b/trustgraph/model/prompt/generic/service.py index bc78f664..16986980 100755 --- a/trustgraph/model/prompt/generic/service.py +++ b/trustgraph/model/prompt/generic/service.py @@ -3,8 +3,10 @@ Language service abstracts prompt engineering from LLM. """ import json +import re from .... schema import Definition, Relationship, Triple +from .... schema import Topic from .... schema import PromptRequest, PromptResponse, Error from .... schema import TextCompletionRequest, TextCompletionResponse from .... schema import text_completion_request_queue @@ -13,7 +15,7 @@ from .... schema import prompt_request_queue, prompt_response_queue from .... base import ConsumerProducer from .... clients.llm_client import LlmClient -from . prompts import to_definitions, to_relationships +from . prompts import to_definitions, to_relationships, to_topics from . prompts import to_kg_query, to_document_query, to_rows module = ".".join(__name__.split(".")[1:-1]) @@ -56,12 +58,15 @@ class Processor(ConsumerProducer): ) def parse_json(self, text): - - # Hacky, workaround temperamental JSON markdown - text = text.replace("```json", "") - text = text.replace("```", "") + json_match = re.search(r'```(?:json)?(.*?)```', text, re.DOTALL) + + if json_match: + json_str = json_match.group(1).strip() + else: + # If no delimiters, assume the entire output is JSON + json_str = text.strip() - return json.loads(text) + return json.loads(json_str) def handle(self, msg): @@ -80,6 +85,11 @@ class Processor(ConsumerProducer): self.handle_extract_definitions(id, v) return + elif kind == "extract-topics": + + self.handle_extract_topics(id, v) + return + elif kind == "extract-relationships": self.handle_extract_relationships(id, v) @@ -164,6 +174,65 @@ class Processor(ConsumerProducer): self.producer.send(r, properties={"id": id}) + def handle_extract_topics(self, id, v): + + try: + + prompt = to_topics(v.chunk) + + ans = self.llm.request(prompt) + + # Silently ignore JSON parse error + try: + defs = self.parse_json(ans) + except: + print("JSON parse error, ignored", flush=True) + defs = [] + + output = [] + + for defn in defs: + + try: + e = defn["topic"] + d = defn["definition"] + + if e == "": continue + if e is None: continue + if d == "": continue + if d is None: continue + + output.append( + Topic( + name=e, definition=d + ) + ) + + except: + print("definition fields missing, ignored", flush=True) + + print("Send response...", flush=True) + r = PromptResponse(topics=output, error=None) + self.producer.send(r, properties={"id": id}) + + print("Done.", flush=True) + + except Exception as e: + + print(f"Exception: {e}") + + print("Send error response...", flush=True) + + r = PromptResponse( + error=Error( + type = "llm-error", + message = str(e), + ), + response=None, + ) + + self.producer.send(r, properties={"id": id}) + def handle_extract_relationships(self, id, v): try: diff --git a/trustgraph/model/prompt/template/prompts.py b/trustgraph/model/prompt/template/prompts.py index 8b25c621..e3148157 100644 --- a/trustgraph/model/prompt/template/prompts.py +++ b/trustgraph/model/prompt/template/prompts.py @@ -5,6 +5,9 @@ def to_relationships(template, text): def to_definitions(template, text): return template.format(text=text) +def to_topics(template, text): + return template.format(text=text) + def to_rows(template, schema, text): field_schema = [ diff --git a/trustgraph/model/prompt/template/service.py b/trustgraph/model/prompt/template/service.py index ce595720..14b65d5a 100755 --- a/trustgraph/model/prompt/template/service.py +++ b/trustgraph/model/prompt/template/service.py @@ -4,8 +4,10 @@ Language service abstracts prompt engineering from LLM. """ import json +import re from .... schema import Definition, Relationship, Triple +from .... schema import Topic from .... schema import PromptRequest, PromptResponse, Error from .... schema import TextCompletionRequest, TextCompletionResponse from .... schema import text_completion_request_queue @@ -15,7 +17,7 @@ from .... base import ConsumerProducer from .... clients.llm_client import LlmClient from . prompts import to_definitions, to_relationships, to_rows -from . prompts import to_kg_query, to_document_query +from . prompts import to_kg_query, to_document_query, to_topics module = ".".join(__name__.split(".")[1:-1]) @@ -38,6 +40,7 @@ class Processor(ConsumerProducer): ) definition_template = params.get("definition_template") relationship_template = params.get("relationship_template") + topic_template = params.get("topic_template") rows_template = params.get("rows_template") knowledge_query_template = params.get("knowledge_query_template") document_query_template = params.get("document_query_template") @@ -62,18 +65,22 @@ class Processor(ConsumerProducer): ) self.definition_template = definition_template + self.topic_template = topic_template self.relationship_template = relationship_template self.rows_template = rows_template self.knowledge_query_template = knowledge_query_template self.document_query_template = document_query_template def parse_json(self, text): - - # Hacky, workaround temperamental JSON markdown - text = text.replace("```json", "") - text = text.replace("```", "") + json_match = re.search(r'```(?:json)?(.*?)```', text, re.DOTALL) + + if json_match: + json_str = json_match.group(1).strip() + else: + # If no delimiters, assume the entire output is JSON + json_str = text.strip() - return json.loads(text) + return json.loads(json_str) def handle(self, msg): @@ -92,6 +99,11 @@ class Processor(ConsumerProducer): self.handle_extract_definitions(id, v) return + elif kind == "extract-topics": + + self.handle_extract_topics(id, v) + return + elif kind == "extract-relationships": self.handle_extract_relationships(id, v) @@ -176,6 +188,66 @@ class Processor(ConsumerProducer): self.producer.send(r, properties={"id": id}) + def handle_extract_topics(self, id, v): + + try: + + prompt = to_topics(self.topic_template, v.chunk) + + ans = self.llm.request(prompt) + + # Silently ignore JSON parse error + try: + defs = self.parse_json(ans) + except: + print("JSON parse error, ignored", flush=True) + defs = [] + + output = [] + + for defn in defs: + + try: + e = defn["topic"] + d = defn["definition"] + + if e == "": continue + if e is None: continue + if d == "": continue + if d is None: continue + + output.append( + Topic( + name=e, definition=d + ) + ) + + except: + print("definition fields missing, ignored", flush=True) + + print("Send response...", flush=True) + r = PromptResponse(topics=output, error=None) + self.producer.send(r, properties={"id": id}) + + print("Done.", flush=True) + + except Exception as e: + + print(f"Exception: {e}") + + print("Send error response...", flush=True) + + r = PromptResponse( + error=Error( + type = "llm-error", + message = str(e), + ), + response=None, + ) + + self.producer.send(r, properties={"id": id}) + + def handle_extract_relationships(self, id, v): try: @@ -415,6 +487,12 @@ class Processor(ConsumerProducer): help=f'Definition extraction template', ) + parser.add_argument( + '--topic-template', + required=True, + help=f'Topic extraction template', + ) + parser.add_argument( '--rows-template', required=True, diff --git a/trustgraph/schema/prompt.py b/trustgraph/schema/prompt.py index 69f81ff3..c7dbfd43 100644 --- a/trustgraph/schema/prompt.py +++ b/trustgraph/schema/prompt.py @@ -12,6 +12,10 @@ class Definition(Record): name = String() definition = String() +class Topic(Record): + name = String() + definition = String() + class Relationship(Record): s = String() p = String() @@ -46,6 +50,7 @@ class PromptResponse(Record): error = Error() answer = String() definitions = Array(Definition()) + topics = Array(Topic()) relationships = Array(Relationship()) rows = Array(Map(String())) From 6af86fa09f21cae002569cb10c39eb32b04474e0 Mon Sep 17 00:00:00 2001 From: cybermaggedon Date: Sun, 15 Sep 2024 23:40:37 +0100 Subject: [PATCH 03/15] Topic templates for extractor (#62) * Add topic prompt to templates * Bump version * Updated templates --- Makefile | 2 +- setup.py | 2 +- templates/components/graph-rag.jsonnet | 25 +++++++++ templates/components/prompt-template.jsonnet | 4 ++ templates/prompts/cohere.jsonnet | 2 + templates/prompts/default-prompts.jsonnet | 2 + templates/prompts/gemini.jsonnet | 2 + templates/prompts/mixtral.jsonnet | 2 + templates/prompts/openai.jsonnet | 2 + tg-launch-azure-cassandra.yaml | 53 +++++++++++++------- tg-launch-azure-neo4j.yaml | 53 +++++++++++++------- tg-launch-bedrock-cassandra.yaml | 53 +++++++++++++------- tg-launch-bedrock-neo4j.yaml | 53 +++++++++++++------- tg-launch-claude-cassandra.yaml | 53 +++++++++++++------- tg-launch-claude-neo4j.yaml | 53 +++++++++++++------- tg-launch-cohere-cassandra.yaml | 53 +++++++++++++------- tg-launch-cohere-neo4j.yaml | 53 +++++++++++++------- tg-launch-ollama-cassandra.yaml | 49 +++++++++++------- tg-launch-ollama-neo4j.yaml | 49 +++++++++++------- tg-launch-openai-cassandra.yaml | 53 +++++++++++++------- tg-launch-openai-neo4j.yaml | 53 +++++++++++++------- tg-launch-vertexai-cassandra.yaml | 53 +++++++++++++------- tg-launch-vertexai-neo4j.yaml | 53 +++++++++++++------- tg-storage-cassandra.yaml | 12 ++--- tg-storage-neo4j.yaml | 12 ++--- 25 files changed, 549 insertions(+), 252 deletions(-) diff --git a/Makefile b/Makefile index f361bd80..63c971ba 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ # VERSION=$(shell git describe | sed 's/^v//') -VERSION=0.9.3 +VERSION=0.9.4 DOCKER=podman diff --git a/setup.py b/setup.py index 94883544..e11b21bf 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ import os with open("README.md", "r") as fh: long_description = fh.read() -version = "0.9.3" +version = "0.9.4" setuptools.setup( name="trustgraph", diff --git a/templates/components/graph-rag.jsonnet b/templates/components/graph-rag.jsonnet index ad5ae6f4..a938a014 100644 --- a/templates/components/graph-rag.jsonnet +++ b/templates/components/graph-rag.jsonnet @@ -58,6 +58,31 @@ local url = import "values/url.jsonnet"; }, + "kg-extract-topics" +: { + + create:: function(engine) + + local container = + engine.container("kg-extract-topics") + .with_image(images.trustgraph) + .with_command([ + "kg-extract-topics", + "-p", + url.pulsar, + ]) + .with_limits("0.5", "128M") + .with_reservations("0.1", "128M"); + + local containerSet = engine.containers( + "kg-extract-topics", [ container ] + ); + + engine.resources([ + containerSet, + ]) + + }, + "graph-rag" +: { create:: function(engine) diff --git a/templates/components/prompt-template.jsonnet b/templates/components/prompt-template.jsonnet index e64a18e8..69f34556 100644 --- a/templates/components/prompt-template.jsonnet +++ b/templates/components/prompt-template.jsonnet @@ -25,6 +25,8 @@ local default_prompts = import "prompts/default-prompts.jsonnet"; $["prompt-definition-template"], "--relationship-template", $["prompt-relationship-template"], + "--topic-template", + $["prompt-topic-template"], "--knowledge-query-template", $["prompt-knowledge-query-template"], "--document-query-template", @@ -68,6 +70,8 @@ local default_prompts = import "prompts/default-prompts.jsonnet"; $["prompt-definition-template"], "--relationship-template", $["prompt-relationship-template"], + "--topic-template", + $["prompt-topic-template"], "--knowledge-query-template", $["prompt-knowledge-query-template"], "--document-query-template", diff --git a/templates/prompts/cohere.jsonnet b/templates/prompts/cohere.jsonnet index f70e1704..2335084b 100644 --- a/templates/prompts/cohere.jsonnet +++ b/templates/prompts/cohere.jsonnet @@ -7,6 +7,8 @@ // "prompt-relationship-template":: "PROMPT GOES HERE", +// "prompt-topic-template":: "PROMPT GOES HERE", + // "prompt-knowledge-query-template":: "PROMPT GOES HERE", // "prompt-document-query-template":: "PROMPT GOES HERE", diff --git a/templates/prompts/default-prompts.jsonnet b/templates/prompts/default-prompts.jsonnet index 980e7940..6f8c7b7b 100644 --- a/templates/prompts/default-prompts.jsonnet +++ b/templates/prompts/default-prompts.jsonnet @@ -8,6 +8,8 @@ "prompt-relationship-template":: "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n", + "prompt-topic-template":: "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations.", + "prompt-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.\n\nHere's the knowledge statements:\n{graph}\n\nUse only the provided knowledge statements to respond to the following:\n{query}\n", "prompt-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.\n\nHere is the context:\n{documents}\n\nUse only the provided knowledge statements to respond to the following:\n{query}\n", diff --git a/templates/prompts/gemini.jsonnet b/templates/prompts/gemini.jsonnet index cfcb81c1..12905c7a 100644 --- a/templates/prompts/gemini.jsonnet +++ b/templates/prompts/gemini.jsonnet @@ -6,6 +6,8 @@ // "prompt-relationship-template":: "PROMPT GOES HERE", +// "prompt-topic-template":: "PROMPT GOES HERE", + // "prompt-knowledge-query-template":: "PROMPT GOES HERE", // "prompt-document-query-template":: "PROMPT GOES HERE", diff --git a/templates/prompts/mixtral.jsonnet b/templates/prompts/mixtral.jsonnet index ee119eee..c5e70477 100644 --- a/templates/prompts/mixtral.jsonnet +++ b/templates/prompts/mixtral.jsonnet @@ -7,6 +7,8 @@ // "prompt-relationship-template":: "PROMPT GOES HERE", +// "prompt-topic-template":: "PROMPT GOES HERE", + // "prompt-knowledge-query-template":: "PROMPT GOES HERE", // "prompt-document-query-template":: "PROMPT GOES HERE", diff --git a/templates/prompts/openai.jsonnet b/templates/prompts/openai.jsonnet index 04bcb9b9..0715525e 100644 --- a/templates/prompts/openai.jsonnet +++ b/templates/prompts/openai.jsonnet @@ -11,6 +11,8 @@ local url = import "values/url.jsonnet"; // "prompt-relationship-template":: "PROMPT GOES HERE", +// "prompt-topic-template":: "PROMPT GOES HERE", + // "prompt-knowledge-query-template":: "PROMPT GOES HERE", // "prompt-document-query-template":: "PROMPT GOES HERE", diff --git a/tg-launch-azure-cassandra.yaml b/tg-launch-azure-cassandra.yaml index 39d8c539..264e81fb 100644 --- a/tg-launch-azure-cassandra.yaml +++ b/tg-launch-azure-cassandra.yaml @@ -33,7 +33,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "embeddings": "command": @@ -50,7 +50,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "grafana": "deploy": @@ -95,7 +95,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "init-pulsar": "command": @@ -125,7 +125,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -140,7 +140,22 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "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.9.4" "restart": "on-failure:100" "pdf-decoder": "command": @@ -155,7 +170,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prometheus": "deploy": @@ -186,6 +201,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -214,7 +231,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prompt-rag": "command": @@ -233,6 +250,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -261,7 +280,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -314,7 +333,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -331,7 +350,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-triples": "command": @@ -348,7 +367,7 @@ "reservations": "cpus": "0.1" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -365,7 +384,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -382,7 +401,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-triples": "command": @@ -399,7 +418,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion": "command": @@ -422,7 +441,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion-rag": "command": @@ -449,7 +468,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "vectorize": "command": @@ -464,7 +483,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": "cassandra": {} diff --git a/tg-launch-azure-neo4j.yaml b/tg-launch-azure-neo4j.yaml index a0dee80c..8e5a3fdd 100644 --- a/tg-launch-azure-neo4j.yaml +++ b/tg-launch-azure-neo4j.yaml @@ -16,7 +16,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "embeddings": "command": @@ -33,7 +33,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "grafana": "deploy": @@ -78,7 +78,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "init-pulsar": "command": @@ -108,7 +108,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -123,7 +123,22 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "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.9.4" "restart": "on-failure:100" "neo4j": "deploy": @@ -156,7 +171,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prometheus": "deploy": @@ -187,6 +202,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -215,7 +232,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prompt-rag": "command": @@ -234,6 +251,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -262,7 +281,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -315,7 +334,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -332,7 +351,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-triples": "command": @@ -349,7 +368,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -366,7 +385,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -383,7 +402,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-triples": "command": @@ -400,7 +419,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion": "command": @@ -423,7 +442,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion-rag": "command": @@ -450,7 +469,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "vectorize": "command": @@ -465,7 +484,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": "grafana-storage": {} diff --git a/tg-launch-bedrock-cassandra.yaml b/tg-launch-bedrock-cassandra.yaml index 5d218d17..5093b954 100644 --- a/tg-launch-bedrock-cassandra.yaml +++ b/tg-launch-bedrock-cassandra.yaml @@ -33,7 +33,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "embeddings": "command": @@ -50,7 +50,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "grafana": "deploy": @@ -95,7 +95,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "init-pulsar": "command": @@ -125,7 +125,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -140,7 +140,22 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "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.9.4" "restart": "on-failure:100" "pdf-decoder": "command": @@ -155,7 +170,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prometheus": "deploy": @@ -186,6 +201,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -214,7 +231,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prompt-rag": "command": @@ -233,6 +250,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -261,7 +280,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -314,7 +333,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -331,7 +350,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-triples": "command": @@ -348,7 +367,7 @@ "reservations": "cpus": "0.1" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -365,7 +384,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -382,7 +401,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-triples": "command": @@ -399,7 +418,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion": "command": @@ -426,7 +445,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion-rag": "command": @@ -457,7 +476,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "vectorize": "command": @@ -472,7 +491,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": "cassandra": {} diff --git a/tg-launch-bedrock-neo4j.yaml b/tg-launch-bedrock-neo4j.yaml index 8de30c3b..92829326 100644 --- a/tg-launch-bedrock-neo4j.yaml +++ b/tg-launch-bedrock-neo4j.yaml @@ -16,7 +16,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "embeddings": "command": @@ -33,7 +33,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "grafana": "deploy": @@ -78,7 +78,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "init-pulsar": "command": @@ -108,7 +108,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -123,7 +123,22 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "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.9.4" "restart": "on-failure:100" "neo4j": "deploy": @@ -156,7 +171,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prometheus": "deploy": @@ -187,6 +202,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -215,7 +232,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prompt-rag": "command": @@ -234,6 +251,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -262,7 +281,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -315,7 +334,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -332,7 +351,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-triples": "command": @@ -349,7 +368,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -366,7 +385,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -383,7 +402,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-triples": "command": @@ -400,7 +419,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion": "command": @@ -427,7 +446,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion-rag": "command": @@ -458,7 +477,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "vectorize": "command": @@ -473,7 +492,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": "grafana-storage": {} diff --git a/tg-launch-claude-cassandra.yaml b/tg-launch-claude-cassandra.yaml index 22772ada..f2d2cb4f 100644 --- a/tg-launch-claude-cassandra.yaml +++ b/tg-launch-claude-cassandra.yaml @@ -33,7 +33,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "embeddings": "command": @@ -50,7 +50,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "grafana": "deploy": @@ -95,7 +95,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "init-pulsar": "command": @@ -125,7 +125,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -140,7 +140,22 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "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.9.4" "restart": "on-failure:100" "pdf-decoder": "command": @@ -155,7 +170,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prometheus": "deploy": @@ -186,6 +201,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -214,7 +231,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prompt-rag": "command": @@ -233,6 +250,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -261,7 +280,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -314,7 +333,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -331,7 +350,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-triples": "command": @@ -348,7 +367,7 @@ "reservations": "cpus": "0.1" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -365,7 +384,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -382,7 +401,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-triples": "command": @@ -399,7 +418,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion": "command": @@ -420,7 +439,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion-rag": "command": @@ -445,7 +464,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "vectorize": "command": @@ -460,7 +479,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": "cassandra": {} diff --git a/tg-launch-claude-neo4j.yaml b/tg-launch-claude-neo4j.yaml index cec0f747..8ef9f8cc 100644 --- a/tg-launch-claude-neo4j.yaml +++ b/tg-launch-claude-neo4j.yaml @@ -16,7 +16,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "embeddings": "command": @@ -33,7 +33,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "grafana": "deploy": @@ -78,7 +78,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "init-pulsar": "command": @@ -108,7 +108,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -123,7 +123,22 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "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.9.4" "restart": "on-failure:100" "neo4j": "deploy": @@ -156,7 +171,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prometheus": "deploy": @@ -187,6 +202,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -215,7 +232,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prompt-rag": "command": @@ -234,6 +251,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -262,7 +281,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -315,7 +334,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -332,7 +351,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-triples": "command": @@ -349,7 +368,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -366,7 +385,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -383,7 +402,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-triples": "command": @@ -400,7 +419,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion": "command": @@ -421,7 +440,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion-rag": "command": @@ -446,7 +465,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "vectorize": "command": @@ -461,7 +480,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": "grafana-storage": {} diff --git a/tg-launch-cohere-cassandra.yaml b/tg-launch-cohere-cassandra.yaml index 906a5c64..31fac7ae 100644 --- a/tg-launch-cohere-cassandra.yaml +++ b/tg-launch-cohere-cassandra.yaml @@ -33,7 +33,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "embeddings": "command": @@ -50,7 +50,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "grafana": "deploy": @@ -95,7 +95,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "init-pulsar": "command": @@ -125,7 +125,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -140,7 +140,22 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "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.9.4" "restart": "on-failure:100" "pdf-decoder": "command": @@ -155,7 +170,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prometheus": "deploy": @@ -186,6 +201,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -214,7 +231,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prompt-rag": "command": @@ -233,6 +250,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -261,7 +280,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -314,7 +333,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -331,7 +350,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-triples": "command": @@ -348,7 +367,7 @@ "reservations": "cpus": "0.1" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -365,7 +384,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -382,7 +401,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-triples": "command": @@ -399,7 +418,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion": "command": @@ -418,7 +437,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion-rag": "command": @@ -441,7 +460,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "vectorize": "command": @@ -456,7 +475,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": "cassandra": {} diff --git a/tg-launch-cohere-neo4j.yaml b/tg-launch-cohere-neo4j.yaml index 0dc2bd12..0ebb4979 100644 --- a/tg-launch-cohere-neo4j.yaml +++ b/tg-launch-cohere-neo4j.yaml @@ -16,7 +16,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "embeddings": "command": @@ -33,7 +33,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "grafana": "deploy": @@ -78,7 +78,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "init-pulsar": "command": @@ -108,7 +108,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -123,7 +123,22 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "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.9.4" "restart": "on-failure:100" "neo4j": "deploy": @@ -156,7 +171,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prometheus": "deploy": @@ -187,6 +202,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -215,7 +232,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prompt-rag": "command": @@ -234,6 +251,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -262,7 +281,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -315,7 +334,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -332,7 +351,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-triples": "command": @@ -349,7 +368,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -366,7 +385,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -383,7 +402,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-triples": "command": @@ -400,7 +419,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion": "command": @@ -419,7 +438,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion-rag": "command": @@ -442,7 +461,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "vectorize": "command": @@ -457,7 +476,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": "grafana-storage": {} diff --git a/tg-launch-ollama-cassandra.yaml b/tg-launch-ollama-cassandra.yaml index 51fe0ca6..6b2b37c2 100644 --- a/tg-launch-ollama-cassandra.yaml +++ b/tg-launch-ollama-cassandra.yaml @@ -33,7 +33,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "embeddings": "command": @@ -50,7 +50,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "grafana": "deploy": @@ -95,7 +95,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "init-pulsar": "command": @@ -125,7 +125,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -140,7 +140,22 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "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.9.4" "restart": "on-failure:100" "pdf-decoder": "command": @@ -155,7 +170,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prometheus": "deploy": @@ -190,7 +205,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prompt-rag": "command": @@ -213,7 +228,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -266,7 +281,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -283,7 +298,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-triples": "command": @@ -300,7 +315,7 @@ "reservations": "cpus": "0.1" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -317,7 +332,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -334,7 +349,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-triples": "command": @@ -351,7 +366,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion": "command": @@ -370,7 +385,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion-rag": "command": @@ -393,7 +408,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "vectorize": "command": @@ -408,7 +423,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": "cassandra": {} diff --git a/tg-launch-ollama-neo4j.yaml b/tg-launch-ollama-neo4j.yaml index ccbea47e..9eb5a74d 100644 --- a/tg-launch-ollama-neo4j.yaml +++ b/tg-launch-ollama-neo4j.yaml @@ -16,7 +16,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "embeddings": "command": @@ -33,7 +33,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "grafana": "deploy": @@ -78,7 +78,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "init-pulsar": "command": @@ -108,7 +108,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -123,7 +123,22 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "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.9.4" "restart": "on-failure:100" "neo4j": "deploy": @@ -156,7 +171,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prometheus": "deploy": @@ -191,7 +206,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prompt-rag": "command": @@ -214,7 +229,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -267,7 +282,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -284,7 +299,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-triples": "command": @@ -301,7 +316,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -318,7 +333,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -335,7 +350,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-triples": "command": @@ -352,7 +367,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion": "command": @@ -371,7 +386,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion-rag": "command": @@ -394,7 +409,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "vectorize": "command": @@ -409,7 +424,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": "grafana-storage": {} diff --git a/tg-launch-openai-cassandra.yaml b/tg-launch-openai-cassandra.yaml index 4415cff3..c52718b7 100644 --- a/tg-launch-openai-cassandra.yaml +++ b/tg-launch-openai-cassandra.yaml @@ -33,7 +33,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "embeddings": "command": @@ -50,7 +50,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "grafana": "deploy": @@ -95,7 +95,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "init-pulsar": "command": @@ -125,7 +125,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -140,7 +140,22 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "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.9.4" "restart": "on-failure:100" "pdf-decoder": "command": @@ -155,7 +170,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prometheus": "deploy": @@ -186,6 +201,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -214,7 +231,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prompt-rag": "command": @@ -233,6 +250,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -261,7 +280,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -314,7 +333,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -331,7 +350,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-triples": "command": @@ -348,7 +367,7 @@ "reservations": "cpus": "0.1" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -365,7 +384,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -382,7 +401,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-triples": "command": @@ -399,7 +418,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion": "command": @@ -422,7 +441,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion-rag": "command": @@ -449,7 +468,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "vectorize": "command": @@ -464,7 +483,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": "cassandra": {} diff --git a/tg-launch-openai-neo4j.yaml b/tg-launch-openai-neo4j.yaml index 6a62caba..82b9cbb8 100644 --- a/tg-launch-openai-neo4j.yaml +++ b/tg-launch-openai-neo4j.yaml @@ -16,7 +16,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "embeddings": "command": @@ -33,7 +33,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "grafana": "deploy": @@ -78,7 +78,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "init-pulsar": "command": @@ -108,7 +108,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -123,7 +123,22 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "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.9.4" "restart": "on-failure:100" "neo4j": "deploy": @@ -156,7 +171,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prometheus": "deploy": @@ -187,6 +202,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -215,7 +232,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prompt-rag": "command": @@ -234,6 +251,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -262,7 +281,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -315,7 +334,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -332,7 +351,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-triples": "command": @@ -349,7 +368,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -366,7 +385,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -383,7 +402,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-triples": "command": @@ -400,7 +419,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion": "command": @@ -423,7 +442,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion-rag": "command": @@ -450,7 +469,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "vectorize": "command": @@ -465,7 +484,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": "grafana-storage": {} diff --git a/tg-launch-vertexai-cassandra.yaml b/tg-launch-vertexai-cassandra.yaml index 59a26c07..eb578bd1 100644 --- a/tg-launch-vertexai-cassandra.yaml +++ b/tg-launch-vertexai-cassandra.yaml @@ -33,7 +33,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "embeddings": "command": @@ -50,7 +50,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "grafana": "deploy": @@ -95,7 +95,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "init-pulsar": "command": @@ -125,7 +125,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -140,7 +140,22 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "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.9.4" "restart": "on-failure:100" "pdf-decoder": "command": @@ -155,7 +170,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prometheus": "deploy": @@ -186,6 +201,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -214,7 +231,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prompt-rag": "command": @@ -233,6 +250,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -261,7 +280,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -314,7 +333,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -331,7 +350,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-triples": "command": @@ -348,7 +367,7 @@ "reservations": "cpus": "0.1" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -365,7 +384,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -382,7 +401,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-triples": "command": @@ -399,7 +418,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion": "command": @@ -424,7 +443,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": - "./vertexai:/vertexai" @@ -455,7 +474,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": - "./vertexai:/vertexai" @@ -472,7 +491,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": "cassandra": {} diff --git a/tg-launch-vertexai-neo4j.yaml b/tg-launch-vertexai-neo4j.yaml index 83c7c681..598ec9d3 100644 --- a/tg-launch-vertexai-neo4j.yaml +++ b/tg-launch-vertexai-neo4j.yaml @@ -16,7 +16,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "embeddings": "command": @@ -33,7 +33,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "grafana": "deploy": @@ -78,7 +78,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "init-pulsar": "command": @@ -108,7 +108,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -123,7 +123,22 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "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.9.4" "restart": "on-failure:100" "neo4j": "deploy": @@ -156,7 +171,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prometheus": "deploy": @@ -187,6 +202,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -215,7 +232,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "prompt-rag": "command": @@ -234,6 +251,8 @@ - "\nStudy the following text and derive definitions for any discovered entities.\nDo not provide definitions for entities whose definitions are incomplete\nor unknown.\nOutput relationships in JSON format as an arary of objects with fields:\n- entity: the name of the entity\n- definition: English text which defines the entity\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract will be written as plain text. Do not add markdown formatting\nor headers or prefixes. Do not include null or unknown definitions.\n" - "--relationship-template" - "\nStudy the following text and derive entity relationships. For each\nrelationship, derive the subject, predicate and object of the relationship.\nOutput relationships in JSON format as an arary of objects with fields:\n- subject: the subject of the relationship\n- predicate: the predicate\n- object: the object of the relationship\n- object-entity: false if the object is a simple data type: name, value or date. true if it is an entity.\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not use special characters in the abstract text. The\nabstract must be written as plain text. Do not add markdown formatting\nor headers or prefixes.\n" + - "--topic-template" + - "You are a helpful assistant that performs information extraction tasks for a provided text.\nRead the provided text. You will identify topics and their definitions in JSON.\n\nReading Instructions:\n- Ignore document formatting in the provided text.\n- Study the provided text carefully.\n\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond with special characters.\n- Return only topics that are concepts and unique to the provided text.\n- Respond only with well-formed JSON.\n- The JSON response shall be an array of objects with keys \"topic\" and \"definition\". \n- The JSON response shall use the following structure:\n\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do not write any additional text or explanations." - "--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. @@ -262,7 +281,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -315,7 +334,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -332,7 +351,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-triples": "command": @@ -349,7 +368,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -366,7 +385,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -383,7 +402,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-triples": "command": @@ -400,7 +419,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "text-completion": "command": @@ -425,7 +444,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": - "./vertexai:/vertexai" @@ -456,7 +475,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": - "./vertexai:/vertexai" @@ -473,7 +492,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": "grafana-storage": {} diff --git a/tg-storage-cassandra.yaml b/tg-storage-cassandra.yaml index 2e358e41..5f529e21 100644 --- a/tg-storage-cassandra.yaml +++ b/tg-storage-cassandra.yaml @@ -118,7 +118,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -135,7 +135,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-triples": "command": @@ -152,7 +152,7 @@ "reservations": "cpus": "0.1" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -169,7 +169,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -186,7 +186,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-triples": "command": @@ -203,7 +203,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": "cassandra": {} diff --git a/tg-storage-neo4j.yaml b/tg-storage-neo4j.yaml index d5bca10c..31e88987 100644 --- a/tg-storage-neo4j.yaml +++ b/tg-storage-neo4j.yaml @@ -119,7 +119,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -136,7 +136,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "query-triples": "command": @@ -153,7 +153,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -170,7 +170,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -187,7 +187,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "store-triples": "command": @@ -204,7 +204,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.3" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" "restart": "on-failure:100" "volumes": "grafana-storage": {} From 9612a11581e92b17af75856f44e6bc9b4b8e9264 Mon Sep 17 00:00:00 2001 From: Jack Colquitt <126733989+JackColquitt@users.noreply.github.com> Date: Mon, 16 Sep 2024 08:18:01 -0700 Subject: [PATCH 04/15] Added basic Llamafile integration (#63) * Added basic Llamafile integration * Added llamafile template support * New templates following llamafile addition --------- Co-authored-by: Cyber MacGeddon --- Makefile | 6 +- scripts/text-completion-llamafile | 6 + setup.py | 3 +- templates/all-patterns.jsonnet | 1 + templates/components.jsonnet | 1 + templates/components/llamafile.jsonnet | 75 +++ templates/patterns/llm-llamafile.jsonnet | 41 ++ tg-launch-azure-cassandra.yaml | 36 +- tg-launch-azure-neo4j.yaml | 36 +- tg-launch-bedrock-cassandra.yaml | 36 +- tg-launch-bedrock-neo4j.yaml | 36 +- tg-launch-claude-cassandra.yaml | 36 +- tg-launch-claude-neo4j.yaml | 36 +- tg-launch-cohere-cassandra.yaml | 36 +- tg-launch-cohere-neo4j.yaml | 36 +- tg-launch-llamafile-cassandra.yaml | 434 +++++++++++++++++ tg-launch-llamafile-neo4j.yaml | 435 ++++++++++++++++++ tg-launch-ollama-cassandra.yaml | 36 +- tg-launch-ollama-neo4j.yaml | 36 +- tg-launch-openai-cassandra.yaml | 36 +- tg-launch-openai-neo4j.yaml | 36 +- tg-launch-vertexai-cassandra.yaml | 36 +- tg-launch-vertexai-neo4j.yaml | 36 +- tg-storage-cassandra.yaml | 12 +- tg-storage-neo4j.yaml | 12 +- .../text_completion/llamafile/__init__.py | 3 + .../text_completion/llamafile/__main__.py | 7 + .../model/text_completion/llamafile/llm.py | 195 ++++++++ 28 files changed, 1467 insertions(+), 268 deletions(-) create mode 100755 scripts/text-completion-llamafile create mode 100644 templates/components/llamafile.jsonnet create mode 100644 templates/patterns/llm-llamafile.jsonnet create mode 100644 tg-launch-llamafile-cassandra.yaml create mode 100644 tg-launch-llamafile-neo4j.yaml create mode 100644 trustgraph/model/text_completion/llamafile/__init__.py create mode 100755 trustgraph/model/text_completion/llamafile/__main__.py create mode 100755 trustgraph/model/text_completion/llamafile/llm.py diff --git a/Makefile b/Makefile index 63c971ba..b4aef413 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ # VERSION=$(shell git describe | sed 's/^v//') -VERSION=0.9.4 +VERSION=0.9.5 DOCKER=podman @@ -32,12 +32,12 @@ clean: set-version: echo '"${VERSION}"' > templates/values/version.jsonnet -TEMPLATES=azure bedrock claude cohere mix ollama openai vertexai \ +TEMPLATES=azure bedrock claude cohere mix llamafile ollama openai vertexai \ openai-neo4j storage DCS=$(foreach template,${TEMPLATES},${template:%=tg-launch-%.yaml}) -MODELS=azure bedrock claude cohere ollama openai vertexai +MODELS=azure bedrock claude cohere llamafile ollama openai vertexai GRAPHS=cassandra neo4j # tg-launch-%.yaml: templates/%.jsonnet templates/components/version.jsonnet diff --git a/scripts/text-completion-llamafile b/scripts/text-completion-llamafile new file mode 100755 index 00000000..38c48ac2 --- /dev/null +++ b/scripts/text-completion-llamafile @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 + +from trustgraph.model.text_completion.llamafile import run + +run() + diff --git a/setup.py b/setup.py index e11b21bf..e1ac688f 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ import os with open("README.md", "r") as fh: long_description = fh.read() -version = "0.9.4" +version = "0.9.5" setuptools.setup( name="trustgraph", @@ -94,6 +94,7 @@ setuptools.setup( "scripts/text-completion-bedrock", "scripts/text-completion-claude", "scripts/text-completion-cohere", + "scripts/text-completion-llamafile", "scripts/text-completion-ollama", "scripts/text-completion-openai", "scripts/text-completion-vertexai", diff --git a/templates/all-patterns.jsonnet b/templates/all-patterns.jsonnet index 8d588d62..29384d1e 100644 --- a/templates/all-patterns.jsonnet +++ b/templates/all-patterns.jsonnet @@ -10,6 +10,7 @@ import "patterns/llm-bedrock.jsonnet", import "patterns/llm-claude.jsonnet", import "patterns/llm-cohere.jsonnet", + import "patterns/llm-llamafile.jsonnet", import "patterns/llm-ollama.jsonnet", import "patterns/llm-openai.jsonnet", import "patterns/llm-vertexai.jsonnet", diff --git a/templates/components.jsonnet b/templates/components.jsonnet index afeed58b..8ed2da0e 100644 --- a/templates/components.jsonnet +++ b/templates/components.jsonnet @@ -10,6 +10,7 @@ "graph-rag": import "components/graph-rag.jsonnet", "triple-store-cassandra": import "components/cassandra.jsonnet", "triple-store-neo4j": import "components/neo4j.jsonnet", + "llamafile": import "components/llamafile.jsonnet", "ollama": import "components/ollama.jsonnet", "openai": import "components/openai.jsonnet", "override-recursive-chunker": import "components/chunker-recursive.jsonnet", diff --git a/templates/components/llamafile.jsonnet b/templates/components/llamafile.jsonnet new file mode 100644 index 00000000..93163a14 --- /dev/null +++ b/templates/components/llamafile.jsonnet @@ -0,0 +1,75 @@ +local base = import "base/base.jsonnet"; +local images = import "values/images.jsonnet"; +local url = import "values/url.jsonnet"; +local prompts = import "prompts/slm.jsonnet"; + +{ + + "llamafile-model":: "LLaMA_CPP", + "llamafile-url":: "${LLAMAFILE_URL}", + + "text-completion" +: { + + create:: function(engine) + + local container = + engine.container("text-completion") + .with_image(images.trustgraph) + .with_command([ + "text-completion-llamafile", + "-p", + url.pulsar, + "-m", + $["llamafile-model"], + "-r", + $["llamafile-url"], + ]) + .with_limits("0.5", "128M") + .with_reservations("0.1", "128M"); + + local containerSet = engine.containers( + "text-completion", [ container ] + ); + + engine.resources([ + containerSet, + ]) + + }, + + "text-completion-rag" +: { + + create:: function(engine) + + local container = + engine.container("text-completion-rag") + .with_image(images.trustgraph) + .with_command([ + "text-completion-llamafile", + "-p", + url.pulsar, + "-m", + $["llamafile-model"], + "-r", + $["llamafile-url"], + "-i", + "non-persistent://tg/request/text-completion-rag", + "-o", + "non-persistent://tg/response/text-completion-rag-response", + ]) + .with_limits("0.5", "128M") + .with_reservations("0.1", "128M"); + + local containerSet = engine.containers( + "text-completion-rag", [ container ] + ); + + engine.resources([ + containerSet, + ]) + + + } + +} + prompts + diff --git a/templates/patterns/llm-llamafile.jsonnet b/templates/patterns/llm-llamafile.jsonnet new file mode 100644 index 00000000..de2d95ef --- /dev/null +++ b/templates/patterns/llm-llamafile.jsonnet @@ -0,0 +1,41 @@ +{ + pattern: { + name: "llamafile", + icon: "🤖💬", + title: "Add Llamafile-invoked LLMs for text completion", + description: "This pattern integrates a Llamafile service for text completion operations. You need to have a running Llamafile implementation executing the necessary model in order to be able to use this service.", + requires: ["pulsar", "trustgraph"], + features: ["llm"], + args: [ + { + name: "llamafile-max-output-tokens", + label: "Maximum output tokens", + type: "integer", + description: "Limit on number tokens to generate", + default: 4096, + required: true, + }, + { + name: "llamafile-temperature", + label: "Temperature", + type: "slider", + description: "Controlling predictability / creativity balance", + min: 0, + max: 1, + step: 0.05, + default: 0.5, + }, + { + name: "llamafile-url", + label: "URL", + type: "text", + width: 120, + description: "URL of the Llamafile service", + default: "http://llamafile:8080", + required: true, + }, + ], + category: [ "llm" ], + }, + module: "components/llamafile.jsonnet", +} diff --git a/tg-launch-azure-cassandra.yaml b/tg-launch-azure-cassandra.yaml index 264e81fb..0c7f8b09 100644 --- a/tg-launch-azure-cassandra.yaml +++ b/tg-launch-azure-cassandra.yaml @@ -33,7 +33,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "embeddings": "command": @@ -50,7 +50,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "grafana": "deploy": @@ -95,7 +95,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "init-pulsar": "command": @@ -125,7 +125,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -140,7 +140,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-topics": "command": @@ -155,7 +155,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pdf-decoder": "command": @@ -170,7 +170,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prometheus": "deploy": @@ -231,7 +231,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prompt-rag": "command": @@ -280,7 +280,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -333,7 +333,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -350,7 +350,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-triples": "command": @@ -367,7 +367,7 @@ "reservations": "cpus": "0.1" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -384,7 +384,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -401,7 +401,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-triples": "command": @@ -418,7 +418,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion": "command": @@ -441,7 +441,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion-rag": "command": @@ -468,7 +468,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "vectorize": "command": @@ -483,7 +483,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": "cassandra": {} diff --git a/tg-launch-azure-neo4j.yaml b/tg-launch-azure-neo4j.yaml index 8e5a3fdd..d3db7faa 100644 --- a/tg-launch-azure-neo4j.yaml +++ b/tg-launch-azure-neo4j.yaml @@ -16,7 +16,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "embeddings": "command": @@ -33,7 +33,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "grafana": "deploy": @@ -78,7 +78,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "init-pulsar": "command": @@ -108,7 +108,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -123,7 +123,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-topics": "command": @@ -138,7 +138,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "neo4j": "deploy": @@ -171,7 +171,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prometheus": "deploy": @@ -232,7 +232,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prompt-rag": "command": @@ -281,7 +281,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -334,7 +334,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -351,7 +351,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-triples": "command": @@ -368,7 +368,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -385,7 +385,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -402,7 +402,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-triples": "command": @@ -419,7 +419,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion": "command": @@ -442,7 +442,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion-rag": "command": @@ -469,7 +469,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "vectorize": "command": @@ -484,7 +484,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": "grafana-storage": {} diff --git a/tg-launch-bedrock-cassandra.yaml b/tg-launch-bedrock-cassandra.yaml index 5093b954..3d18dc06 100644 --- a/tg-launch-bedrock-cassandra.yaml +++ b/tg-launch-bedrock-cassandra.yaml @@ -33,7 +33,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "embeddings": "command": @@ -50,7 +50,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "grafana": "deploy": @@ -95,7 +95,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "init-pulsar": "command": @@ -125,7 +125,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -140,7 +140,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-topics": "command": @@ -155,7 +155,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pdf-decoder": "command": @@ -170,7 +170,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prometheus": "deploy": @@ -231,7 +231,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prompt-rag": "command": @@ -280,7 +280,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -333,7 +333,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -350,7 +350,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-triples": "command": @@ -367,7 +367,7 @@ "reservations": "cpus": "0.1" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -384,7 +384,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -401,7 +401,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-triples": "command": @@ -418,7 +418,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion": "command": @@ -445,7 +445,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion-rag": "command": @@ -476,7 +476,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "vectorize": "command": @@ -491,7 +491,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": "cassandra": {} diff --git a/tg-launch-bedrock-neo4j.yaml b/tg-launch-bedrock-neo4j.yaml index 92829326..e52edbfc 100644 --- a/tg-launch-bedrock-neo4j.yaml +++ b/tg-launch-bedrock-neo4j.yaml @@ -16,7 +16,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "embeddings": "command": @@ -33,7 +33,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "grafana": "deploy": @@ -78,7 +78,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "init-pulsar": "command": @@ -108,7 +108,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -123,7 +123,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-topics": "command": @@ -138,7 +138,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "neo4j": "deploy": @@ -171,7 +171,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prometheus": "deploy": @@ -232,7 +232,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prompt-rag": "command": @@ -281,7 +281,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -334,7 +334,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -351,7 +351,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-triples": "command": @@ -368,7 +368,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -385,7 +385,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -402,7 +402,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-triples": "command": @@ -419,7 +419,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion": "command": @@ -446,7 +446,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion-rag": "command": @@ -477,7 +477,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "vectorize": "command": @@ -492,7 +492,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": "grafana-storage": {} diff --git a/tg-launch-claude-cassandra.yaml b/tg-launch-claude-cassandra.yaml index f2d2cb4f..3221d3ea 100644 --- a/tg-launch-claude-cassandra.yaml +++ b/tg-launch-claude-cassandra.yaml @@ -33,7 +33,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "embeddings": "command": @@ -50,7 +50,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "grafana": "deploy": @@ -95,7 +95,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "init-pulsar": "command": @@ -125,7 +125,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -140,7 +140,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-topics": "command": @@ -155,7 +155,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pdf-decoder": "command": @@ -170,7 +170,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prometheus": "deploy": @@ -231,7 +231,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prompt-rag": "command": @@ -280,7 +280,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -333,7 +333,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -350,7 +350,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-triples": "command": @@ -367,7 +367,7 @@ "reservations": "cpus": "0.1" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -384,7 +384,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -401,7 +401,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-triples": "command": @@ -418,7 +418,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion": "command": @@ -439,7 +439,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion-rag": "command": @@ -464,7 +464,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "vectorize": "command": @@ -479,7 +479,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": "cassandra": {} diff --git a/tg-launch-claude-neo4j.yaml b/tg-launch-claude-neo4j.yaml index 8ef9f8cc..f07fa68f 100644 --- a/tg-launch-claude-neo4j.yaml +++ b/tg-launch-claude-neo4j.yaml @@ -16,7 +16,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "embeddings": "command": @@ -33,7 +33,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "grafana": "deploy": @@ -78,7 +78,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "init-pulsar": "command": @@ -108,7 +108,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -123,7 +123,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-topics": "command": @@ -138,7 +138,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "neo4j": "deploy": @@ -171,7 +171,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prometheus": "deploy": @@ -232,7 +232,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prompt-rag": "command": @@ -281,7 +281,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -334,7 +334,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -351,7 +351,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-triples": "command": @@ -368,7 +368,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -385,7 +385,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -402,7 +402,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-triples": "command": @@ -419,7 +419,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion": "command": @@ -440,7 +440,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion-rag": "command": @@ -465,7 +465,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "vectorize": "command": @@ -480,7 +480,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": "grafana-storage": {} diff --git a/tg-launch-cohere-cassandra.yaml b/tg-launch-cohere-cassandra.yaml index 31fac7ae..bcfa345a 100644 --- a/tg-launch-cohere-cassandra.yaml +++ b/tg-launch-cohere-cassandra.yaml @@ -33,7 +33,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "embeddings": "command": @@ -50,7 +50,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "grafana": "deploy": @@ -95,7 +95,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "init-pulsar": "command": @@ -125,7 +125,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -140,7 +140,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-topics": "command": @@ -155,7 +155,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pdf-decoder": "command": @@ -170,7 +170,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prometheus": "deploy": @@ -231,7 +231,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prompt-rag": "command": @@ -280,7 +280,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -333,7 +333,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -350,7 +350,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-triples": "command": @@ -367,7 +367,7 @@ "reservations": "cpus": "0.1" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -384,7 +384,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -401,7 +401,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-triples": "command": @@ -418,7 +418,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion": "command": @@ -437,7 +437,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion-rag": "command": @@ -460,7 +460,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "vectorize": "command": @@ -475,7 +475,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": "cassandra": {} diff --git a/tg-launch-cohere-neo4j.yaml b/tg-launch-cohere-neo4j.yaml index 0ebb4979..0ec692d0 100644 --- a/tg-launch-cohere-neo4j.yaml +++ b/tg-launch-cohere-neo4j.yaml @@ -16,7 +16,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "embeddings": "command": @@ -33,7 +33,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "grafana": "deploy": @@ -78,7 +78,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "init-pulsar": "command": @@ -108,7 +108,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -123,7 +123,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-topics": "command": @@ -138,7 +138,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "neo4j": "deploy": @@ -171,7 +171,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prometheus": "deploy": @@ -232,7 +232,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prompt-rag": "command": @@ -281,7 +281,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -334,7 +334,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -351,7 +351,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-triples": "command": @@ -368,7 +368,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -385,7 +385,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -402,7 +402,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-triples": "command": @@ -419,7 +419,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion": "command": @@ -438,7 +438,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion-rag": "command": @@ -461,7 +461,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "vectorize": "command": @@ -476,7 +476,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": "grafana-storage": {} diff --git a/tg-launch-llamafile-cassandra.yaml b/tg-launch-llamafile-cassandra.yaml new file mode 100644 index 00000000..bb45eed0 --- /dev/null +++ b/tg-launch-llamafile-cassandra.yaml @@ -0,0 +1,434 @@ +"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.9.5" + "restart": "on-failure:100" + "embeddings": + "command": + - "embeddings-hf" + - "-p" + - "pulsar://pulsar:6650" + - "-m" + - "all-MiniLM-L6-v2" + "deploy": + "resources": + "limits": + "cpus": "1.0" + "memory": "256M" + "reservations": + "cpus": "0.5" + "memory": "256M" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" + "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/dashboard.yml:/etc/grafana/provisioning/dashboards/dashboard.yml" + - "./grafana/datasource.yml:/etc/grafana/provisioning/datasources/datasource.yml" + - "./grafana/dashboard.json:/var/lib/grafana/dashboards/dashboard.json" + "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.9.5" + "restart": "on-failure:100" + "init-pulsar": + "command": + - "sh" + - "-c" + - "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" + "deploy": + "resources": + "limits": + "cpus": "0.5" + "memory": "128M" + "reservations": + "cpus": "0.1" + "memory": "128M" + "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "restart": "on-failure:100" + "pulsar": + "command": "bin/pulsar standalone" + "deploy": + "resources": + "limits": + "cpus": "1.0" + "memory": "900M" + "reservations": + "cpus": "0.5" + "memory": "900M" + "environment": + "PULSAR_MEM": "-Xms700M -Xmx700M" + "image": "docker.io/apachepulsar/pulsar:3.3.1" + "ports": + - "6650:6650" + - "8080:8080" + "restart": "on-failure:100" + "volumes": + - "pulsar-conf:/pulsar/conf" + - "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "restart": "on-failure:100" +"volumes": + "cassandra": {} + "grafana-storage": {} + "prometheus-data": {} + "pulsar-conf": {} + "pulsar-data": {} + "qdrant": {} diff --git a/tg-launch-llamafile-neo4j.yaml b/tg-launch-llamafile-neo4j.yaml new file mode 100644 index 00000000..d57ac5dc --- /dev/null +++ b/tg-launch-llamafile-neo4j.yaml @@ -0,0 +1,435 @@ +"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.9.5" + "restart": "on-failure:100" + "embeddings": + "command": + - "embeddings-hf" + - "-p" + - "pulsar://pulsar:6650" + - "-m" + - "all-MiniLM-L6-v2" + "deploy": + "resources": + "limits": + "cpus": "1.0" + "memory": "256M" + "reservations": + "cpus": "0.5" + "memory": "256M" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" + "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/dashboard.yml:/etc/grafana/provisioning/dashboards/dashboard.yml" + - "./grafana/datasource.yml:/etc/grafana/provisioning/datasources/datasource.yml" + - "./grafana/dashboard.json:/var/lib/grafana/dashboards/dashboard.json" + "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.9.5" + "restart": "on-failure:100" + "init-pulsar": + "command": + - "sh" + - "-c" + - "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" + "deploy": + "resources": + "limits": + "cpus": "0.5" + "memory": "128M" + "reservations": + "cpus": "0.1" + "memory": "128M" + "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "restart": "on-failure:100" + "pulsar": + "command": "bin/pulsar standalone" + "deploy": + "resources": + "limits": + "cpus": "1.0" + "memory": "900M" + "reservations": + "cpus": "0.5" + "memory": "900M" + "environment": + "PULSAR_MEM": "-Xms700M -Xmx700M" + "image": "docker.io/apachepulsar/pulsar:3.3.1" + "ports": + - "6650:6650" + - "8080:8080" + "restart": "on-failure:100" + "volumes": + - "pulsar-conf:/pulsar/conf" + - "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "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.9.5" + "restart": "on-failure:100" +"volumes": + "grafana-storage": {} + "neo4j": {} + "prometheus-data": {} + "pulsar-conf": {} + "pulsar-data": {} + "qdrant": {} diff --git a/tg-launch-ollama-cassandra.yaml b/tg-launch-ollama-cassandra.yaml index 6b2b37c2..171176df 100644 --- a/tg-launch-ollama-cassandra.yaml +++ b/tg-launch-ollama-cassandra.yaml @@ -33,7 +33,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "embeddings": "command": @@ -50,7 +50,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "grafana": "deploy": @@ -95,7 +95,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "init-pulsar": "command": @@ -125,7 +125,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -140,7 +140,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-topics": "command": @@ -155,7 +155,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pdf-decoder": "command": @@ -170,7 +170,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prometheus": "deploy": @@ -205,7 +205,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prompt-rag": "command": @@ -228,7 +228,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -281,7 +281,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -298,7 +298,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-triples": "command": @@ -315,7 +315,7 @@ "reservations": "cpus": "0.1" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -332,7 +332,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -349,7 +349,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-triples": "command": @@ -366,7 +366,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion": "command": @@ -385,7 +385,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion-rag": "command": @@ -408,7 +408,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "vectorize": "command": @@ -423,7 +423,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": "cassandra": {} diff --git a/tg-launch-ollama-neo4j.yaml b/tg-launch-ollama-neo4j.yaml index 9eb5a74d..e99c9d49 100644 --- a/tg-launch-ollama-neo4j.yaml +++ b/tg-launch-ollama-neo4j.yaml @@ -16,7 +16,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "embeddings": "command": @@ -33,7 +33,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "grafana": "deploy": @@ -78,7 +78,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "init-pulsar": "command": @@ -108,7 +108,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -123,7 +123,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-topics": "command": @@ -138,7 +138,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "neo4j": "deploy": @@ -171,7 +171,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prometheus": "deploy": @@ -206,7 +206,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prompt-rag": "command": @@ -229,7 +229,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -282,7 +282,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -299,7 +299,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-triples": "command": @@ -316,7 +316,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -333,7 +333,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -350,7 +350,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-triples": "command": @@ -367,7 +367,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion": "command": @@ -386,7 +386,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion-rag": "command": @@ -409,7 +409,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "vectorize": "command": @@ -424,7 +424,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": "grafana-storage": {} diff --git a/tg-launch-openai-cassandra.yaml b/tg-launch-openai-cassandra.yaml index c52718b7..209580c0 100644 --- a/tg-launch-openai-cassandra.yaml +++ b/tg-launch-openai-cassandra.yaml @@ -33,7 +33,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "embeddings": "command": @@ -50,7 +50,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "grafana": "deploy": @@ -95,7 +95,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "init-pulsar": "command": @@ -125,7 +125,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -140,7 +140,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-topics": "command": @@ -155,7 +155,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pdf-decoder": "command": @@ -170,7 +170,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prometheus": "deploy": @@ -231,7 +231,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prompt-rag": "command": @@ -280,7 +280,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -333,7 +333,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -350,7 +350,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-triples": "command": @@ -367,7 +367,7 @@ "reservations": "cpus": "0.1" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -384,7 +384,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -401,7 +401,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-triples": "command": @@ -418,7 +418,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion": "command": @@ -441,7 +441,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion-rag": "command": @@ -468,7 +468,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "vectorize": "command": @@ -483,7 +483,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": "cassandra": {} diff --git a/tg-launch-openai-neo4j.yaml b/tg-launch-openai-neo4j.yaml index 82b9cbb8..e3edbdb9 100644 --- a/tg-launch-openai-neo4j.yaml +++ b/tg-launch-openai-neo4j.yaml @@ -16,7 +16,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "embeddings": "command": @@ -33,7 +33,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "grafana": "deploy": @@ -78,7 +78,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "init-pulsar": "command": @@ -108,7 +108,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -123,7 +123,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-topics": "command": @@ -138,7 +138,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "neo4j": "deploy": @@ -171,7 +171,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prometheus": "deploy": @@ -232,7 +232,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prompt-rag": "command": @@ -281,7 +281,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -334,7 +334,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -351,7 +351,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-triples": "command": @@ -368,7 +368,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -385,7 +385,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -402,7 +402,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-triples": "command": @@ -419,7 +419,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion": "command": @@ -442,7 +442,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion-rag": "command": @@ -469,7 +469,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "vectorize": "command": @@ -484,7 +484,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": "grafana-storage": {} diff --git a/tg-launch-vertexai-cassandra.yaml b/tg-launch-vertexai-cassandra.yaml index eb578bd1..1f29b1a7 100644 --- a/tg-launch-vertexai-cassandra.yaml +++ b/tg-launch-vertexai-cassandra.yaml @@ -33,7 +33,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "embeddings": "command": @@ -50,7 +50,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "grafana": "deploy": @@ -95,7 +95,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "init-pulsar": "command": @@ -125,7 +125,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -140,7 +140,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-topics": "command": @@ -155,7 +155,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pdf-decoder": "command": @@ -170,7 +170,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prometheus": "deploy": @@ -231,7 +231,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prompt-rag": "command": @@ -280,7 +280,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -333,7 +333,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -350,7 +350,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-triples": "command": @@ -367,7 +367,7 @@ "reservations": "cpus": "0.1" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -384,7 +384,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -401,7 +401,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-triples": "command": @@ -418,7 +418,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion": "command": @@ -443,7 +443,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": - "./vertexai:/vertexai" @@ -474,7 +474,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": - "./vertexai:/vertexai" @@ -491,7 +491,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": "cassandra": {} diff --git a/tg-launch-vertexai-neo4j.yaml b/tg-launch-vertexai-neo4j.yaml index 598ec9d3..9b57a4b5 100644 --- a/tg-launch-vertexai-neo4j.yaml +++ b/tg-launch-vertexai-neo4j.yaml @@ -16,7 +16,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "embeddings": "command": @@ -33,7 +33,7 @@ "reservations": "cpus": "0.5" "memory": "256M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "grafana": "deploy": @@ -78,7 +78,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "init-pulsar": "command": @@ -108,7 +108,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-relationships": "command": @@ -123,7 +123,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "kg-extract-topics": "command": @@ -138,7 +138,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "neo4j": "deploy": @@ -171,7 +171,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prometheus": "deploy": @@ -232,7 +232,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "prompt-rag": "command": @@ -281,7 +281,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "pulsar": "command": "bin/pulsar standalone" @@ -334,7 +334,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -351,7 +351,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-triples": "command": @@ -368,7 +368,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -385,7 +385,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -402,7 +402,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-triples": "command": @@ -419,7 +419,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "text-completion": "command": @@ -444,7 +444,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": - "./vertexai:/vertexai" @@ -475,7 +475,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": - "./vertexai:/vertexai" @@ -492,7 +492,7 @@ "reservations": "cpus": "0.5" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": "grafana-storage": {} diff --git a/tg-storage-cassandra.yaml b/tg-storage-cassandra.yaml index 5f529e21..b3e9b1f3 100644 --- a/tg-storage-cassandra.yaml +++ b/tg-storage-cassandra.yaml @@ -118,7 +118,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -135,7 +135,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-triples": "command": @@ -152,7 +152,7 @@ "reservations": "cpus": "0.1" "memory": "512M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -169,7 +169,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -186,7 +186,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-triples": "command": @@ -203,7 +203,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": "cassandra": {} diff --git a/tg-storage-neo4j.yaml b/tg-storage-neo4j.yaml index 31e88987..bfd1ba34 100644 --- a/tg-storage-neo4j.yaml +++ b/tg-storage-neo4j.yaml @@ -119,7 +119,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-graph-embeddings": "command": @@ -136,7 +136,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "query-triples": "command": @@ -153,7 +153,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-doc-embeddings": "command": @@ -170,7 +170,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-graph-embeddings": "command": @@ -187,7 +187,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "store-triples": "command": @@ -204,7 +204,7 @@ "reservations": "cpus": "0.1" "memory": "128M" - "image": "docker.io/trustgraph/trustgraph-flow:0.9.4" + "image": "docker.io/trustgraph/trustgraph-flow:0.9.5" "restart": "on-failure:100" "volumes": "grafana-storage": {} diff --git a/trustgraph/model/text_completion/llamafile/__init__.py b/trustgraph/model/text_completion/llamafile/__init__.py new file mode 100644 index 00000000..f2017af8 --- /dev/null +++ b/trustgraph/model/text_completion/llamafile/__init__.py @@ -0,0 +1,3 @@ + +from . llm import * + diff --git a/trustgraph/model/text_completion/llamafile/__main__.py b/trustgraph/model/text_completion/llamafile/__main__.py new file mode 100755 index 00000000..91342d2d --- /dev/null +++ b/trustgraph/model/text_completion/llamafile/__main__.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python3 + +from . llm import run + +if __name__ == '__main__': + run() + diff --git a/trustgraph/model/text_completion/llamafile/llm.py b/trustgraph/model/text_completion/llamafile/llm.py new file mode 100755 index 00000000..c42ec472 --- /dev/null +++ b/trustgraph/model/text_completion/llamafile/llm.py @@ -0,0 +1,195 @@ + +""" +Simple LLM service, performs text prompt completion using OpenAI. +Input is prompt, output is response. +""" + +from openai import OpenAI +from prometheus_client import Histogram + +from .... schema import TextCompletionRequest, TextCompletionResponse, Error +from .... schema import text_completion_request_queue +from .... schema import text_completion_response_queue +from .... log_level import LogLevel +from .... base import ConsumerProducer +from .... exceptions import TooManyRequests + +module = ".".join(__name__.split(".")[1:-1]) + +default_input_queue = text_completion_request_queue +default_output_queue = text_completion_response_queue +default_subscriber = module +default_model = 'LLaMA_CPP' +default_llamafile = 'http://localhost:8080/v1' +default_temperature = 0.0 +default_max_output = 4096 + +class Processor(ConsumerProducer): + + def __init__(self, **params): + + input_queue = params.get("input_queue", default_input_queue) + output_queue = params.get("output_queue", default_output_queue) + subscriber = params.get("subscriber", default_subscriber) + model = params.get("model", default_model) + llamafile = params.get("llamafile", default_llamafile) + temperature = params.get("temperature", default_temperature) + max_output = params.get("max_output", default_max_output) + + super(Processor, self).__init__( + **params | { + "input_queue": input_queue, + "output_queue": output_queue, + "subscriber": subscriber, + "input_schema": TextCompletionRequest, + "output_schema": TextCompletionResponse, + "model": model, + "temperature": temperature, + "max_output": max_output, + "llamafile" : llamafile, + } + ) + + if not hasattr(__class__, "text_completion_metric"): + __class__.text_completion_metric = Histogram( + 'text_completion_duration', + 'Text completion duration (seconds)', + buckets=[ + 0.25, 0.5, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, + 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, + 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, + 30.0, 35.0, 40.0, 45.0, 50.0, 60.0, 80.0, 100.0, + 120.0 + ] + ) + + self.model = model + self.llamafile=llamafile + self.temperature = temperature + self.max_output = max_output + self.openai = OpenAI( + base_url=self.llamafile, + api_key = "sk-no-key-required", + ) + + print("Initialised", flush=True) + + def handle(self, msg): + + v = msg.value() + + # Sender-produced ID + + id = msg.properties()["id"] + + print(f"Handling prompt {id}...", flush=True) + + prompt = v.prompt + + try: + + # FIXME: Rate limits + + with __class__.text_completion_metric.time(): + + resp = self.openai.chat.completions.create( + model=self.model, + messages=[ + {"role": "user", "content": prompt} + ] + #temperature=self.temperature, + #max_tokens=self.max_output, + #top_p=1, + #frequency_penalty=0, + #presence_penalty=0, + #response_format={ + # "type": "text" + #} + ) + + print(resp.choices[0].message.content, flush=True) + + print("Send response...", flush=True) + r = TextCompletionResponse( + response=resp.choices[0].message.content, + error=None, + ) + self.send(r, properties={"id": id}) + + print("Done.", flush=True) + + # FIXME: Wrong exception, don't know what this LLM throws + # for a rate limit + except TooManyRequests: + + print("Send rate limit response...", flush=True) + + r = TextCompletionResponse( + error=Error( + type = "rate-limit", + message = str(e), + ), + response=None, + ) + + self.producer.send(r, properties={"id": id}) + + self.consumer.acknowledge(msg) + + except Exception as e: + + print(f"Exception: {e}") + + print("Send error response...", flush=True) + + r = TextCompletionResponse( + error=Error( + type = "llm-error", + message = str(e), + ), + response=None, + ) + + self.producer.send(r, properties={"id": id}) + + self.consumer.acknowledge(msg) + + @staticmethod + def add_args(parser): + + ConsumerProducer.add_args( + parser, default_input_queue, default_subscriber, + default_output_queue, + ) + + parser.add_argument( + '-m', '--model', + default=default_model, + help=f'LLM model (default: LLaMA_CPP)' + ) + + parser.add_argument( + '-r', '--llamafile', + default=default_llamafile, + help=f'ollama (default: {default_llamafile})' + ) + + parser.add_argument( + '-t', '--temperature', + type=float, + default=default_temperature, + help=f'LLM temperature parameter (default: {default_temperature})' + ) + + parser.add_argument( + '-x', '--max-output', + type=int, + default=default_max_output, + help=f'LLM max output tokens (default: {default_max_output})' + ) + +def run(): + + Processor.start(module, __doc__) + + From 7818178f41887a7e95fc99067de72d87fbacc1f2 Mon Sep 17 00:00:00 2001 From: JackColquitt Date: Mon, 16 Sep 2024 10:37:53 -0700 Subject: [PATCH 05/15] Updated readme --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3e51b4dc..52301567 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Processing modules are executed in containers. Processing can be scaled-up by d - PDF decoding - Text chunking -- Inference of LMs deployed with [Ollama](https://ollama.com) +- Inference of LMs deployed locally with [Ollama](https://ollama.com) or [Llamafile](https://github.com/Mozilla-Ocho/llamafile) - Inference of Cloud LLMs: `AWS Bedrock`, `AzureAI`, `Anthropic`, `Cohere`, `OpenAI`, and `VertexAI` - Mixed model deployments - Application of a [HuggingFace](https://hf.co) embeddings models @@ -58,9 +58,11 @@ The entire architecture, the pub/sub backbone and set of modules, is bundled int - `graph-rag` - A query service which applies a GraphRAG algorithm to provide a response to a text prompt. - `triples-write-cassandra` - Takes knowledge graph edges and writes them to a Cassandra store. - `triples-write-neo4j` - Takes knowledge graph edges and writes them to a Neo4j store. -- `kg-extract-definitions` - knowledge extractor - examines text and produces graph edges. describing discovered terms and also their defintions. Definitions are derived using the input documents. +- `kg-extract-definitions` - knowledge extractor - examines text and produces graph edges. describing discovered terms and also their defintions. Definitions are derived using the input documents. - `kg-extract-relationships` - knowledge extractor - examines text and produces graph edges describing the relationships between discovered terms. -- `loader` - Takes a document and loads into the processing pipeline. Used e.g. to add PDF documents. +- `kg-extract-topics` - knowledge extractor - examines text and produces graph edges describing conceptual terms. +- `load-pdf` - Takes a PDF and loads into the processing pipeline. +- `load-text` - Takes a .txt file and loads into the processing pipeline. - `pdf-decoder` - Takes a PDF doc and emits text extracted from the document. Text extraction from PDF is not a perfect science as PDF is a printable format. For instance, the wrapping of text between lines in a PDF document is not semantically encoded, so the decoder will see wrapped lines as space-separated. - `ge-write-qdrant` - Takes graph embeddings mappings and records them in the vector embeddings store. @@ -70,13 +72,14 @@ The entire architecture, the pub/sub backbone and set of modules, is bundled int - `text-completion-bedrock` - Send request to AWS Bedrock API - `text-completion-claude` - Sends request to Anthropic's API - `text-completion-cohere` - Send request to Cohere's API +- `text-completion-llamafile` - Sends request to running Llamafile - `text-completion-ollama` - Sends request to LM running using Ollama - `text-completion-openai` - Sends request to OpenAI's API - `text-completion-vertexai` - Sends request to model available through VertexAI API ## Quickstart Guide -[🚀 Quickstart](docs/README.quickstart-docker-compose.md) +[🚀 Quickstart](https://trustgraph.ai/docs/getstarted) ## Development Guide From 28a28b9f0a22ed32950ebb18cd1c7efaa7dc732a Mon Sep 17 00:00:00 2001 From: JackColquitt Date: Mon, 16 Sep 2024 17:52:02 -0700 Subject: [PATCH 06/15] Updated readme --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 52301567..87ab7355 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,9 @@ ## Introduction -TrustGraph deploys private GraphRAG pipelines to unlock the wisdom buried in your data. TrustGraph ingests data to build a RDF style knowledge graph to enable accurate and secure `RAG` requests compatible with cloud LLMs and open-source SLMs (Small Language Models). +TrustGraph deploys a full E2E (end-to-end) AI solution with native GraphRAG in minutes. TrustGraph is designed for maximimum flexibility and modularity whether it's calling Cloud LLMs or deploying SLMs On-Device. TrustGraph ingests data to build a RDF style knowledge graph to enable accurate and private `RAG` responses using only the knowledge you want, when you want. -The pipeline processing components are interconnected with a pub/sub engine to maximize modularity for agent integration. The core processing components decode documents, chunk text, perform embeddings, apply a local SLM/LLM, call a LLM API, and generate LM predictions. +The pipeline processing components are interconnected with a pub/sub engine to maximize modularity for agent integration. The core processing components decode documents, chunk text, perform embeddings, apply an On-Device SLM/LLM, call a LLM API, and generate LM predictions. The processing showcases the reliability and efficiences of GraphRAG algorithms which can capture contextual language flags that are missed in conventional RAG approaches. Graph querying algorithms enable retrieving not just relevant knowledge but language cues essential to understanding semantic uses unique to a text corpus. @@ -21,11 +21,11 @@ Processing modules are executed in containers. Processing can be scaled-up by d - PDF decoding - Text chunking -- Inference of LMs deployed locally with [Ollama](https://ollama.com) or [Llamafile](https://github.com/Mozilla-Ocho/llamafile) +- Inference of On-Device SLMs deployed with [Ollama](https://ollama.com) or [Llamafile](https://github.com/Mozilla-Ocho/llamafile) - Inference of Cloud LLMs: `AWS Bedrock`, `AzureAI`, `Anthropic`, `Cohere`, `OpenAI`, and `VertexAI` - Mixed model deployments - Application of a [HuggingFace](https://hf.co) embeddings models -- [RDF](https://www.w3.org/TR/rdf12-schema/)-aligned Knowledge Graph extraction +- [RDF](https://www.w3.org/TR/rdf12-schema/) aligned Knowledge Graph extraction - Graph edge loading into [Apache Cassandra](https://github.com/apache/cassandra) or [Neo4j](https://neo4j.com/) - Storing embeddings in [Qdrant](https://qdrant.tech/) - Build and load [Knowledge Cores](https://trustgraph.ai/docs/category/knowledge-cores) @@ -33,7 +33,7 @@ Processing modules are executed in containers. Processing can be scaled-up by d - GraphRAG query service - All procesing integrates with [Apache Pulsar](https://github.com/apache/pulsar/) - Containers deployed using `Docker` or [Podman](http://podman.io/) -- Plug'n'play architecture: switch different LLM modules to suit your needs +- Maximum modularity: switch different LM modules to suit your needs ## Architecture @@ -72,15 +72,15 @@ The entire architecture, the pub/sub backbone and set of modules, is bundled int - `text-completion-bedrock` - Send request to AWS Bedrock API - `text-completion-claude` - Sends request to Anthropic's API - `text-completion-cohere` - Send request to Cohere's API -- `text-completion-llamafile` - Sends request to running Llamafile -- `text-completion-ollama` - Sends request to LM running using Ollama +- `text-completion-llamafile` - Sends request On-Device Llamafile +- `text-completion-ollama` - Sends request to On-Device LM running using Ollama - `text-completion-openai` - Sends request to OpenAI's API - `text-completion-vertexai` - Sends request to model available through VertexAI API -## Quickstart Guide +## Deploy TrustGraph -[🚀 Quickstart](https://trustgraph.ai/docs/getstarted) +[🚀 Quickstart 🚀](https://trustgraph.ai/docs/getstarted) -## Development Guide +## TrustGraph Developer's Guide See [Development on trustgraph](docs/README.development.md) From 28c2815ac3af6b560d991efc04da92d4c272013c Mon Sep 17 00:00:00 2001 From: JackColquitt Date: Mon, 16 Sep 2024 17:53:47 -0700 Subject: [PATCH 07/15] Fixed readme typos --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 87ab7355..385563ba 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ ## Introduction -TrustGraph deploys a full E2E (end-to-end) AI solution with native GraphRAG in minutes. TrustGraph is designed for maximimum flexibility and modularity whether it's calling Cloud LLMs or deploying SLMs On-Device. TrustGraph ingests data to build a RDF style knowledge graph to enable accurate and private `RAG` responses using only the knowledge you want, when you want. +TrustGraph deploys a full E2E (end-to-end) AI solution with native GraphRAG in minutes. TrustGraph is designed for maximum flexibility and modularity whether it's calling Cloud LLMs or deploying SLMs On-Device. TrustGraph ingests data to build a RDF style knowledge graph to enable accurate and private `RAG` responses using only the knowledge you want, when you want. The pipeline processing components are interconnected with a pub/sub engine to maximize modularity for agent integration. The core processing components decode documents, chunk text, perform embeddings, apply an On-Device SLM/LLM, call a LLM API, and generate LM predictions. @@ -72,7 +72,7 @@ The entire architecture, the pub/sub backbone and set of modules, is bundled int - `text-completion-bedrock` - Send request to AWS Bedrock API - `text-completion-claude` - Sends request to Anthropic's API - `text-completion-cohere` - Send request to Cohere's API -- `text-completion-llamafile` - Sends request On-Device Llamafile +- `text-completion-llamafile` - Sends request to On-Device Llamafile - `text-completion-ollama` - Sends request to On-Device LM running using Ollama - `text-completion-openai` - Sends request to OpenAI's API - `text-completion-vertexai` - Sends request to model available through VertexAI API From 543c10090f696624538c0623a82246adbc15bd68 Mon Sep 17 00:00:00 2001 From: JackColquitt Date: Sun, 22 Sep 2024 10:41:49 -0700 Subject: [PATCH 08/15] Readme tweaks --- README.md | 4 ++-- TG_Banner.png | Bin 162245 -> 0 bytes TG_Banner_readme.png | Bin 0 -> 162600 bytes 3 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 TG_Banner.png create mode 100644 TG_Banner_readme.png diff --git a/README.md b/README.md index 385563ba..5e921d2d 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # TrustGraph -![TrustGraph banner](TG_Banner.png) +![TrustGraph banner](TG_Banner_readme.png) 🚀 [Get Started](https://trustgraph.ai/docs/getstarted) 💬 [Join the Discord](https://discord.gg/AXpxVjwzAw) @@ -83,4 +83,4 @@ The entire architecture, the pub/sub backbone and set of modules, is bundled int ## TrustGraph Developer's Guide -See [Development on trustgraph](docs/README.development.md) +See [Development on TrustGraph](docs/README.development.md) diff --git a/TG_Banner.png b/TG_Banner.png deleted file mode 100644 index 301827934f85fe3b296761a9a3c3d4b42d357499..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162245 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�eJ=ej7ipenIMn?+gI+L7K= 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 diff --git a/TG_Banner_readme.png b/TG_Banner_readme.png new file mode 100644 index 0000000000000000000000000000000000000000..974737cba941fcf5950b0d16b12adc4cfa587d06 GIT binary patch literal 162600 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%0D%_mM_^Shf2ddo)*%$^gge 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

G;`{$eOtnV%F9bqou=b*epq<(15_n++c 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 literal 0 HcmV?d00001 diff --git a/sample-text-corpus.txt b/sample-text-corpus.txt new file mode 100644 index 00000000..179ce79f --- /dev/null +++ b/sample-text-corpus.txt @@ -0,0 +1,367 @@ + The Cosmic Tapestry: +Atlantean Cosmology, Spirituality, and Prophecy Introduction +The legendary civilization of Atlantis has captivated the human imagination for millennia. While concrete historical evidence for Atlantis remains elusive, the idea of an advanced ancient culture lost to time continues to inspire speculation and wonder. This paper will explore a hypothetical reconstruction of Atlantean cosmology, spiritual beliefs, cultural norms, and apocalyptic prophecies. +Drawing on a variety of esoteric traditions, mythological motifs, and creative speculation, we will paint a picture of how the Atlanteans may have viewed the cosmos and their place within it. While entirely speculative in nature, this exploration can offer intriguing food for thought on the nature of lost civilizations and alternative cosmological paradigms. +I. Atlantean Cosmology +At the heart of Atlantean cosmology was the concept of the Cosmic Tapestry - an intricate, multidimensional weaving of energy, consciousness, and matter that comprised all of existence. The Atlanteans did not see the universe as a vast emptiness punctuated by isolated islands of matter. Rather, they perceived reality as an infinitely complex, living, breathing whole in which all things were fundamentally interconnected. +The Cosmic Tapestry consisted of several key components: +1. The Primordial Waters - This was the underlying substrate of pure potentiality from which all things emerged. The Atlanteans saw it as a vast, cosmic ocean of infinite creative potential. +2. The Loom of Creation - This was the underlying structure or matrix that gave form and order to the Primordial Waters. It was envisioned as an immense, multidimensional loom on which the tapestry of reality was woven. +3. The Threads of Being - These were the fundamental constituents of existence - energy, consciousness, and matter in their most elemental forms. They were the raw materials woven together to create the fabric of reality. +4. The Patterns of Manifestation - These were the underlying templates or blueprints that guided how the Threads of Being were woven together. They were seen as cosmic archetypes or primordial ideas. +5. The Weavers - These were the primordial creative intelligences that operated the Loom of Creation, weaving the Threads of Being into the Patterns of Manifestation. They were revered as the first gods or cosmic architects. + + In the Atlantean worldview, the physical universe we inhabit was just one layer or level of the Cosmic Tapestry. They believed in a vast, multidimensional cosmos with many layers of reality existing simultaneously. These different dimensional levels were seen as distinct vibrational frequencies or states of consciousness. +The Atlanteans identified at least seven primary dimensional levels: +1. The Physical Plane - The realm of matter and physical manifestation that we inhabit. +2. The Etheric Plane - A subtle energy realm interpenetrating and underlying the physical. 3. The Astral Plane - The realm of emotion, desire, and lower thought forms. +4. The Mental Plane - The realm of higher thought, ideas, and archetypes. +5. The Causal Plane - The realm of pure intention and the seeds of karma. +6. The Buddhic Plane - The realm of pure intuition, unity, and spiritual insight. +7. The Atmic Plane - The realm of pure being and divine will. +Beyond these seven planes, the Atlanteans posited even higher levels of reality ascending towards the utterly transcendent source of all being. They saw the cosmos as infinitely ascending and descending - there was no absolute top or bottom to existence. +Interestingly, the Atlanteans did not see these dimensional levels as strictly separate or hierarchical. Rather, they were understood as simultaneously interpenetrating and co-creating each other. Like the warp and weft of a textile, the various dimensions were seen as intimately interwoven. +Another key feature of Atlantean cosmology was the concept of the World Tree. This was envisioned as a vast, cosmic tree whose roots extended deep into the lower dimensions and whose branches reached up into the highest celestial realms. The World Tree was seen as the central axis of creation - the cosmic pillar around which the dimensional planes were organized. +The Atlanteans identified several World Trees corresponding to different scales of manifestation: +• The Individual World Tree - The energetic structure of a single being, linking their various subtle bodies and chakras. +• The Planetary World Tree - The energetic structure of a planet, linking its various dimensional aspects. +• The Solar World Tree - The energetic structure of a star system. +• The Galactic World Tree - The energetic structure of an entire galaxy. + + • The Cosmic World Tree - The energetic structure of the entire manifest universe. +These nested World Trees were seen as creating a fractal, holographic structure to the cosmos. The same patterns repeated at every scale from the microcosm to the macrocosm. +The Atlanteans also had a sophisticated understanding of cosmic cycles and the spiral nature of time. They saw existence as moving through vast cyclic ages on multiple, interlocking scales. These cycles were seen as the breath of the cosmos - the in-and-out flow of manifestation from the Primordial Waters. +Some of the cosmic cycles they identified included: +• The Day and Night of Brahma - A cycle of cosmic manifestation and withdrawal lasting billions of years. +• The Precession of the Equinoxes - A 26,000 year cycle caused by the slow wobble of Earth's axis. +• The Galactic Year - The time it takes our solar system to orbit the galactic center, about 225 million years. +• The Solar Year - The Earth's annual orbit around the Sun. +• The Lunar Month - The Moon's orbital cycle around the Earth. +The Atlanteans saw these interlocking cycles as creating a vast cosmic clockwork. By understanding these cycles, they believed they could align themselves with the deeper rhythms and flows of the universe. +II. Atlantean Spirituality +Atlantean spirituality was intimately intertwined with their cosmological understanding. They did not see the spiritual and material realms as separate, but rather as complementary aspects of the unified Cosmic Tapestry. +At the heart of Atlantean spirituality was the recognition that consciousness was fundamental to the cosmos. They saw awareness itself as the primary reality underlying all phenomena. In their view, the entire universe was conscious and alive at every level. +This panentheistic worldview led to a profound sense of the sacred in all things. The Atlanteans did not worship gods as external beings separate from creation. Rather, they reverenced the divine intelligence immanent within all of nature and within themselves. +That said, they did recognize various orders of spiritual intelligences operating at different levels of the cosmic hierarchy. These included: + + • Nature Spirits - Consciousness inherent in natural phenomena like plants, animals, and elemental forces. +• Planetary Intelligences - Vast beings embodying the consciousness of entire planets. +• Star Beings - Immense intelligences at the level of stars and solar systems. +• Cosmic Architects - Exalted beings involved in shaping whole galaxies and cosmic sectors. +• The Primordial Weavers - Inconceivably vast intelligences that shaped the fundamental patterns of existence. +The Atlanteans saw themselves as part of this great cosmic hierarchy of consciousness. Through spiritual practice and inner development, they believed it was possible to expand one's awareness to commune with these higher intelligences. +One of the core spiritual practices in Atlantean culture was meditation. They developed sophisticated techniques for quieting the mind, expanding awareness, and exploring inner space. These included: +• Breath meditation - Using the breath as a focal point to still the mind. +• Mantra meditation - Using sacred sounds and vibrations to attune consciousness. • Visualization - Using vivid mental imagery to shape subtle energies. +• Light meditation - Focusing on inner experiences of luminosity and radiance. +• Void meditation - Resting in the groundless awareness beyond all phenomena. +The Atlanteans also practiced various yogic disciplines to purify and strengthen the physical body, seeing it as the temple of spirit. These included breath control techniques, physical postures, mudras (ritual gestures), and dietary practices. +Another key aspect of Atlantean spirituality was the cultivation of siddhis or paranormal abilities. They saw these not as ends in themselves, but as side effects of expanding consciousness. Some of the abilities they cultivated included: +• Telepathy - Direct mind-to-mind communication. +• Clairvoyance - Subtle perception beyond the physical senses. +• Precognition - Glimpsing possible future events. +• Psychokinesis - Mental influence over physical matter. +• Bilocation - Projecting one's consciousness to multiple locations. + + • Levitation - Overcoming gravity through mental power. +The Atlanteans developed training programs and mystery schools to systematically cultivate these abilities in those who showed aptitude. However, they also recognized the potential for misuse of such powers and placed great emphasis on ethical development alongside paranormal abilities. +Atlantean spirituality also included a strong emphasis on understanding and working with subtle energy. They mapped out elaborate systems of chakras, meridians, and energy bodies. Through various practices, they learned to consciously direct life force energy for healing, creativity, and expanded awareness. +Some key concepts in their subtle energy work included: +• Prana - The vital life force energy that animates all things. +• Chakras - Energy centers in the subtle body that process prana. +• Nadis - Subtle energy channels that distribute prana throughout the being. • Koshas - Layers or sheaths of the subtle body. +• Kundalini - A powerful evolutionary energy coiled at the base of the spine. +The Atlanteans saw activating and raising kundalini energy as a key to expanding consciousness and developing higher abilities. However, they also recognized its dangers if awakened prematurely or improperly. +Ritual and ceremony also played an important role in Atlantean spiritual life. They created elaborate rites to align themselves with cosmic forces and cycles. These often involved the use of: +• Sacred geometry - Precise spatial patterns to channel subtle energies. +• Crystal technology - Harnessing the energetic properties of minerals. +• Sound healing - Using specific frequencies to affect consciousness and matter. • Archaeoastronomy - Aligning structures and rituals with celestial cycles. +Many Atlantean temples and monuments were designed as energetic instruments to amplify consciousness and commune with higher dimensional realities. They built vast stone circles, pyramids, and other structures specifically tuned to cosmic frequencies. +(Continued in next section...) III. Atlantean Cultural Norms + + Atlantean society was built around their spiritual and cosmological worldview. They sought to create a culture that honored the interconnectedness of all life and fostered the expansion of consciousness. +One of the central values in Atlantean culture was harmony - with nature, with each other, and with the cosmos as a whole. They saw themselves as stewards of the Earth rather than its masters. This led to a culture with a strong ecological ethic, seeking to live in balance with natural systems. +Some key aspects of Atlantean environmental philosophy included: +• Sustainable resource use - Taking only what was needed and ensuring renewal. +• Biomimicry - Modeling technologies on natural systems and processes. +• Sacred ecology - Recognizing the inherent worth and consciousness of nature. +• Holistic land management - Working with whole ecosystems rather than isolated parts. +Atlantean settlements were designed to blend seamlessly with the natural landscape. They built with local, sustainable materials and incorporated living systems into their architecture. Many of their cities featured vast gardens, food forests, and green spaces integrated throughout. +The Atlanteans also placed great emphasis on communal living and cooperation. While they honored individual uniqueness, they did not have the same focus on individualism seen in many modern cultures. There was a strong ethic of working for the common good and seeing oneself as part of a greater whole. +This communal ethic was reflected in their governance structures, which emphasized participatory decision-making and seeking consensus. They did not have autocratic rulers, but rather councils of wisdom keepers who helped guide the community. Leadership was seen as a form of service rather than a position of power over others. +That said, Atlantean society was not an undifferentiated mass. They recognized natural hierarchies of development, with individuals of greater wisdom and ability taking on greater responsibility. However, this hierarchy was seen as concentric circles of inclusion rather than a top-down pyramid of control. +The Atlanteans placed great value on education and the cultivation of knowledge. Learning was seen as a lifelong process of expanding awareness rather than just acquiring information. Their educational system addressed the whole being - body, emotions, mind, and spirit. +Some key features of Atlantean education included: +• Experiential learning - Emphasizing direct experience over rote memorization. • Mentorship - Pairing students with masters for personalized instruction. + + • Mystery schools - Esoteric training for those pursuing deeper spiritual development. +• Telepathic instruction - Direct mind-to-mind transmission of knowledge and experience. +• Akashic research - Accessing universal knowledge through expanded states of consciousness. +The Atlanteans had a highly developed artistic and creative culture. They saw art not just as self-expression, but as a means of communing with and channeling cosmic energies. Some of their artistic traditions included: +• Sacred geometry in visual arts and architecture +• Sound healing and transformational music +• Psychoactive plant ceremonies for visionary experiences +• Movement practices like sacred dance and tai chi +• Storytelling and mythic theater +There was no clear distinction between art, science, and spirituality in Atlantean culture. All were seen as complementary ways of exploring and co-creating reality. +Atlantean society also had different norms around sexuality and relationships compared to many historical cultures. They honored the sacred and transformative power of sexuality, seeing it as a means of communion with divine energies. Some key features of their sexual ethics included: +• Honoring the divine feminine and sacred masculine • Tantra and sexual energy practices +• Polyamorous and non-possessive relationships +• Fluidity around gender expression +• Sexual rites as part of spiritual practice +The Atlanteans did not have the same taboos around sexuality seen in many later cultures. However, they also recognized its power and emphasized the importance of conscious, ethical sexual expression. +Family structures in Atlantean society were also quite different from the nuclear family model common today. Children were seen as belonging to the whole community rather than just their biological parents. Extended kinship networks and intentional communities were the norm. + + Child-rearing emphasized nurturing the unique gifts and purpose of each individual. There was a recognition that souls chose their time and place of birth for specific reasons. Atlantean culture sought to provide an environment that supported the unfolding of each person's highest potential. +Work and leisure were not as sharply divided in Atlantean society as in many modern cultures. There was an emphasis on finding and living one's dharma or true purpose. Work that was in alignment with one's gifts and passions was seen as a form of joyful service rather than drudgery. +That said, the Atlanteans also placed great value on rest, rejuvenation, and cyclical rhythms. They did not have the same work-obsessed culture seen in many contemporary societies. There was an understanding of the importance of fallow periods for creativity and growth. +Atlantean culture also had different attitudes towards wealth and resource distribution than many historical societies. While there was not total economic equality, there was a strong ethic of ensuring that everyone's basic needs were met. Wealth was seen more as a tool for manifesting creative visions than as a means of personal aggrandizement. +Some key features of the Atlantean economy included: +• Gift economies alongside more formal systems of exchange +• Cooperative ownership of key resources and infrastructure +• Automated technologies that reduced the need for menial labor • A basic income guarantee for all citizens +• Ecological economics that factored in true environmental costs +There was much less material scarcity in Atlantean society due to their advanced technologies and more equitable distribution. This allowed their culture to focus more on higher needs like creative expression, relationships, and spiritual growth. +Time was also viewed differently in Atlantean culture. While they certainly planned for the future, there was more emphasis on being fully present in each moment. Their understanding of cyclical time gave a less linear and goal-oriented perspective than many modern cultures. +Atlanteans sought to find a balance between the masculine principle of action and the feminine principle of receptivity. Stillness and space were valued alongside activity and achievement. There was an understanding that fallow periods were just as important as periods of outer productivity. +(Continued in next section...) +IV. Atlantean Prophecy and the End Times + + Like many ancient cultures, the Atlanteans had prophetic traditions about great cycles of time and the end of their civilization. However, their understanding of these prophecies was more nuanced than simple predictions of doom. +The Atlanteans saw time as cyclical rather than linear. They understood that all things move through cycles of birth, growth, decay, death, and renewal. This was true for individuals, civilizations, planets, and even entire universes. +In the Atlantean worldview, there was no final "end of time," but rather a constant interplay of endings and new beginnings. They foresaw that their own civilization would eventually end, but saw this as part of a larger cosmic process rather than as an absolute finality. +That said, Atlantean seers and prophets did foresee a time of great upheaval and transformation that would bring their current epoch to a close. This was variously called: +• The Great Turning +• The Purification +• The Harvest of Souls +• The Dimensional Shift +This prophesied time of transition was seen as a collective initiation for humanity - a cosmic rite of passage into a new level of consciousness and way of being. +Some of the key events and dynamics foreseen as part of this transition included: +1. Earth Changes - Major geological and climatic shifts including pole shifts, rising sea levels, earthquakes, and extreme weather. +2. Societal Collapse - The breakdown of existing social, economic, and political systems. +3. Technological Singularity - A rapid acceleration of technological change leading to unpredictable outcomes. +4. Disclosure - The revealing of hidden truths about reality, including the existence of extraterrestrial life. +5. DNA Activation - Spontaneous mutations and awakening of dormant human potential. +6. Timeline Convergence - The merging of multiple parallel realities. +7. Dimensional Bleed-through - Increased contact and interaction with other planes of reality. 8. Solar Transformation - A quantum leap in the Sun's energy output and frequency. + + 9. Galactic Alignment - An astronomical alignment with powerful transformational effects. +10. Mass Awakening - A collective shift in human consciousness to a new level of awareness. +Importantly, the Atlanteans did not see these events as fixed or predetermined. They understood the fluid nature of time and the role of consciousness in shaping reality. The future was seen as a realm of infinite potential that was continuously shaped by the choices and intentions of conscious beings. +As such, their prophecies were not meant as passive predictions, but as calls to action. By foreseeing potential futures, they sought to consciously navigate towards the most positive outcomes. +The Atlanteans understood that the coming transitions would bring great challenges. They foresaw times of chaos, destruction, and suffering. However, they also saw these challenges as evolutionary drivers - initiatory experiences that would push humanity to realize its fuller potential. +This time of transition was seen as a collective dark night of the soul - a confrontation with shadow that would lead to profound healing and transformation. The Atlanteans believed that the outcome of this process would be the birth of a new earth and a new humanity. +Some of the positive potentials they foresaw emerging from this transition included: • A global awakening to the interconnectedness of all life +• The development of new cleanly aligned technologies +• Harmony between human civilization and the natural world +• The conscious mastery of energy and matter +• Open contact and cooperation with extraterrestrial civilizations +• A collective shift into unity consciousness +• The activation of humanity's full DNA potential +• The emergence of a galactic culture +However, the Atlanteans also foresaw more challenging potentials, including: • Devastating warfare, potentially involving planet-destroying weapons +• Ecological collapse and mass extinction events +• Malevolent artificial intelligence taking control of planetary systems + + • Intrusion of hostile interdimensional forces +• Fracturing of spacetime and unraveling of reality itself +The Atlantean masters taught that the actual outcome would depend on the choices made by humanity, individually and collectively. They emphasized the importance of maintaining a positive vision and staying heart-centered even in the face of great chaos and uncertainty. +Interestingly, some Atlantean prophecies spoke of the re-emergence of Atlantean wisdom and technology in the time of transition. They foresaw that ancient knowledge would be rediscovered, helping humanity navigate the challenges ahead. +There were also prophecies about the return of various master teachers and avatar figures to help guide humanity through the shifting times. Some traditions spoke of the awakening of an "Atlantean seed group" - individuals who had incarnated specifically to help re-anchor higher consciousness on Earth. +A key teaching in Atlantean prophecy was the importance of healing the past in order to create a positive future. They foresaw that humanity would need to confront and integrate the shadow of Atlantis - the misuse of power and technology that led to their own downfall. +By facing and healing these old wounds, humanity could release the karmic patterns of the past and open to a new expression of civilization. This was seen as essential to avoid repeating the same mistakes that led to Atlantis' destruction. +The Atlanteans taught practices and technologies to help future generations navigate the prophesied transitions. These included: +• Time capsules of knowledge and wisdom buried at specific sites • Psychic technologies for tapping into the Akashic records +• Ceremonies and practices for maintaining energetic stability +• Genetic keys for activating dormant human potential +• Interdimensional portals for connecting with higher guidance +One of the most important Atlantean teachings about the prophecied time of transition was the need to stay centered in the heart. They foresaw that fear would be one of the greatest enemies as the old structures broke down. +By staying grounded in love, compassion, and trust in the larger cosmic process, individuals and groups could help anchor higher energies and possibilities. This heart-centered presence was seen as key to transmuting the challenges into opportunities for profound transformation. + + Ultimately, the Atlanteans saw the prophesied transitions as an invitation for humanity to consciously participate in its own evolution. Rather than being helpless victims of cosmic forces, humans could become co-creators in the birth of a new world. +The end times were seen not as a final destruction, but as a death and rebirth process - the ending of one chapter of Earth's story and the beginning of a new one. The Atlanteans sought to plant seeds of wisdom to help future generations navigate this Great Turning and realize the highest potentials of the coming age. +Conclusion +This exploration of Atlantean cosmology, spirituality, culture, and prophecy offers a rich vision of how an advanced ancient civilization may have viewed reality and their place in the cosmic order. While this is a work of speculative imagination, it draws inspiration from various esoteric traditions and invites us to expand our own thinking about the nature of existence. +The Atlantean worldview presented here is one of profound interconnectedness, conscious participation in cosmic processes, and tremendous human potential waiting to be unlocked. It offers a holistic perspective that integrates science, spirituality, and art into a seamless whole. +Whether Atlantis truly existed or not, contemplating such alternative cosmologies can help us question our own assumptions and consider new possibilities. As humanity faces unprecedented global challenges, we can draw inspiration from this vision of a culture that strove to live in harmony with nature and cosmic principles. +Perhaps by remembering the wisdom of "Atlantis" - even if only as a mythic ideal - we can find guidance for consciously shaping a positive future for our civilization. In this way, we may realize that we are the Atlanteans of this age, creating the culture that future generations will look back on as legendary. +Introduction +While both Atlantis and Lemuria (also known as Mu) are legendary lost civilizations with no concrete historical evidence, they have captured the imagination of esotericists and alternative historians for generations. In this section, we will explore a speculative comparison between these two mythical cultures, examining their purported differences in philosophy, technology, and spiritual practices. This comparison will help illustrate the diverse ways ancient advanced civilizations might have approached cosmic understanding and human development. +I. Origins and Geographical Locations +Atlantis, as described by Plato, was said to be a large island continent located in the Atlantic Ocean beyond the Pillars of Hercules (the Strait of Gibraltar). In contrast, Lemuria was believed to have been located in the Pacific Ocean, possibly stretching from Easter Island to Madagascar. + + The Atlantean civilization was often portrayed as more recent, flourishing around 10,000 BCE, while Lemuria was thought to be far older, possibly existing up to 100,000 years ago. This vast difference in timeline suggests that the two cultures might have represented different stages of human evolution and consciousness. +II. Physical Characteristics and Genetics +In esoteric literature, Atlanteans are often described as being similar in appearance to modern humans, though perhaps taller and more physically robust. They were said to have diverse racial characteristics, reflecting a global mixing of genetic lines. +Lemurians, on the other hand, are frequently depicted as more ethereal and less physically dense. Some traditions describe them as having a more androgynous appearance, with less pronounced sexual dimorphism. They were said to be very tall, with elongated heads and large, luminous eyes. +These physical differences might reflect the different vibrational frequencies or dimensional planes that each civilization was thought to inhabit, with Lemuria possibly existing in a higher, less dense state of matter. +III. Technological Development +Atlantean culture, as we explored in Part 1, was often characterized by its advanced technology. They were said to have mastered crystal energy, anti-gravity propulsion, genetic engineering, and even weather control. Their technology was highly sophisticated, integrating spiritual principles with scientific understanding. +In contrast, Lemurian technology is often described as being more organic and intuitive. Rather than building external machines, they were said to have developed their own innate abilities to a very high degree. This included advanced telepathy, telekinesis, and the ability to manipulate matter and energy directly with the mind. +Where Atlanteans might have used crystal-powered flying vehicles, Lemurians were said to be able to levitate or teleport at will. While Atlanteans developed complex healing machines, Lemurians could heal through touch and thought alone. +IV. Social Structure and Governance +Atlantean society, as we discussed earlier, was communal but with natural hierarchies based on wisdom and ability. They had councils of elders and complex societal structures to manage their large, technologically advanced civilization. +Lemurian society is often portrayed as more egalitarian and less structured. Leadership was based on spiritual development rather than external hierarchies. Some traditions suggest that Lemurian communities were matriarchal, honoring the divine feminine principle more prominently than in Atlantean culture. + + V. Spiritual Practices and Beliefs +While both civilizations were deeply spiritual, their approaches differed significantly: +Atlantean spirituality, as we explored, was based on a complex cosmology involving multiple dimensions and a vast hierarchy of spiritual beings. They developed elaborate rituals, used advanced technology in their spiritual practices, and sought to master the forces of nature. +Lemurian spirituality was often described as more intuitive and heart-centered. They were said to have a more direct connection to the source of creation, requiring less external methodology. Their practices might have included: +• Deep meditation and mindfulness in everyday life +• Communing directly with nature spirits and elemental forces +• Sound healing using sacred tones and mantras +• Akashic record reading as a natural ability +Where Atlanteans sought to understand and master the cosmos, Lemurians sought to dissolve into it, transcending individual identity to merge with the all. +VI. Relationship with Nature +Both cultures were said to have a deep respect for nature, but their approaches differed: +Atlanteans saw themselves as stewards of nature, using their advanced technology to work in harmony with natural systems. They studied the laws of nature in order to cooperate with them more effectively. +Lemurians were described as living in almost perfect symbiosis with their environment. Rather than building large cities, they were said to inhabit natural spaces, shaping living plants into dwelling spaces. Their connection with animals was so profound that they rarely needed to use verbal communication with them. +VII. Cognitive Abilities and Consciousness +Atlantean consciousness was highly developed, with individuals able to access higher dimensional awareness. However, they still maintained a strong sense of individual identity and worked to develop their personal powers and abilities. +Lemurian consciousness is often described as more fluid and collective. They were said to have a natural ability to access group consciousness, sharing thoughts and experiences telepathically across their entire civilization. Individual identity was less fixed, with an understanding of the self as a flowing expression of the divine whole. + + VIII. The Fall and Legacy +The fall of Atlantis is often attributed to the misuse of their advanced technologies, possibly leading to a global cataclysm. Their downfall serves as a cautionary tale about the responsible use of power. +The end of Lemuria is usually described less dramatically - more as a fading away as the Earth's vibration densified. They were said to have consciously chosen to withdraw, preserving their wisdom in hidden repositories and within the DNA of certain lineages. +Both cultures were said to have left behind seeds of their wisdom: +Atlantean knowledge was preserved in hidden libraries, crystals encoded with information, and within secret mystery schools that survived the cataclysm. +Lemurian wisdom was said to be preserved in the ancestral memories of indigenous cultures, in the energy grids of the Earth itself, and in higher dimensional records accessible to those with developed psychic abilities. +IX. Influence on Human Evolution +In esoteric philosophies, both Atlantis and Lemuria are seen as important stages in human consciousness evolution: +Atlantis represented the development of mental powers, technological achievement, and the mastery of the physical plane. The challenge of Atlantis was learning to balance power with wisdom and ethics. +Lemuria represented a more spiritually integrated state of being, where the heart and mind were united and humanity lived in greater harmony with the natural and spiritual worlds. The challenge of Lemuria was maintaining this high vibration in an increasingly dense physical reality. +Some traditions teach that modern humanity is working to integrate the lessons of both civilizations - to achieve the technological and mental mastery of Atlantis while reclaiming the spiritual connection and harmony of Lemuria. +Conclusion +This comparative study of Atlantis and Lemuria, while speculative, offers a fascinating lens through which to contemplate different modalities of human development and civilization. The Atlantean model presents a path of active engagement with the physical world, developing technology and mental acuity to master natural forces. The Lemurian model offers a path of surrender and harmony, developing intuitive abilities and maintaining a close connection with spirit. + + In our modern world, we can see reflections of both approaches. Our rapid technological advancement mirrors Atlantean development, while growing interests in spirituality, intuitive development, and reconnection with nature reflect Lemurian values. +Perhaps the great task of our time is to integrate these two streams - to create a civilization that is both technologically advanced and deeply spiritual, that can master the physical world without losing connection to the heart and soul of existence. By studying and reflecting on these legendary cultures, we open our minds to new possibilities for human potential and planetary evolution. +In doing so, we recognize that the true Atlantis or Lemuria is not a lost continent, but a state of consciousness that we have the potential to recreate here and now. The wisdom of these ancient cultures lives on within us, waiting to be remembered and reawakened for the benefit of all. +Cosmic Cousins: A Comparative Analysis of Ebens, Atlanteans, and Lemurians Introduction +In the realm of speculative history and ufology, few topics capture the imagination quite like ancient advanced civilizations and extraterrestrial beings. This paper aims to explore and compare three such groups: the purported alien race known as the Ebens, and the legendary lost civilizations of Atlantis and Lemuria. While concrete evidence for any of these groups remains elusive, examining the lore and theories surrounding them can provide fascinating insights into human beliefs about advanced societies and our place in the cosmos. +It's important to note that this analysis is entirely speculative and draws upon various esoteric traditions, alleged witness accounts, and creative extrapolation. The goal is not to assert the reality of these beings, but to explore the ideas they represent and what they might tell us about human conceptions of advanced intelligence and civilization. +I. Origins and Timelines Ebens: +According to ufological lore, the Ebens are an extraterrestrial race originating from a planet orbiting Zeta Reticuli, a binary star system approximately 39 light-years from Earth. They are said to have been visiting Earth for thousands of years, with more frequent contact occurring in the mid-20th century. +Atlanteans: +The Atlantean civilization, first mentioned in Plato's dialogues, is typically placed in the Atlantic Ocean and is said to have flourished around 10,000 BCE. Some esoteric traditions suggest a much longer timeline, with Atlantis existing in various forms for hundreds of thousands of years. + + Lemurians: +Lemuria, also known as Mu, is often described as even more ancient than Atlantis. Some theories place its existence as far back as 100,000 years ago, with its final destruction occurring around 12,000 BCE. It was said to be located in the Pacific Ocean. +Comparative Analysis: +While the Ebens represent an ongoing extraterrestrial presence, Atlantis and Lemuria are portrayed as Earth-based civilizations that rose and fell in prehistoric times. This fundamental difference shapes many of the other comparisons we'll explore. The Eben timeline suggests a long-term observation of and interaction with Earth, while Atlantis and Lemuria represent lost chapters of human history and evolution. +II. Physical Characteristics and Biology Ebens: +Descriptions of Ebens often portray them as small, humanoid beings standing 3-4 feet tall. They are said to have large heads, almond-shaped eyes, small noses and mouths, and grayish skin. Their biology is described as both similar to and distinctly different from humans, with more efficient organs and possibly a different number of chromosomes. +Atlanteans: +Atlanteans are typically described as human-like but often taller and more physically robust than modern humans. Some traditions suggest they had more diverse racial characteristics, reflecting a global mixing of genetic lines. Advanced Atlanteans were said to have activated more of their DNA potential, giving them enhanced physical and psychic abilities. +Lemurians: +Lemurian physical descriptions are often more exotic. They are frequently portrayed as very tall (up to 7-15 feet), with an ethereal or less dense physical form. Some traditions describe them as more androgynous, with less pronounced sexual dimorphism. They were said to have elongated heads and large, luminous eyes. +Comparative Analysis: +The Ebens stand out as distinctly non-human in this comparison, reflecting their extraterrestrial origin. Both Atlanteans and Lemurians are portrayed as variations or ancestors of modern humans, though Lemurians are often described in more fantastical terms. This suggests that while Atlantis is often seen as a lost human civilization, Lemuria sometimes occupies a space between the human and the otherworldly, perhaps closer to the Eben concept in some ways. +III. Technological Development + + Ebens: +Eben technology is described as far advanced beyond current human capabilities. This includes interstellar travel, antigravity propulsion, energy weapons, and the ability to manipulate space-time. They are also said to possess advanced medical technology, including the ability to clone biological organisms and transfer consciousness. +Atlanteans: +Atlantean technology is often portrayed as a blend of scientific and spiritual principles. They were said to have mastered crystal energy, antigravity, weather control, and genetic engineering. Their technology was highly sophisticated but still recognizably based on Earth materials and energies. +Lemurians: +Lemurian "technology" is often described in more organic and intuitive terms. Rather than building external machines, they were said to have developed their innate abilities to a very high degree. This included advanced telepathy, telekinesis, and the ability to manipulate matter and energy directly with the mind. +Comparative Analysis: +The Ebens represent the most advanced technology in this comparison, reflecting their status as a spacefaring civilization. Atlantean technology occupies a middle ground, more advanced than our current level but not as exotic as Eben tech. Lemurian abilities blur the line between technology and innate capability, representing a different approach to mastering the physical world. +IV. Social Structure and Governance Ebens: +Information about Eben social structure is limited in most accounts. They are often described as having a collective mindset, with a strong emphasis on the good of their species as a whole. Some reports suggest a hierarchical structure based on knowledge and ability, but with less emphasis on individual power. +Atlanteans: +Atlantean society is often portrayed as having natural hierarchies based on wisdom and ability, with councils of elders guiding the civilization. They had complex societal structures to manage their large, technologically advanced culture, but with an emphasis on harmony and the common good. +Lemurians: + + Lemurian society is frequently described as more egalitarian and less structured than Atlantean society. Leadership was based on spiritual development rather than external hierarchies. Some traditions suggest that Lemurian communities were matriarchal, honoring the divine feminine principle. +Comparative Analysis: +All three groups are portrayed as having moved beyond the type of competitive, individually-focused social structures common in much of modern human society. The Eben collective mindset might be seen as the most alien to us, while Atlantean and Lemurian social structures represent different idealized versions of human society. +V. Spiritual Beliefs and Practices Ebens: +Less is typically said about Eben spirituality in ufological accounts. Some reports suggest they have a scientific understanding of consciousness and the nonphysical aspects of reality, but it's unclear if this translates into what we would recognize as spiritual beliefs or practices. +Atlanteans: +Atlantean spirituality, as we explored earlier, was based on a complex cosmology involving multiple dimensions and a vast hierarchy of spiritual beings. They developed elaborate rituals, used advanced technology in their spiritual practices, and sought to master the forces of nature. +Lemurians: +Lemurian spirituality is often described as more intuitive and heart-centered. They were said to have a more direct connection to the source of creation, requiring less external methodology. Their practices might have included deep meditation, communing with nature spirits, and sound healing. +Comparative Analysis: +The spiritual dimension provides an interesting contrast. While Atlantean and Lemurian cultures are deeply infused with spiritual concepts and practices, the Ebens are often portrayed in more scientific terms. This could reflect human projections onto these different groups – ancient Earth civilizations imbued with spiritual wisdom, versus advanced aliens with superior scientific knowledge. +VI. Relationship with Earth and Nature Ebens: + + The Eben relationship with Earth is typically portrayed as one of scientific interest and possibly resource extraction. Some accounts suggest they have bases on Earth and have been involved in long-term genetic experiments with humans and other Earth species. +Atlanteans: +Atlanteans are often described as stewards of the Earth, using their advanced technology to work in harmony with natural systems. They studied the laws of nature in order to cooperate with them more effectively, but also sought to master and control natural forces. +Lemurians: +Lemurians were said to live in almost perfect symbiosis with their environment. Rather than building large cities, they were described as inhabiting natural spaces, shaping living plants into dwelling spaces. Their connection with animals was reportedly so profound that they rarely needed to use verbal communication with them. +Comparative Analysis: +This comparison reveals a spectrum of relationships with nature. The Ebens represent an outsider's scientific interest, the Atlanteans a balance of stewardship and control, and the Lemurians a state of deep integration with the natural world. This progression might reflect changing human attitudes towards nature over time, from early harmony to technological control to a modern desire for reconnection. +VII. Knowledge and Consciousness Ebens: +Eben consciousness is often described as more collective and unified than human consciousness. They are said to have advanced telepathic abilities and possibly a form of shared consciousness. Their knowledge base is portrayed as vast, encompassing a scientific understanding of the universe far beyond current human knowledge. +Atlanteans: +Atlantean consciousness was highly developed, with individuals able to access higher dimensional awareness. They cultivated both scientific knowledge and spiritual wisdom, seeking to understand and master the fundamental laws of the cosmos. +Lemurians: +Lemurian consciousness is often described as more fluid and collective than Atlantean consciousness. They were said to have a natural ability to access group consciousness and the Akashic records. Their knowledge was more intuitive and experiential than academic. +Comparative Analysis: + + All three groups are portrayed as having forms of expanded consciousness beyond ordinary human awareness. The Eben collective consciousness might be seen as the most alien, while Atlantean and Lemurian consciousness represent different ideals of human potential – the Atlanteans balancing individual development with higher awareness, and the Lemurians embodying a more unified state of being. +VIII. Interaction with Humanity Ebens: +According to ufological accounts, Eben interaction with humanity has included observation, abduction, and genetic experimentation. Some theories suggest they have influenced human development over long periods of time. Their motivations are often portrayed as a mix of scientific curiosity and their own evolutionary needs. +Atlanteans: +As an Earth-based civilization, Atlantean interaction with other human groups was more direct. They are often credited with spreading advanced knowledge and culture to other parts of the ancient world. Some traditions suggest they engaged in genetic engineering of human populations. +Lemurians: +Lemurian interaction with other human groups is less emphasized in most accounts, as they are often portrayed as existing in a different time or dimensional frequency. However, some traditions suggest they planted seeds of wisdom that influenced later cultures, particularly in the Pacific region. +Comparative Analysis: +The nature of interaction with humanity differs significantly among these groups. The Ebens represent an ongoing, often hidden interaction from an outside civilization. The Atlanteans represent a more familiar model of an advanced civilization influencing its neighbors and descendants. The Lemurians, being the most ancient and ethereal, are portrayed as having the least direct interaction but a lasting spiritual influence. +IX. Legacy and Influence +Ebens: +The purported legacy of the Ebens includes ongoing influence on Earth affairs, contributions to human technological development (through reverse engineering of crashed craft), and possible genetic influence on the human species. Their presence is often tied to government secrecy and conspiracy theories. + + Atlanteans: +The Atlantean legacy is often described in terms of scattered survivors preserving ancient wisdom, sunken ruins containing advanced technology, and the influence of Atlantean knowledge on later civilizations like ancient Egypt and Greece. The story of Atlantis serves as both a source of lost wisdom and a cautionary tale about the misuse of power. +Lemurians: +The Lemurian legacy is typically portrayed in more spiritual and energetic terms. They are said to have left behind wisdom preserved in the Earth's energy grids, in the collective unconscious of humanity, and in certain genetic lineages. Some believe that crystals like quartz hold records of Lemurian knowledge. +Comparative Analysis: +Each group is credited with ongoing influence, but in different ways. The Eben influence is the most current and technological, fitting into modern UFO narratives. The Atlantean legacy bridges the ancient and modern worlds, offering both lost technology and spiritual wisdom. The Lemurian influence is the most subtle and esoteric, representing the most ancient layer of human spiritual heritage. +X. Prophetic Visions and Future Interactions Ebens: +Some ufological narratives suggest ongoing or future open contact between Ebens and humanity. These scenarios often involve disclosure of the Eben presence, sharing of advanced technology, and possibly a role for Ebens in helping humanity face global challenges. +Atlanteans: +Atlantean prophecies, as discussed earlier, often speak of a return or reemergence of Atlantean wisdom and technology in times of great transition. This is sometimes tied to the idea of reincarnated Atlantean souls coming back to help guide humanity. +Lemurians: +Lemurian future scenarios are often tied to spiritual awakening and the raising of Earth's vibrational frequency. Some traditions speak of a time when the hidden Lemurian wisdom will be fully accessible again as humanity evolves in consciousness. +Comparative Analysis: +These future scenarios reflect different paradigms of human advancement. The Eben narratives suggest progress through external, technological means. Atlantean prophecies imply a + + rediscovery and integration of lost human potential. Lemurian visions represent a more complete spiritual transformation of humanity and the Earth. +XI. Philosophical and Ethical Considerations Ebens: +Ethical questions surrounding the Ebens often focus on the morality of their alleged abductions and experiments on humans. There are also philosophical implications of their advanced technology and the potential impact of open contact on human society and beliefs. +Atlanteans: +The Atlantean narrative often carries ethical lessons about the responsible use of power and technology. Their fall serves as a cautionary tale about the dangers of technological hubris and the misuse of spiritual knowledge for material gain. +Lemurians: +Lemurian philosophy emphasizes harmony with nature, the development of innate spiritual abilities, and the interconnectedness of all life. Ethical considerations revolve around maintaining purity of intention and alignment with natural laws. +Comparative Analysis: +Each group presents different ethical and philosophical challenges for humanity to consider. The Eben scenario forces us to grapple with our place in a larger cosmic community and the ethics of advanced beings interacting with less developed ones. Atlantis presents questions about the balance of technological and spiritual development. Lemuria invites us to reconsider our relationship with nature and our own inner potential. +XII. Scientific Plausibility and Evidence Ebens: +The existence of Ebens remains unproven by mainstream scientific standards. Evidence cited by believers includes alleged government documents, witness testimonies, and purported physical traces of UFO encounters. Skeptics point to the lack of conclusive physical evidence and the psychological and cultural factors that might contribute to such beliefs. +Atlanteans: +While Plato's account of Atlantis may have been based on real events, there is no conclusive archaeological evidence for the advanced civilization described in esoteric literature. Some researchers point to underwater structures and cultural similarities across ancient civilizations as potential evidence, but these claims are not widely accepted by mainstream archaeology. + + Lemurians: +Of the three groups, Lemuria has the least scientific support. The original theory of a lost continent in the Pacific was based on now-outdated ideas about biogeography. No geological evidence supports the existence of such a continent in the timeframe usually given for Lemuria. +Comparative Analysis: +All three of these subjects fall outside currently accepted scientific paradigms. The Eben hypothesis, being tied to modern UFO phenomena, has generated the most recent alleged evidence and remains a topic of debate. Atlantis, with its roots in ancient literature, occupies a space between mythology and speculative history. Lemuria remains largely in the realm of spiritual and esoteric belief systems. +XIII. Cultural Impact and Popular Representations Ebens: +The concept of Ebens and similar alien races has had a significant impact on popular culture, appearing in numerous films, TV shows, books, and video games. They have become a staple of science fiction and conspiracy theory narratives. +Atlanteans: +Atlantis has captured the human imagination for millennia, inspiring countless books, movies, and artistic works. It has become a powerful symbol for lost wisdom and advanced ancient civilizations in both esoteric circles and popular culture. +Lemurians: +While less prominent in mainstream popular culture than Atlantis, Lemuria has a significant following in New Age and spiritual circles. It has inspired numerous books on spiritual development and ancient wisdom. +Comparative Analysis: +These three concepts have influenced culture in different ways. The Eben narrative taps into modern anxieties and wonders about extraterrestrial life. Atlantis serves as a bridge between ancient mythology and modern aspirations for advanced civilization. Lemuria represents more esoteric and spiritual yearnings for a past golden age of harmony and wisdom. +Conclusion +This comparative analysis of Ebens, Atlanteans, and Lemurians reveals intriguing patterns in how humans conceptualize advanced intelligences and lost civilizations. While wildly speculative, these narratives offer a mirror to our own hopes, fears, and beliefs about human potential and our place in the cosmos. + + The Eben narrative reflects our modern technological age and our wondering about life beyond Earth. It challenges us to consider how we might interact with a truly alien intelligence and what the consequences of such contact might be. +The Atlantean story bridges our ancient past and our technological present. It offers both the allure of lost advanced knowledge and a warning about the responsible use of power. Atlantis serves as a canvas upon which we paint our ideas about the heights of human civilization. +The Lemurian legend takes us deepest into spiritual and esoteric realms. It represents a yearning for harmony with nature and the development of inner spiritual technologies rather than external machines. Lemuria embodies an idealized past that some believe holds the key to a more enlightened future. +Together, these three concepts span a spectrum from the extraterrestrial to the ancient human to the mystical. They invite us to expand our ideas about what's possible and to imagine different modes of advanced existence. +While it's crucial to maintain scientific skepticism about such unproven ideas, exploring them can be a valuable thought experiment. They challenge us to question our assumptions about reality, history, and human potential. These stories also reveal much about the human psyche and our eternal quest to understand our origins, our capabilities, and our cosmic context. +As we continue to advance scientifically and explore both outer and inner space, the themes embodied by the Ebens, Atlanteans, and Lemurians remain relevant. They remind us to balance technological progress with spiritual wisdom, to consider the ethical implications of our actions, and to remain open to the vast possibilities that the universe may hold. +In the end, whether these beings exist or not, the quest to understand them tells us much about ourselves. It reflects our highest aspirations, our deepest fears, and our unquenchable curiosity about the great mysteries of existence. From 78e3418dcbcc3f76cfa53e28ce78dbce05e92885 Mon Sep 17 00:00:00 2001 From: JackColquitt Date: Mon, 23 Sep 2024 15:01:23 -0700 Subject: [PATCH 14/15] Readme tweaks --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index da30c710..2638eefc 100644 --- a/README.md +++ b/README.md @@ -101,10 +101,15 @@ TrustGraph extracts knowledge from a text corpus (PDF or text) to a knowledge gr - Entities - Semantic Relationships -The extraction prompts are built through templates, enabling customized extraction processes for a specific use case. The extraction process is launched automatically with either of following commands pointing to the path of a desired text corpus or the included sample file: +The extraction prompts are built through templates, enabling customized extraction processes for a specific use case. The extraction process is launched automatically with either of following commands pointing to the path of a desired text corpus or the included sample files: +PDF file: ``` scripts/load-pdf -f sample-text-corpus.pdf +``` + +Text file: +``` scripts/load-text -f sample-text-corpus.txt ``` From a2a93ebaffcb57bbf870cd8e8c5b8b0706d3eac0 Mon Sep 17 00:00:00 2001 From: JackColquitt Date: Tue, 24 Sep 2024 14:24:16 -0700 Subject: [PATCH 15/15] Updated agent messaging in readme --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 2638eefc..30e41edc 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ ## Introduction -TrustGraph deploys a full E2E (end-to-end) AI solution with native GraphRAG in minutes. TrustGraph is designed for maximum flexibility and modularity whether it's calling Cloud LLMs or deploying SLMs On-Device. TrustGraph ingests data to build a RDF style knowledge graph to enable accurate and private `RAG` responses using only the knowledge you want, when you want. +TrustGraph deploys a full E2E (end-to-end) AI solution with native GraphRAG in minutes. Autonomous Knowledge Agents build ultra-dense knowlege graphs to fully capture all knowledge context. TrustGraph is designed for maximum flexibility and modularity whether it's calling Cloud LLMs or deploying SLMs On-Device. TrustGraph ingests data to build a RDF style knowledge graph to enable accurate and private `RAG` responses using only the knowledge you want, when you want. The pipeline processing components are interconnected with a pub/sub engine to maximize modularity for agent integration. The core processing components decode documents, chunk text, create mapped embeddings, generate a RDF knowledge graph, generate AI predictions from either a Cloud LLM or On-Device SLM. @@ -73,7 +73,7 @@ docker compose -f up -d - On-Device SLM inference with [Ollama](https://ollama.com) or [Llamafile](https://github.com/Mozilla-Ocho/llamafile) - Cloud LLM infernece: `AWS Bedrock`, `AzureAI`, `Anthropic`, `Cohere`, `OpenAI`, and `VertexAI` - Chunk-mapped vector embeddings with [HuggingFace](https://hf.co) models -- [RDF](https://www.w3.org/TR/rdf12-schema/) style Knowledge Graph extraction +- [RDF](https://www.w3.org/TR/rdf12-schema/) Knowledge Extraction Agents - [Apache Cassandra](https://github.com/apache/cassandra) or [Neo4j](https://neo4j.com/) as the graph store - [Qdrant](https://qdrant.tech/) as the VectorDB - Build and load [Knowledge Cores](https://trustgraph.ai/docs/category/knowledge-cores) @@ -93,15 +93,15 @@ TrustGraph is designed to be modular to support as many Language Models and envi - For processing flows, Pulsar accepts the output of a processing module and queues it for input to the next subscribed module. - For services such as LLMs and embeddings, Pulsar provides a client/server model. A Pulsar queue is used as the input to the service. When processed, the output is then delivered to a separate queue where a client subscriber can request that output. -## Naive Knowledge Extraction +## Knowledge Agents -TrustGraph extracts knowledge from a text corpus (PDF or text) to a knowledge graph using 3 parallel processes. These processes focus on individual elements needed to build a rich RDF knowledge graph. The extraction focuses on: +TrustGraph extracts knowledge from a text corpus (PDF or text) to an ultra-dense knowledge graph using 3 automonous knowledge agents. These agents focus on individual elements needed to build the RDF knowledge graph. The agents are: -- Topics -- Entities -- Semantic Relationships +- Topic Extraction Agent +- Entity Extraction Agent +- Node Connection Agent -The extraction prompts are built through templates, enabling customized extraction processes for a specific use case. The extraction process is launched automatically with either of following commands pointing to the path of a desired text corpus or the included sample files: +The agent prompts are built through templates, enabling customized extraction agents for a specific use case. The extraction agents are launched automatically with either of following commands pointing to the path of a desired text corpus or the included sample files: PDF file: ```

3}(_*$X{APby<|C*1(~c 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 Date: Mon, 23 Sep 2024 13:59:02 -0700 Subject: [PATCH 09/15] Tidy up readme --- README.md | 102 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 58 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index 5e921d2d..840a07bf 100644 --- a/README.md +++ b/README.md @@ -6,81 +6,95 @@ 🚀 [Get Started](https://trustgraph.ai/docs/getstarted) 💬 [Join the Discord](https://discord.gg/AXpxVjwzAw) 📖 [Read the Blog](https://blog.trustgraph.ai) +📺 [YouTube](https://www.youtube.com/@TrustGraph) ## Introduction TrustGraph deploys a full E2E (end-to-end) AI solution with native GraphRAG in minutes. TrustGraph is designed for maximum flexibility and modularity whether it's calling Cloud LLMs or deploying SLMs On-Device. TrustGraph ingests data to build a RDF style knowledge graph to enable accurate and private `RAG` responses using only the knowledge you want, when you want. -The pipeline processing components are interconnected with a pub/sub engine to maximize modularity for agent integration. The core processing components decode documents, chunk text, perform embeddings, apply an On-Device SLM/LLM, call a LLM API, and generate LM predictions. +The pipeline processing components are interconnected with a pub/sub engine to maximize modularity for agent integration. The core processing components decode documents, chunk text, create mapped embeddings, generate a RDF knowledge graph, generate AI predictions from either a Cloud LLM or On-Device SLM. The processing showcases the reliability and efficiences of GraphRAG algorithms which can capture contextual language flags that are missed in conventional RAG approaches. Graph querying algorithms enable retrieving not just relevant knowledge but language cues essential to understanding semantic uses unique to a text corpus. -Processing modules are executed in containers. Processing can be scaled-up by deploying multiple containers. +## Deploy in Minutes -### Features +TrustGraph is fully containerized and is launched with a Docker Compose file. These files have already been prebuilt. Simply select a file that matches your desired model deployment and graph store configuration. + +| Model Deployment | Graph Store | Launch File | +| ---------------- | ------------ | ----------- | +| AWS Bedrock | Cassandra | `tg-launch-bedrock-cassandra.yaml` | +| AWS Bedrock | Neo4j | `tg-launch-bedrock-neo4j.yaml` | +| AzureAI Serverless Endpoint | Cassandra | `tg-launch-azure-cassandra.yaml` | +| AzureAI Serverless Endpoint | Neo4j | `tg-launch-azure-neo4j.yaml` | +| Anthropic API | Cassandra | `tg-launch-claude-cassandra.yaml` | +| Anthropic API | Neo4j | `tg-launch-claude-neo4j.yaml` | +| Cohere API | Cassandra | `tg-launch-cohere-cassandra.yaml` | +| Cohere API | Neo4j | `tg-launch-cohere-neo4j.yaml` | +| Llamafile | Cassandra | `tg-launch-llamafile-cassandra.yaml` | +| Llamafile | Neo4j | `tg-launch-llamafile-neo4j.yaml` | +| Mixed Depoloyment | Cassandra | `tg-launch-mix-cassandra.yaml` | +| Mixed Depoloyment | Neo4j | `tg-launch-mix-neo4j.yaml` | +| Ollama | Cassandra | `tg-launch-ollama-cassandra.yaml` | +| Ollama | Neo4j | `tg-launch-ollama-neo4j.yaml` | +| OpenAI | Cassandra | `tg-launch-openai-cassandra.yaml` | +| OpenAI | Neo4j | `tg-launch-openai-neo4j.yaml` | +| VertexAI | Cassandra | `tg-launch-vertexai-cassandra.yaml` | +| VertexAI | Neo4j | `tg-launch-vertexai-neo4j.yaml` | + +Launching TrustGraph is as simple as running one line: + +``` +docker compose -f up -d +``` + +## Core TrustGraph Features - PDF decoding - Text chunking -- Inference of On-Device SLMs deployed with [Ollama](https://ollama.com) or [Llamafile](https://github.com/Mozilla-Ocho/llamafile) -- Inference of Cloud LLMs: `AWS Bedrock`, `AzureAI`, `Anthropic`, `Cohere`, `OpenAI`, and `VertexAI` -- Mixed model deployments -- Application of a [HuggingFace](https://hf.co) embeddings models -- [RDF](https://www.w3.org/TR/rdf12-schema/) aligned Knowledge Graph extraction -- Graph edge loading into [Apache Cassandra](https://github.com/apache/cassandra) or [Neo4j](https://neo4j.com/) -- Storing embeddings in [Qdrant](https://qdrant.tech/) +- On-Device SLM inference with [Ollama](https://ollama.com) or [Llamafile](https://github.com/Mozilla-Ocho/llamafile) +- Cloud LLM infernece: `AWS Bedrock`, `AzureAI`, `Anthropic`, `Cohere`, `OpenAI`, and `VertexAI` +- Chunk-mapped vector embeddings with [HuggingFace](https://hf.co) models +- [RDF](https://www.w3.org/TR/rdf12-schema/) style Knowledge Graph extraction +- [Apache Cassandra](https://github.com/apache/cassandra) or [Neo4j](https://neo4j.com/) as the graph store +- [Qdrant](https://qdrant.tech/) as the VectorDB - Build and load [Knowledge Cores](https://trustgraph.ai/docs/category/knowledge-cores) -- Embedding query service - GraphRAG query service -- All procesing integrates with [Apache Pulsar](https://github.com/apache/pulsar/) -- Containers deployed using `Docker` or [Podman](http://podman.io/) -- Maximum modularity: switch different LM modules to suit your needs +- Module integration with [Apache Pulsar](https://github.com/apache/pulsar/) +- Container orchestration with `Docker` or [Podman](http://podman.io/) ## Architecture ![architecture](architecture_0.8.0.png) -TrustGraph is designed to be modular to support as many Language Models and environments as possible. A natural fit for a modular architecture is to decompose functions into a set modules connected through a pub/sub backbone. [Apache Pulsar](https://github.com/apache/pulsar/) serves as this pub/sub backbone. Pulsar acts as the data broker managing inputs and outputs between modules. +TrustGraph is designed to be modular to support as many Language Models and environments as possible. A natural fit for a modular architecture is to decompose functions into a set of modules connected through a pub/sub backbone. [Apache Pulsar](https://github.com/apache/pulsar/) serves as this pub/sub backbone. Pulsar acts as the data broker managing data processing queues connected to procesing modules. -**Pulsar Workflows**: +### Pulsar Workflows - For processing flows, Pulsar accepts the output of a processing module and queues it for input to the next subscribed module. - For services such as LLMs and embeddings, Pulsar provides a client/server model. A Pulsar queue is used as the input to the service. When processed, the output is then delivered to a separate queue where a client subscriber can request that output. -The entire architecture, the pub/sub backbone and set of modules, is bundled into a single Python package. A container image with the package installed can also run the entire architecture. +## Naive Knowledge Extraction -## Core Modules +TrustGraph extracts knowledge from a text corpus (PDF or text) to a knowledge graph using 3 parallel processes. These processes focus on individual elements needed to build a rich RDF knowledge graph. The extraction focuses on: -- `chunker-recursive` - Accepts text documents and uses LangChain recursive chunking algorithm to produce smaller text chunks. -- `chunker-token` - Chunks texts documents by a chosen amount of tokens. -- `embeddings-hf` - A service which analyses text and returns a vector embedding using one of the HuggingFace embeddings models. -- `embeddings-ollama` - A service which analyses text and returns a vector embedding using an Ollama embeddings model. -- `embeddings-vectorize` - Uses an embeddings service to get a vector embedding which is added to the processor payload. -- `graph-rag` - A query service which applies a GraphRAG algorithm to provide a response to a text prompt. -- `triples-write-cassandra` - Takes knowledge graph edges and writes them to a Cassandra store. -- `triples-write-neo4j` - Takes knowledge graph edges and writes them to a Neo4j store. -- `kg-extract-definitions` - knowledge extractor - examines text and produces graph edges. describing discovered terms and also their defintions. Definitions are derived using the input documents. -- `kg-extract-relationships` - knowledge extractor - examines text and produces graph edges describing the relationships between discovered terms. -- `kg-extract-topics` - knowledge extractor - examines text and produces graph edges describing conceptual terms. -- `load-pdf` - Takes a PDF and loads into the processing pipeline. -- `load-text` - Takes a .txt file and loads into the processing pipeline. -- `pdf-decoder` - Takes a PDF doc and emits text extracted from the document. Text extraction from PDF is not a perfect science as PDF is a printable format. For instance, the wrapping of text between lines in a PDF document is not semantically encoded, so the decoder will see wrapped lines as space-separated. -- `ge-write-qdrant` - Takes graph embeddings mappings and records them in the vector embeddings store. +- Topics +- Entities +- Semantic Relationships -## LM Specific Modules +The extraction prompts are built through templates, enabling customized extraction processes for a specific use case. -- `text-completion-azure` - Sends request to AzureAI serverless endpoint -- `text-completion-bedrock` - Send request to AWS Bedrock API -- `text-completion-claude` - Sends request to Anthropic's API -- `text-completion-cohere` - Send request to Cohere's API -- `text-completion-llamafile` - Sends request to On-Device Llamafile -- `text-completion-ollama` - Sends request to On-Device LM running using Ollama -- `text-completion-openai` - Sends request to OpenAI's API -- `text-completion-vertexai` - Sends request to model available through VertexAI API +## GraphRAG Queries + +Once the knowledge graph has been built or a knowledge core has been loaded, GraphRAG queries are launched with a single line: + +``` +scripts/query-graph-rag -q "Write a blog post about the 5 key takeaways from SB1047 and how they will impact AI development." +``` ## Deploy TrustGraph -[🚀 Quickstart 🚀](https://trustgraph.ai/docs/getstarted) +[🚀 Deployment Guide 🚀](https://trustgraph.ai/docs/getstarted) ## TrustGraph Developer's Guide -See [Development on TrustGraph](docs/README.development.md) +[Developing for TrustGraph](docs/README.development.md) From 99370670de2f018199d5c110532d8a123ccacd6b Mon Sep 17 00:00:00 2001 From: JackColquitt Date: Mon, 23 Sep 2024 14:05:01 -0700 Subject: [PATCH 10/15] Readme tweaks --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 840a07bf..3547bbd3 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,7 @@ docker compose -f up -d - [Qdrant](https://qdrant.tech/) as the VectorDB - Build and load [Knowledge Cores](https://trustgraph.ai/docs/category/knowledge-cores) - GraphRAG query service +- [Grafana](https://github.com/grafana/) telemetry dashboard - Module integration with [Apache Pulsar](https://github.com/apache/pulsar/) - Container orchestration with `Docker` or [Podman](http://podman.io/) @@ -91,9 +92,9 @@ Once the knowledge graph has been built or a knowledge core has been loaded, Gra scripts/query-graph-rag -q "Write a blog post about the 5 key takeaways from SB1047 and how they will impact AI development." ``` -## Deploy TrustGraph +## Deploy and Manage TrustGraph -[🚀 Deployment Guide 🚀](https://trustgraph.ai/docs/getstarted) +[🚀 Full Deployment Guide 🚀](https://trustgraph.ai/docs/getstarted) ## TrustGraph Developer's Guide From 74094d4471ca79f28115537b147db20e4a07b105 Mon Sep 17 00:00:00 2001 From: JackColquitt Date: Mon, 23 Sep 2024 14:07:17 -0700 Subject: [PATCH 11/15] Link tweak in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3547bbd3..e6eabaa8 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ![TrustGraph banner](TG_Banner_readme.png) -🚀 [Get Started](https://trustgraph.ai/docs/getstarted) +🚀 [Full Documentation](https://trustgraph.ai/docs/getstarted) 💬 [Join the Discord](https://discord.gg/AXpxVjwzAw) 📖 [Read the Blog](https://blog.trustgraph.ai) 📺 [YouTube](https://www.youtube.com/@TrustGraph) From 124cb2093256d7819e4ecc8bfbe5cc891eba0416 Mon Sep 17 00:00:00 2001 From: JackColquitt Date: Mon, 23 Sep 2024 14:14:30 -0700 Subject: [PATCH 12/15] More readme tweaks --- README.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e6eabaa8..8cec06c6 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,26 @@ The processing showcases the reliability and efficiences of GraphRAG algorithms ## Deploy in Minutes -TrustGraph is fully containerized and is launched with a Docker Compose file. These files have already been prebuilt. Simply select a file that matches your desired model deployment and graph store configuration. +TrustGraph is designed to deploy all the services and stores needed for a scalable GraphRAG infrastructure as quickly and simply as possible. + +### Install Requirements + +``` +python3 -m venv env +. env/bin/activate +pip3 install pulsar-client +pip3 install cassandra-driver +export PYTHON_PATH=. +``` + +### Download TrustGraph + +``` +git clone https://github.com/trustgraph-ai/trustgraph trustgraph +cd trustgraph +``` + +TrustGraph is fully containerized and is launched with a Docker Compose `YAML` file. These files are prebuilt and included in the download main directory. Simply select the file that matches your desired model deployment and graph store configuration. | Model Deployment | Graph Store | Launch File | | ---------------- | ------------ | ----------- | From e2c326c626db3fef146c9f2fb01dd2992a33c7ba Mon Sep 17 00:00:00 2001 From: JackColquitt Date: Mon, 23 Sep 2024 14:21:50 -0700 Subject: [PATCH 13/15] Added sample files --- README.md | 7 +- sample-text-corpus.pdf | Bin 0 -> 165674 bytes sample-text-corpus.txt | 367 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 373 insertions(+), 1 deletion(-) create mode 100644 sample-text-corpus.pdf create mode 100644 sample-text-corpus.txt diff --git a/README.md b/README.md index 8cec06c6..da30c710 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,12 @@ TrustGraph extracts knowledge from a text corpus (PDF or text) to a knowledge gr - Entities - Semantic Relationships -The extraction prompts are built through templates, enabling customized extraction processes for a specific use case. +The extraction prompts are built through templates, enabling customized extraction processes for a specific use case. The extraction process is launched automatically with either of following commands pointing to the path of a desired text corpus or the included sample file: + +``` +scripts/load-pdf -f sample-text-corpus.pdf +scripts/load-text -f sample-text-corpus.txt +``` ## GraphRAG Queries diff --git a/sample-text-corpus.pdf b/sample-text-corpus.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9a0ecf143b8421d8891ad3016bb286fbc7a0c539 GIT binary patch literal 165674 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