From b08c7f03a6624812538ca2a8b870f9160de6ee13 Mon Sep 17 00:00:00 2001 From: cybermaggedon Date: Wed, 2 Apr 2025 14:21:22 +0100 Subject: [PATCH] Remove template dir, see github.com/trustgraph-ai/trustgraph-templates (#336) --- templates/README.md | 125 ------ templates/all-patterns.jsonnet | 31 -- templates/base/base.jsonnet | 3 - templates/components.jsonnet | 82 ---- .../components/agent-manager-react.jsonnet | 64 ---- templates/components/azure-openai-rag.jsonnet | 61 --- templates/components/azure-openai.jsonnet | 59 --- templates/components/azure-rag.jsonnet | 60 --- templates/components/azure.jsonnet | 56 --- templates/components/bedrock-rag.jsonnet | 66 ---- templates/components/bedrock.jsonnet | 62 --- templates/components/cassandra.jsonnet | 74 ---- .../components/chunker-recursive.jsonnet | 46 --- templates/components/claude-rag.jsonnet | 63 --- templates/components/claude.jsonnet | 59 --- templates/components/cohere-rag.jsonnet | 56 --- templates/components/cohere.jsonnet | 52 --- templates/components/document-rag.jsonnet | 77 ---- .../components/embeddings-fastembed.jsonnet | 43 --- templates/components/embeddings-hf.jsonnet | 43 --- .../components/embeddings-ollama.jsonnet | 45 --- templates/components/falkordb.jsonnet | 76 ---- .../components/googleaistudio-rag.jsonnet | 65 ---- templates/components/googleaistudio.jsonnet | 59 --- templates/components/grafana.jsonnet | 122 ------ templates/components/graph-rag.jsonnet | 175 --------- templates/components/librarian.jsonnet | 43 --- templates/components/llamafile-rag.jsonnet | 57 --- templates/components/llamafile.jsonnet | 53 --- templates/components/lmstudio-rag.jsonnet | 63 --- templates/components/lmstudio.jsonnet | 59 --- templates/components/memgraph.jsonnet | 81 ---- templates/components/milvus.jsonnet | 139 ------- templates/components/mistral-ocr.jsonnet | 47 --- templates/components/mistral-rag.jsonnet | 63 --- templates/components/mistral.jsonnet | 59 --- templates/components/neo4j.jsonnet | 76 ---- templates/components/null.jsonnet | 2 - templates/components/ocr.jsonnet | 37 -- templates/components/ollama-rag.jsonnet | 57 --- templates/components/ollama.jsonnet | 53 --- templates/components/openai-rag.jsonnet | 63 --- templates/components/openai.jsonnet | 60 --- templates/components/pinecone.jsonnet | 153 -------- templates/components/prompt-overrides.jsonnet | 24 -- templates/components/prompt-template.jsonnet | 125 ------ templates/components/pulsar-manager.jsonnet | 41 -- templates/components/pulsar.jsonnet | 191 ---------- templates/components/qdrant.jsonnet | 139 ------- templates/components/trustgraph.jsonnet | 184 --------- templates/components/vertexai-rag.jsonnet | 74 ---- templates/components/vertexai.jsonnet | 70 ---- templates/components/workbench-ui.jsonnet | 32 -- templates/config-to-aks-k8s.jsonnet | 16 - templates/config-to-docker-compose.jsonnet | 20 - templates/config-to-gcp-k8s.jsonnet | 16 - templates/config-to-minikube-k8s.jsonnet | 26 -- templates/engine/aks-k8s.jsonnet | 45 --- templates/engine/docker-compose.jsonnet | 237 ------------ templates/engine/gcp-k8s.jsonnet | 44 --- templates/engine/k8s.jsonnet | 358 ------------------ templates/engine/minikube-k8s.jsonnet | 115 ------ templates/generate | 235 ------------ templates/generate-all | 195 ---------- templates/module-list.jsonnet | 9 - templates/opts-to-docker-compose.jsonnet | 21 - templates/opts-to-gcp-k8s.jsonnet | 19 - templates/opts-to-minikube-k8s.jsonnet | 19 - templates/patterns/document-rag.jsonnet | 14 - templates/patterns/embeddings-hf.jsonnet | 26 -- templates/patterns/embeddings-ollama.jsonnet | 34 -- templates/patterns/grafana.jsonnet | 14 - templates/patterns/graph-rag.jsonnet | 38 -- templates/patterns/llm-azure-openai.jsonnet | 32 -- templates/patterns/llm-azure.jsonnet | 32 -- templates/patterns/llm-bedrock.jsonnet | 32 -- templates/patterns/llm-claude.jsonnet | 32 -- templates/patterns/llm-cohere.jsonnet | 32 -- templates/patterns/llm-googleaistudio.jsonnet | 32 -- templates/patterns/llm-llamafile.jsonnet | 41 -- templates/patterns/llm-mistral.jsonnet | 32 -- templates/patterns/llm-ollama.jsonnet | 41 -- templates/patterns/llm-openai.jsonnet | 32 -- templates/patterns/llm-vertexai.jsonnet | 32 -- .../override-recursive-chunker.jsonnet | 28 -- .../prompt-template-definitions.jsonnet | 23 -- .../prompt-template-document-query.jsonnet | 23 -- .../patterns/prompt-template-kg-query.jsonnet | 23 -- .../prompt-template-relationships.jsonnet | 23 -- .../prompt-template-rows-template.jsonnet | 23 -- templates/patterns/pulsar-manager.jsonnet | 23 -- templates/patterns/pulsar.jsonnet | 14 - .../patterns/triple-store-cassandra.jsonnet | 13 - .../patterns/triple-store-falkordb.jsonnet | 13 - templates/patterns/triple-store-neo4j.jsonnet | 13 - templates/patterns/trustgraph-base.jsonnet | 14 - .../patterns/vector-store-milvus.jsonnet | 15 - .../patterns/vector-store-qdrant.jsonnet | 14 - templates/prompts/cohere.jsonnet | 42 -- templates/prompts/default-prompts.jsonnet | 114 ------ templates/prompts/gemini.jsonnet | 42 -- templates/prompts/mixtral.jsonnet | 42 -- templates/prompts/openai.jsonnet | 42 -- templates/prompts/slm.jsonnet | 44 --- templates/storage.jsonnet | 10 - templates/stores/cassandra.jsonnet | 40 -- templates/stores/falkordb.jsonnet | 39 -- templates/stores/memgraph.jsonnet | 71 ---- templates/stores/milvus.jsonnet | 90 ----- templates/stores/minio.jsonnet | 49 --- templates/stores/neo4j.jsonnet | 47 --- templates/stores/qdrant.jsonnet | 39 -- templates/util/decode-config.jsonnet | 31 -- templates/values/images.jsonnet | 23 -- templates/values/url.jsonnet | 6 - templates/zip-readme.md | 28 -- 116 files changed, 6701 deletions(-) delete mode 100644 templates/README.md delete mode 100644 templates/all-patterns.jsonnet delete mode 100644 templates/base/base.jsonnet delete mode 100644 templates/components.jsonnet delete mode 100644 templates/components/agent-manager-react.jsonnet delete mode 100644 templates/components/azure-openai-rag.jsonnet delete mode 100644 templates/components/azure-openai.jsonnet delete mode 100644 templates/components/azure-rag.jsonnet delete mode 100644 templates/components/azure.jsonnet delete mode 100644 templates/components/bedrock-rag.jsonnet delete mode 100644 templates/components/bedrock.jsonnet delete mode 100644 templates/components/cassandra.jsonnet delete mode 100644 templates/components/chunker-recursive.jsonnet delete mode 100644 templates/components/claude-rag.jsonnet delete mode 100644 templates/components/claude.jsonnet delete mode 100644 templates/components/cohere-rag.jsonnet delete mode 100644 templates/components/cohere.jsonnet delete mode 100644 templates/components/document-rag.jsonnet delete mode 100644 templates/components/embeddings-fastembed.jsonnet delete mode 100644 templates/components/embeddings-hf.jsonnet delete mode 100644 templates/components/embeddings-ollama.jsonnet delete mode 100644 templates/components/falkordb.jsonnet delete mode 100644 templates/components/googleaistudio-rag.jsonnet delete mode 100644 templates/components/googleaistudio.jsonnet delete mode 100644 templates/components/grafana.jsonnet delete mode 100644 templates/components/graph-rag.jsonnet delete mode 100644 templates/components/librarian.jsonnet delete mode 100644 templates/components/llamafile-rag.jsonnet delete mode 100644 templates/components/llamafile.jsonnet delete mode 100644 templates/components/lmstudio-rag.jsonnet delete mode 100644 templates/components/lmstudio.jsonnet delete mode 100644 templates/components/memgraph.jsonnet delete mode 100644 templates/components/milvus.jsonnet delete mode 100644 templates/components/mistral-ocr.jsonnet delete mode 100644 templates/components/mistral-rag.jsonnet delete mode 100644 templates/components/mistral.jsonnet delete mode 100644 templates/components/neo4j.jsonnet delete mode 100644 templates/components/null.jsonnet delete mode 100644 templates/components/ocr.jsonnet delete mode 100644 templates/components/ollama-rag.jsonnet delete mode 100644 templates/components/ollama.jsonnet delete mode 100644 templates/components/openai-rag.jsonnet delete mode 100644 templates/components/openai.jsonnet delete mode 100644 templates/components/pinecone.jsonnet delete mode 100644 templates/components/prompt-overrides.jsonnet delete mode 100644 templates/components/prompt-template.jsonnet delete mode 100644 templates/components/pulsar-manager.jsonnet delete mode 100644 templates/components/pulsar.jsonnet delete mode 100644 templates/components/qdrant.jsonnet delete mode 100644 templates/components/trustgraph.jsonnet delete mode 100644 templates/components/vertexai-rag.jsonnet delete mode 100644 templates/components/vertexai.jsonnet delete mode 100644 templates/components/workbench-ui.jsonnet delete mode 100644 templates/config-to-aks-k8s.jsonnet delete mode 100644 templates/config-to-docker-compose.jsonnet delete mode 100644 templates/config-to-gcp-k8s.jsonnet delete mode 100644 templates/config-to-minikube-k8s.jsonnet delete mode 100644 templates/engine/aks-k8s.jsonnet delete mode 100644 templates/engine/docker-compose.jsonnet delete mode 100644 templates/engine/gcp-k8s.jsonnet delete mode 100644 templates/engine/k8s.jsonnet delete mode 100644 templates/engine/minikube-k8s.jsonnet delete mode 100755 templates/generate delete mode 100755 templates/generate-all delete mode 100644 templates/module-list.jsonnet delete mode 100644 templates/opts-to-docker-compose.jsonnet delete mode 100644 templates/opts-to-gcp-k8s.jsonnet delete mode 100644 templates/opts-to-minikube-k8s.jsonnet delete mode 100644 templates/patterns/document-rag.jsonnet delete mode 100644 templates/patterns/embeddings-hf.jsonnet delete mode 100644 templates/patterns/embeddings-ollama.jsonnet delete mode 100644 templates/patterns/grafana.jsonnet delete mode 100644 templates/patterns/graph-rag.jsonnet delete mode 100644 templates/patterns/llm-azure-openai.jsonnet delete mode 100644 templates/patterns/llm-azure.jsonnet delete mode 100644 templates/patterns/llm-bedrock.jsonnet delete mode 100644 templates/patterns/llm-claude.jsonnet delete mode 100644 templates/patterns/llm-cohere.jsonnet delete mode 100644 templates/patterns/llm-googleaistudio.jsonnet delete mode 100644 templates/patterns/llm-llamafile.jsonnet delete mode 100644 templates/patterns/llm-mistral.jsonnet delete mode 100644 templates/patterns/llm-ollama.jsonnet delete mode 100644 templates/patterns/llm-openai.jsonnet delete mode 100644 templates/patterns/llm-vertexai.jsonnet delete mode 100644 templates/patterns/override-recursive-chunker.jsonnet delete mode 100644 templates/patterns/prompt-template-definitions.jsonnet delete mode 100644 templates/patterns/prompt-template-document-query.jsonnet delete mode 100644 templates/patterns/prompt-template-kg-query.jsonnet delete mode 100644 templates/patterns/prompt-template-relationships.jsonnet delete mode 100644 templates/patterns/prompt-template-rows-template.jsonnet delete mode 100644 templates/patterns/pulsar-manager.jsonnet delete mode 100644 templates/patterns/pulsar.jsonnet delete mode 100644 templates/patterns/triple-store-cassandra.jsonnet delete mode 100644 templates/patterns/triple-store-falkordb.jsonnet delete mode 100644 templates/patterns/triple-store-neo4j.jsonnet delete mode 100644 templates/patterns/trustgraph-base.jsonnet delete mode 100644 templates/patterns/vector-store-milvus.jsonnet delete mode 100644 templates/patterns/vector-store-qdrant.jsonnet delete mode 100644 templates/prompts/cohere.jsonnet delete mode 100644 templates/prompts/default-prompts.jsonnet delete mode 100644 templates/prompts/gemini.jsonnet delete mode 100644 templates/prompts/mixtral.jsonnet delete mode 100644 templates/prompts/openai.jsonnet delete mode 100644 templates/prompts/slm.jsonnet delete mode 100644 templates/storage.jsonnet delete mode 100644 templates/stores/cassandra.jsonnet delete mode 100644 templates/stores/falkordb.jsonnet delete mode 100644 templates/stores/memgraph.jsonnet delete mode 100644 templates/stores/milvus.jsonnet delete mode 100644 templates/stores/minio.jsonnet delete mode 100644 templates/stores/neo4j.jsonnet delete mode 100644 templates/stores/qdrant.jsonnet delete mode 100644 templates/util/decode-config.jsonnet delete mode 100644 templates/values/images.jsonnet delete mode 100644 templates/values/url.jsonnet delete mode 100644 templates/zip-readme.md diff --git a/templates/README.md b/templates/README.md deleted file mode 100644 index 23039e9a..00000000 --- a/templates/README.md +++ /dev/null @@ -1,125 +0,0 @@ - -# TrustGraph template generation - -There are two utilities here: - -- `generate`: Generates a single Docker Compose launch configuration - based on configuration you provide. -- `generate-all`: Generates the release bundle for releases. You won't - need to use this unless you are managing releases. - -## `generate-all` - -Previously, this generates a full set of all vector DB / triple store / LLM -combinations, and put them in a single ZIP file. But this got out of -hand, so at the time of writing, this generates a single configuraton -using Qdrant vector DB, Ollama LLM support and Cassandra for a triple store. - -The combinations are contained withing the code, it takes two arguments: -- output ZIP file (is over-written) -- TrustGraph version number - -``` -templates/generate-all output.zip 0.18.11 -``` - -## `generate` - -This utility takes a configuration file describing the components to bundle, -and outputs a Docker Compose YAML file. - -### Input configuration - -The input configuration is a JSON file, an array of components to pull into -the configuration. For each component, there is a name and a (possibly empty) -object describing addtional parameters for that component. - -Example: - -``` -[ - { - "name": "cassandra", - "parameters": {} - }, - { - "name": "pulsar", - "parameters": {} - }, - { - "name": "qdrant", - "parameters": {} - }, - { - "name": "embeddings-hf", - "parameters": {} - }, - { - "name": "graph-rag", - "parameters": {} - }, - { - "name": "grafana", - "parameters": {} - }, - { - "name": "trustgraph", - "parameters": {} - }, - { - "name": "googleaistudio", - "parameters": { - "googleaistudio-temperature": 0.3, - "googleaistudio-max-output-tokens": 2048, - "googleaistudio-model": "gemini-1.5-pro-002" - } - }, - { - "name": "prompt-template", - "parameters": {} - }, - { - "name": "override-recursive-chunker", - "parameters": { - "chunk-size": 1000, - "chunk-overlap": 50 - } - }, - { - "name": "workbench-ui", - "parameters": {} - }, - { - "name": "agent-manager-react", - "parameters": {} - } -] -``` - -If you want to make your own configuration you could try changing the -configuration above: -- Components which are essential: pulsar, trustgraph, graph-rag, grafana, - agent-manager-react -- You need a triple store, one of: cassandra, memgraph, falkordb, neo4j -- You need a vector store, one of: qdrant, pinecone -- You need an LLM, one of: azure, azure-openai, bedrock, claude, cohere, - llamafile, ollama, openai, vertexai. -- You need an embeddings implementation, one of: embeddings-hf, - embeddings-ollama -- Optionally add the Workbench tool: workbench-ui - -Components have over-ridable parameters, look in the component definition -in `templates/components/` to see what you can override. - -### Invocation - -Two parameters: -- The output ZIP file -- The version number - -The configuration file described above is provided on standard input - -``` -templates/generate out.zip 0.18.9 < config.json -``` - diff --git a/templates/all-patterns.jsonnet b/templates/all-patterns.jsonnet deleted file mode 100644 index 3282be53..00000000 --- a/templates/all-patterns.jsonnet +++ /dev/null @@ -1,31 +0,0 @@ -[ - import "patterns/document-rag.jsonnet", - import "patterns/embeddings-hf.jsonnet", - import "patterns/embeddings-ollama.jsonnet", - import "patterns/grafana.jsonnet", - import "patterns/triple-store-cassandra.jsonnet", - import "patterns/triple-store-neo4j.jsonnet", - import "patterns/triple-store-falkordb.jsonnet", - import "patterns/graph-rag.jsonnet", - import "patterns/llm-azure.jsonnet", - import "patterns/llm-azure-openai.jsonnet", - import "patterns/llm-bedrock.jsonnet", - import "patterns/llm-claude.jsonnet", - import "patterns/llm-cohere.jsonnet", - import "patterns/llm-llamafile.jsonnet", - import "patterns/llm-mistral.jsonnet", - import "patterns/llm-ollama.jsonnet", - import "patterns/llm-openai.jsonnet", - import "patterns/llm-vertexai.jsonnet", - import "patterns/override-recursive-chunker.jsonnet", - import "patterns/prompt-template-definitions.jsonnet", - import "patterns/prompt-template-document-query.jsonnet", - import "patterns/prompt-template-kg-query.jsonnet", - import "patterns/prompt-template-relationships.jsonnet", - import "patterns/prompt-template-rows-template.jsonnet", - import "patterns/pulsar-manager.jsonnet", - import "patterns/pulsar.jsonnet", - import "patterns/trustgraph-base.jsonnet", - import "patterns/vector-store-milvus.jsonnet", - import "patterns/vector-store-qdrant.jsonnet", -] diff --git a/templates/base/base.jsonnet b/templates/base/base.jsonnet deleted file mode 100644 index 9f82efb2..00000000 --- a/templates/base/base.jsonnet +++ /dev/null @@ -1,3 +0,0 @@ -{ - restart: "on-failure:100", -} \ No newline at end of file diff --git a/templates/components.jsonnet b/templates/components.jsonnet deleted file mode 100644 index e94374ac..00000000 --- a/templates/components.jsonnet +++ /dev/null @@ -1,82 +0,0 @@ -{ - - // Essentials - "trustgraph-base": import "components/trustgraph.jsonnet", - "pulsar": import "components/pulsar.jsonnet", - - // LLMs - "azure": import "components/azure.jsonnet", - "azure-openai": import "components/azure-openai.jsonnet", - "bedrock": import "components/bedrock.jsonnet", - "claude": import "components/claude.jsonnet", - "cohere": import "components/cohere.jsonnet", - "googleaistudio": import "components/googleaistudio.jsonnet", - "lmstudio": import "components/lmstudio.jsonnet", - "mistral": import "components/mistral.jsonnet", - "ollama": import "components/ollama.jsonnet", - "openai": import "components/openai.jsonnet", - "vertexai": import "components/vertexai.jsonnet", - - // LLMs for RAG - "azure-rag": import "components/azure-rag.jsonnet", - "azure-openai-rag": import "components/azure-openai-rag.jsonnet", - "bedrock-rag": import "components/bedrock-rag.jsonnet", - "claude-rag": import "components/claude-rag.jsonnet", - "cohere-rag": import "components/cohere-rag.jsonnet", - "googleaistudio-rag": import "components/googleaistudio-rag.jsonnet", - "lmstudio-rag": import "components/lmstudio-rag.jsonnet", - "mistral-rag": import "components/mistral-rag.jsonnet", - "ollama-rag": import "components/ollama-rag.jsonnet", - "openai-rag": import "components/openai-rag.jsonnet", - "vertexai-rag": import "components/vertexai-rag.jsonnet", - - // Embeddings - "embeddings-ollama": import "components/embeddings-ollama.jsonnet", - "embeddings-hf": import "components/embeddings-hf.jsonnet", - "embeddings-fastembed": import "components/embeddings-fastembed.jsonnet", - - // Processing pipelines - "graph-rag": import "components/graph-rag.jsonnet", - "document-rag": import "components/document-rag.jsonnet", - - // OCR options - "ocr": import "components/ocr.jsonnet", - "mistral-ocr": import "components/mistral-ocr.jsonnet", - - // Librarian - document management - "librarian": import "components/librarian.jsonnet", - - // Vector stores - "vector-store-milvus": import "components/milvus.jsonnet", - "vector-store-qdrant": import "components/qdrant.jsonnet", - "vector-store-pinecone": import "components/pinecone.jsonnet", - - // Triples stores - "triple-store-cassandra": import "components/cassandra.jsonnet", - "triple-store-neo4j": import "components/neo4j.jsonnet", - "triple-store-falkordb": import "components/falkordb.jsonnet", - "triple-store-memgraph": import "components/memgraph.jsonnet", - - // Observability support - "grafana": import "components/grafana.jsonnet", - - // Pulsar manager is a UI for Pulsar. Uses a LOT of memory - "pulsar-manager": import "components/pulsar-manager.jsonnet", - - "llamafile": import "components/llamafile.jsonnet", - "override-recursive-chunker": import "components/chunker-recursive.jsonnet", - - // The prompt manager - "prompt-template": import "components/prompt-template.jsonnet", - "prompt-overrides": import "components/prompt-overrides.jsonnet", - - // ReAct agent - "agent-manager-react": import "components/agent-manager-react.jsonnet", - - // Optional UI - "workbench-ui": import "components/workbench-ui.jsonnet", - - // Does nothing. But, can be a hack to overwrite parameters - "null": {}, - -} diff --git a/templates/components/agent-manager-react.jsonnet b/templates/components/agent-manager-react.jsonnet deleted file mode 100644 index 672a0439..00000000 --- a/templates/components/agent-manager-react.jsonnet +++ /dev/null @@ -1,64 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; -local default_prompts = import "prompts/default-prompts.jsonnet"; - -{ - - tools:: [], - - "agent-manager" +: { - - create:: function(engine) - - local container = - engine.container("agent-manager") - .with_image(images.trustgraph_flow) - .with_command([ - "agent-manager-react", - "-p", - url.pulsar, - "--prompt-request-queue", - "non-persistent://tg/request/prompt-rag", - "--prompt-response-queue", - "non-persistent://tg/response/prompt-rag", - "--tool-type", - ] + [ - tool.id + "=" + tool.type - for tool in $.tools - ] + [ - "--tool-description" - ] + [ - tool.id + "=" + tool.description - for tool in $.tools - ] + [ - "--tool-argument" - ] + [ - "%s=%s:%s:%s" % [ - tool.id, arg.name, arg.type, arg.description - ] - for tool in $.tools - for arg in tool.arguments - ] - ) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "agent-manager", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - -} + default_prompts - diff --git a/templates/components/azure-openai-rag.jsonnet b/templates/components/azure-openai-rag.jsonnet deleted file mode 100644 index 33355707..00000000 --- a/templates/components/azure-openai-rag.jsonnet +++ /dev/null @@ -1,61 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["ollama-rag-" + key]:: value, - }, - - "azure-openai-rag-model":: "GPT-3.5-Turbo", - "azure-openai-rag-max-output-tokens":: 4192, - "azure-openai-rag-temperature":: 0.0, - - "text-completion-rag" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("azure-openai-credentials") - .with_env_var("AZURE_TOKEN", "azure-token"); - - local containerRag = - engine.container("text-completion-rag") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-azure", - "-p", - url.pulsar, - "-x", - std.toString($["azure-openai-rag-max-output-tokens"]), - "-t", - "%0.3f" % $["azure-openai-rag-temperature"], - "-i", - "non-persistent://tg/request/text-completion-rag", - "-o", - "non-persistent://tg/response/text-completion-rag", - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSetRag = engine.containers( - "text-completion-rag", [ containerRag ] - ); - - local serviceRag = - engine.internalService(containerSetRag) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - envSecrets, - containerSetRag, - serviceRag, - ]) - - }, - -} + prompts - diff --git a/templates/components/azure-openai.jsonnet b/templates/components/azure-openai.jsonnet deleted file mode 100644 index 3ecbbdac..00000000 --- a/templates/components/azure-openai.jsonnet +++ /dev/null @@ -1,59 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["azure-openai-" + key]:: value, - }, - - "azure-openai-model":: "GPT-3.5-Turbo", - "azure-openai-max-output-tokens":: 4192, - "azure-openai-temperature":: 0.0, - - "text-completion" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("azure-openai-credentials") - .with_env_var("AZURE_TOKEN", "azure-token"); - - local container = - engine.container("text-completion") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-azure-openai", - "-p", - url.pulsar, - "-m", - $["azure-openai-model"], - "-x", - std.toString($["azure-openai-max-output-tokens"]), - "-t", - "%0.3f" % $["azure-openai-temperature"], - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "text-completion", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - envSecrets, - containerSet, - service, - ]) - - }, - -} + prompts - diff --git a/templates/components/azure-rag.jsonnet b/templates/components/azure-rag.jsonnet deleted file mode 100644 index 20b7306e..00000000 --- a/templates/components/azure-rag.jsonnet +++ /dev/null @@ -1,60 +0,0 @@ -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["azure-rag-" + key]:: value, - }, - - "azure-rag-max-output-tokens":: 4096, - "azure-rag-temperature":: 0.0, - - "text-completion-rag" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("azure-credentials") - .with_env_var("AZURE_TOKEN", "azure-token") - .with_env_var("AZURE_ENDPOINT", "azure-endpoint"); - - local containerRag = - engine.container("text-completion-rag") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-azure", - "-p", - url.pulsar, - "-x", - std.toString($["azure-rag-max-output-tokens"]), - "-t", - "%0.3f" % $["azure-rag-temperature"], - "-i", - "non-persistent://tg/request/text-completion-rag", - "-o", - "non-persistent://tg/response/text-completion-rag", - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSetRag = engine.containers( - "text-completion-rag", [ containerRag ] - ); - - local serviceRag = - engine.internalService(containerSetRag) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - envSecrets, - containerSetRag, - serviceRag, - ]) - - } - -} + prompts - diff --git a/templates/components/azure.jsonnet b/templates/components/azure.jsonnet deleted file mode 100644 index c7746e23..00000000 --- a/templates/components/azure.jsonnet +++ /dev/null @@ -1,56 +0,0 @@ -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["azure-" + key]:: value, - }, - - "azure-max-output-tokens":: 4096, - "azure-temperature":: 0.0, - - "text-completion" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("azure-credentials") - .with_env_var("AZURE_TOKEN", "azure-token") - .with_env_var("AZURE_ENDPOINT", "azure-endpoint"); - - local container = - engine.container("text-completion") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-azure", - "-p", - url.pulsar, - "-x", - std.toString($["azure-max-output-tokens"]), - "-t", - "%0.3f" % $["azure-temperature"], - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "text-completion", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - envSecrets, - containerSet, - service, - ]) - - } - -} + prompts - diff --git a/templates/components/bedrock-rag.jsonnet b/templates/components/bedrock-rag.jsonnet deleted file mode 100644 index b265a9f2..00000000 --- a/templates/components/bedrock-rag.jsonnet +++ /dev/null @@ -1,66 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; -local chunker = import "chunker-recursive.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["bedrock-rag-" + key]:: value, - }, - - "bedrock-rag-max-output-tokens":: 4096, - "bedrock-rag-temperature":: 0.0, - "bedrock-rag-model":: "mistral.mixtral-8x7b-instruct-v0:1", - - "text-completion-rag" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("bedrock-credentials") - .with_env_var("AWS_ACCESS_KEY_ID", "aws-id-key") - .with_env_var("AWS_SECRET_ACCESS_KEY", "aws-secret") - .with_env_var("AWS_DEFAULT_REGION", "aws-region"); - - local containerRag = - engine.container("text-completion-rag") - .with_image(images.trustgraph_bedrock) - .with_command([ - "text-completion-bedrock", - "-p", - url.pulsar, - "-x", - std.toString($["bedrock-rag-max-output-tokens"]), - "-t", - "%0.3f" % $["bedrock-rag-temperature"], - "-m", - $["bedrock-rag-model"], - "-i", - "non-persistent://tg/request/text-completion-rag", - "-o", - "non-persistent://tg/response/text-completion-rag", - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSetRag = engine.containers( - "text-completion-rag", [ containerRag ] - ); - - local serviceRag = - engine.internalService(containerSetRag) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - envSecrets, - containerSetRag, - serviceRag, - ]) - - }, - -} + prompts + chunker - diff --git a/templates/components/bedrock.jsonnet b/templates/components/bedrock.jsonnet deleted file mode 100644 index 6b599057..00000000 --- a/templates/components/bedrock.jsonnet +++ /dev/null @@ -1,62 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; -local chunker = import "chunker-recursive.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["bedrock-" + key]:: value, - }, - - "bedrock-max-output-tokens":: 4096, - "bedrock-temperature":: 0.0, - "bedrock-model":: "mistral.mixtral-8x7b-instruct-v0:1", - - "text-completion" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("bedrock-credentials") - .with_env_var("AWS_ACCESS_KEY_ID", "aws-id-key") - .with_env_var("AWS_SECRET_ACCESS_KEY", "aws-secret") - .with_env_var("AWS_DEFAULT_REGION", "aws-region"); - - local container = - engine.container("text-completion") - .with_image(images.trustgraph_bedrock) - .with_command([ - "text-completion-bedrock", - "-p", - url.pulsar, - "-x", - std.toString($["bedrock-max-output-tokens"]), - "-t", - "%0.3f" % $["bedrock-temperature"], - "-m", - $["bedrock-model"], - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "text-completion", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - envSecrets, - containerSet, - service, - ]) - - }, - -} + prompts + chunker - diff --git a/templates/components/cassandra.jsonnet b/templates/components/cassandra.jsonnet deleted file mode 100644 index 92ecf69f..00000000 --- a/templates/components/cassandra.jsonnet +++ /dev/null @@ -1,74 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local cassandra_hosts = "cassandra"; -local cassandra = import "stores/cassandra.jsonnet"; - -cassandra + { - - "store-triples" +: { - - create:: function(engine) - - local container = - engine.container("store-triples") - .with_image(images.trustgraph_flow) - .with_command([ - "triples-write-cassandra", - "-p", - url.pulsar, - "-g", - cassandra_hosts, - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "store-triples", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "query-triples" +: { - - create:: function(engine) - - local container = - engine.container("query-triples") - .with_image(images.trustgraph_flow) - .with_command([ - "triples-query-cassandra", - "-p", - url.pulsar, - "-g", - cassandra_hosts, - ]) - .with_limits("0.5", "512M") - .with_reservations("0.1", "512M"); - - local containerSet = engine.containers( - "query-triples", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - } - -} - diff --git a/templates/components/chunker-recursive.jsonnet b/templates/components/chunker-recursive.jsonnet deleted file mode 100644 index 4a174366..00000000 --- a/templates/components/chunker-recursive.jsonnet +++ /dev/null @@ -1,46 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - "chunk-size":: 2000, - "chunk-overlap":: 100, - - "chunker" +: { - - create:: function(engine) - - local container = - engine.container("chunker") - .with_image(images.trustgraph_flow) - .with_command([ - "chunker-recursive", - "-p", - url.pulsar, - "--chunk-size", - std.toString($["chunk-size"]), - "--chunk-overlap", - std.toString($["chunk-overlap"]), - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "chunker", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - -} - diff --git a/templates/components/claude-rag.jsonnet b/templates/components/claude-rag.jsonnet deleted file mode 100644 index 06d58db2..00000000 --- a/templates/components/claude-rag.jsonnet +++ /dev/null @@ -1,63 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["claude-rag-" + key]:: value, - }, - - "claude-rag-model":: "claude-3-sonnet-20240229", - "claude-rag-max-output-tokens":: 4096, - "claude-rag-temperature":: 0.0, - - "text-completion-rag" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("claude-credentials") - .with_env_var("CLAUDE_KEY", "claude-key"); - - local containerRag = - engine.container("text-completion-rag") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-claude", - "-p", - url.pulsar, - "-x", - std.toString($["claude-rag-max-output-tokens"]), - "-m", - $["claude-rag-model"], - "-t", - "%0.3f" % $["claude-rag-temperature"], - "-i", - "non-persistent://tg/request/text-completion-rag", - "-o", - "non-persistent://tg/response/text-completion-rag", - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSetRag = engine.containers( - "text-completion-rag", [ containerRag ] - ); - - local serviceRag = - engine.internalService(containerSetRag) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - envSecrets, - containerSetRag, - serviceRag, - ]) - - }, - -} + prompts - diff --git a/templates/components/claude.jsonnet b/templates/components/claude.jsonnet deleted file mode 100644 index e43e7504..00000000 --- a/templates/components/claude.jsonnet +++ /dev/null @@ -1,59 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["claude-" + key]:: value, - }, - - "claude-model":: "claude-3-sonnet-20240229", - "claude-max-output-tokens":: 4096, - "claude-temperature":: 0.0, - - "text-completion" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("claude-credentials") - .with_env_var("CLAUDE_KEY", "claude-key"); - - local container = - engine.container("text-completion") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-claude", - "-p", - url.pulsar, - "-x", - std.toString($["claude-max-output-tokens"]), - "-m", - $["claude-model"], - "-t", - "%0.3f" % $["claude-temperature"], - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "text-completion", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - envSecrets, - containerSet, - service, - ]) - - }, - -} + prompts - diff --git a/templates/components/cohere-rag.jsonnet b/templates/components/cohere-rag.jsonnet deleted file mode 100644 index 6a142519..00000000 --- a/templates/components/cohere-rag.jsonnet +++ /dev/null @@ -1,56 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["cohere-rag-" + key]:: value, - }, - - "cohere-rag-temperature":: 0.0, - - "text-completion-rag" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("cohere-credentials") - .with_env_var("COHERE_KEY", "cohere-key"); - - local containerRag = - engine.container("text-completion-rag") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-cohere", - "-p", - url.pulsar, - "-t", - "%0.3f" % $["cohere-rag-temperature"], - "-i", - "non-persistent://tg/request/text-completion-rag", - "-o", - "non-persistent://tg/response/text-completion-rag", - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSetRag = engine.containers( - "text-completion-rag", [ containerRag ] - ); - - local serviceRag = - engine.internalService(containerSetRag) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - envSecrets, - containerSetRag, - serviceRag, - ]) - - }, - -} + prompts - diff --git a/templates/components/cohere.jsonnet b/templates/components/cohere.jsonnet deleted file mode 100644 index 093436fd..00000000 --- a/templates/components/cohere.jsonnet +++ /dev/null @@ -1,52 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["cohere-" + key]:: value, - }, - - "cohere-temperature":: 0.0, - - "text-completion" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("cohere-credentials") - .with_env_var("COHERE_KEY", "cohere-key"); - - local container = - engine.container("text-completion") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-cohere", - "-p", - url.pulsar, - "-t", - "%0.3f" % $["cohere-temperature"], - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "text-completion", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - envSecrets, - containerSet, - service, - ]) - - }, - -} + prompts - diff --git a/templates/components/document-rag.jsonnet b/templates/components/document-rag.jsonnet deleted file mode 100644 index 2d9dda3d..00000000 --- a/templates/components/document-rag.jsonnet +++ /dev/null @@ -1,77 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - "document-rag-doc-limit":: 20, - - "document-rag" +: { - - create:: function(engine) - - local container = - engine.container("document-rag") - .with_image(images.trustgraph_flow) - .with_command([ - "document-rag", - "-p", - url.pulsar, - "--doc-limit", - std.toString($["document-rag-doc-limit"]), - "--prompt-request-queue", - "non-persistent://tg/request/prompt-rag", - "--prompt-response-queue", - "non-persistent://tg/response/prompt-rag", - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "document-rag", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "document-embeddings" +: { - - create:: function(engine) - - local container = - engine.container("document-embeddings") - .with_image(images.trustgraph_flow) - .with_command([ - "document-embeddings", - "-p", - url.pulsar, - ]) - .with_limits("1.0", "512M") - .with_reservations("0.5", "512M"); - - local containerSet = engine.containers( - "document-embeddings", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - -} - diff --git a/templates/components/embeddings-fastembed.jsonnet b/templates/components/embeddings-fastembed.jsonnet deleted file mode 100644 index c1fe35ff..00000000 --- a/templates/components/embeddings-fastembed.jsonnet +++ /dev/null @@ -1,43 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - "embeddings-model":: "sentence-transformers/all-MiniLM-L6-v2", - - embeddings +: { - - create:: function(engine) - - local container = - engine.container("embeddings") - .with_image(images.trustgraph_flow) - .with_command([ - "embeddings-fastembed", - "-p", - url.pulsar, - "-m", - $["embeddings-model"], - ]) - .with_limits("1.0", "400M") - .with_reservations("0.5", "400M"); - - local containerSet = engine.containers( - "embeddings", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - -} - diff --git a/templates/components/embeddings-hf.jsonnet b/templates/components/embeddings-hf.jsonnet deleted file mode 100644 index 29ebbc48..00000000 --- a/templates/components/embeddings-hf.jsonnet +++ /dev/null @@ -1,43 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - "embeddings-model":: "all-MiniLM-L6-v2", - - embeddings +: { - - create:: function(engine) - - local container = - engine.container("embeddings") - .with_image(images.trustgraph_hf) - .with_command([ - "embeddings-hf", - "-p", - url.pulsar, - "-m", - $["embeddings-model"], - ]) - .with_limits("1.0", "400M") - .with_reservations("0.5", "400M"); - - local containerSet = engine.containers( - "embeddings", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - -} - diff --git a/templates/components/embeddings-ollama.jsonnet b/templates/components/embeddings-ollama.jsonnet deleted file mode 100644 index a26ad0ba..00000000 --- a/templates/components/embeddings-ollama.jsonnet +++ /dev/null @@ -1,45 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; - -{ - - "embeddings-model":: "mxbai-embed-large", - "ollama-url":: "${OLLAMA_HOST}", - - embeddings +: { - - create:: function(engine) - - local container = - engine.container("embeddings") - .with_image(images.trustgraph_flow) - .with_command([ - "embeddings-ollama", - "-p", - url.pulsar, - "-m", - $["embeddings-model"], - "-r", - $["ollama-url"], - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "embeddings", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - -} - diff --git a/templates/components/falkordb.jsonnet b/templates/components/falkordb.jsonnet deleted file mode 100644 index c08896d3..00000000 --- a/templates/components/falkordb.jsonnet +++ /dev/null @@ -1,76 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local falkordb = import "stores/falkordb.jsonnet"; - -falkordb + { - - "falkordb-url":: "falkor://falkordb:6379", - - "store-triples" +: { - - create:: function(engine) - - local container = - engine.container("store-triples") - .with_image(images.trustgraph_flow) - .with_command([ - "triples-write-falkordb", - "-p", - url.pulsar, - "-g", - $["falkordb-url"], - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "store-triples", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "query-triples" +: { - - create:: function(engine) - - local container = - engine.container("query-triples") - .with_image(images.trustgraph_flow) - .with_command([ - "triples-query-falkordb", - "-p", - url.pulsar, - "-g", - $["falkordb-url"], - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "query-triples", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - - } - -} - diff --git a/templates/components/googleaistudio-rag.jsonnet b/templates/components/googleaistudio-rag.jsonnet deleted file mode 100644 index 332749e8..00000000 --- a/templates/components/googleaistudio-rag.jsonnet +++ /dev/null @@ -1,65 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["googleaistudio-rag-" + key]:: value, - }, - - "googleaistudio-rag-max-output-tokens":: 4096, - "googleaistudio-rag-temperature":: 0.0, - "googleaistudio-rag-model":: "gemini-1.5-flash-002", - - "text-completion-rag" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("googleaistudio-credentials") - .with_env_var("GOOGLE_AI_STUDIO_KEY", "googleaistudio-key"); - - local containerRag = - engine.container("text-completion-rag") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-googleaistudio", - "-p", - url.pulsar, - "-x", - std.toString( - $["googleaistudio-rag-max-output-tokens"] - ), - "-t", - "%0.3f" % $["googleaistudio-rag-temperature"], - "-m", - $["googleaistudio-rag-model"], - "-i", - "non-persistent://tg/request/text-completion-rag", - "-o", - "non-persistent://tg/response/text-completion-rag", - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSetRag = engine.containers( - "text-completion-rag", [ containerRag ] - ); - - local serviceRag = - engine.internalService(containerSetRag) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - envSecrets, - containerSetRag, - serviceRag, - ]) - - }, - -} + prompts - diff --git a/templates/components/googleaistudio.jsonnet b/templates/components/googleaistudio.jsonnet deleted file mode 100644 index 58c7807d..00000000 --- a/templates/components/googleaistudio.jsonnet +++ /dev/null @@ -1,59 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["googleaistudio-" + key]:: value, - }, - - "googleaistudio-max-output-tokens":: 4096, - "googleaistudio-temperature":: 0.0, - "googleaistudio-model":: "gemini-1.5-flash-002", - - "text-completion" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("googleaistudio-credentials") - .with_env_var("GOOGLE_AI_STUDIO_KEY", "googleaistudio-key"); - - local container = - engine.container("text-completion") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-googleaistudio", - "-p", - url.pulsar, - "-x", - std.toString($["googleaistudio-max-output-tokens"]), - "-t", - "%0.3f" % $["googleaistudio-temperature"], - "-m", - $["googleaistudio-model"], - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "text-completion", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - envSecrets, - containerSet, - service, - ]) - - }, - -} + prompts - diff --git a/templates/components/grafana.jsonnet b/templates/components/grafana.jsonnet deleted file mode 100644 index e968faec..00000000 --- a/templates/components/grafana.jsonnet +++ /dev/null @@ -1,122 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; - -{ - - "prometheus" +: { - - create:: function(engine) - - local vol = engine.volume("prometheus-data").with_size("20G"); - - local cfgVol = engine.configVolume( - "prometheus-cfg", "prometheus", - { - "prometheus.yml": importstr "prometheus/prometheus.yml", - } - ); - - local container = - engine.container("prometheus") - .with_image(images.prometheus) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M") - .with_port(9090, 9090, "http") - .with_volume_mount(cfgVol, "/etc/prometheus/") - .with_volume_mount(vol, "/prometheus"); - - local containerSet = engine.containers( - "prometheus", [ container ] - ); - - local service = - engine.service(containerSet) - .with_port(9090, 9090, "http"); - - engine.resources([ - cfgVol, - vol, - containerSet, - service, - ]) - - }, - - "grafana" +: { - - create:: function(engine) - - local vol = engine.volume("grafana-storage").with_size("20G"); - - local provDashVol = engine.configVolume( - "prov-dash", "grafana/provisioning/", - { - "dashboard.yml": - importstr "grafana/provisioning/dashboard.yml", - } - - ); - - local provDataVol = engine.configVolume( - "prov-data", "grafana/provisioning/", - { - "datasource.yml": - importstr "grafana/provisioning/datasource.yml", - } - - ); - - local dashVol = engine.configVolume( - "dashboards", "grafana/dashboards/", - { - "dashboard.json": - importstr "grafana/dashboards/dashboard.json", - } - - ); - - local container = - engine.container("grafana") - .with_image(images.grafana) - .with_environment({ - // GF_AUTH_ANONYMOUS_ORG_ROLE: "Admin", - // GF_AUTH_ANONYMOUS_ENABLED: "true", - // GF_ORG_ROLE: "Admin", - GF_ORG_NAME: "trustgraph.ai", - // GF_SERVER_ROOT_URL: "https://example.com", - }) - .with_limits("1.0", "256M") - .with_reservations("0.5", "256M") - .with_port(3000, 3000, "cassandra") - .with_volume_mount(vol, "/var/lib/grafana") - .with_volume_mount( - provDashVol, "/etc/grafana/provisioning/dashboards/" - ) - .with_volume_mount( - provDataVol, "/etc/grafana/provisioning/datasources/" - ) - .with_volume_mount( - dashVol, "/var/lib/grafana/dashboards/" - ); - - local containerSet = engine.containers( - "grafana", [ container ] - ); - - local service = - engine.service(containerSet) - .with_port(3000, 3000, "http"); - - engine.resources([ - vol, - provDashVol, - provDataVol, - dashVol, - containerSet, - service, - ]) - - }, - -} - diff --git a/templates/components/graph-rag.jsonnet b/templates/components/graph-rag.jsonnet deleted file mode 100644 index 8d3e2e38..00000000 --- a/templates/components/graph-rag.jsonnet +++ /dev/null @@ -1,175 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; - -{ - - "graph-rag-entity-limit":: 50, - "graph-rag-triple-limit":: 30, - "graph-rag-max-subgraph-size":: 400, - "graph-rag-max-path-length":: 2, - - "kg-extract-definitions" +: { - - create:: function(engine) - - local container = - engine.container("kg-extract-definitions") - .with_image(images.trustgraph_flow) - .with_command([ - "kg-extract-definitions", - "-p", - url.pulsar, - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "kg-extract-definitions", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "kg-extract-relationships" +: { - - create:: function(engine) - - local container = - engine.container("kg-extract-relationships") - .with_image(images.trustgraph_flow) - .with_command([ - "kg-extract-relationships", - "-p", - url.pulsar, - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "kg-extract-relationships", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "kg-extract-topics" +: { - - create:: function(engine) - - local container = - engine.container("kg-extract-topics") - .with_image(images.trustgraph_flow) - .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 ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "graph-rag" +: { - - create:: function(engine) - - local container = - engine.container("graph-rag") - .with_image(images.trustgraph_flow) - .with_command([ - "graph-rag", - "-p", - url.pulsar, - "--prompt-request-queue", - "non-persistent://tg/request/prompt-rag", - "--prompt-response-queue", - "non-persistent://tg/response/prompt-rag", - "--entity-limit", - std.toString($["graph-rag-entity-limit"]), - "--triple-limit", - std.toString($["graph-rag-triple-limit"]), - "--max-subgraph-size", - std.toString($["graph-rag-max-subgraph-size"]), - "--max-path-length", - std.toString($["graph-rag-max-path-length"]), - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "graph-rag", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "graph-embeddings" +: { - - create:: function(engine) - - local container = - engine.container("graph-embeddings") - .with_image(images.trustgraph_flow) - .with_command([ - "graph-embeddings", - "-p", - url.pulsar, - ]) - .with_limits("1.0", "512M") - .with_reservations("0.5", "512M"); - - local containerSet = engine.containers( - "graph-embeddings", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - -} - diff --git a/templates/components/librarian.jsonnet b/templates/components/librarian.jsonnet deleted file mode 100644 index 4df1b692..00000000 --- a/templates/components/librarian.jsonnet +++ /dev/null @@ -1,43 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local minio = import "stores/minio.jsonnet"; -local cassandra = import "stores/cassandra.jsonnet"; - -{ - - "librarian" +: { - - create:: function(engine) - - local container = - engine.container("librarian") - .with_image(images.trustgraph_flow) - .with_command([ - "librarian", - "-p", - url.pulsar, - ]) - .with_limits("0.5", "256M") - .with_reservations("0.1", "256M"); - - local containerSet = engine.containers( - "librarian", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - -} - - // Minio and Cassandra are used by the Librarian - + minio + cassandra - diff --git a/templates/components/llamafile-rag.jsonnet b/templates/components/llamafile-rag.jsonnet deleted file mode 100644 index 262f586e..00000000 --- a/templates/components/llamafile-rag.jsonnet +++ /dev/null @@ -1,57 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/slm.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["llamafile-rag-" + key]:: value, - }, - - "llamafile-rag-model":: "LLaMA_CPP", - - "text-completion-rag" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("llamafile-credentials") - .with_env_var("LLAMAFILE_URL", "llamafile-url"); - - local containerRag = - engine.container("text-completion-rag") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-llamafile", - "-p", - url.pulsar, - "-m", - $["llamafile-rag-model"], - "-i", - "non-persistent://tg/request/text-completion-rag", - "-o", - "non-persistent://tg/response/text-completion-rag", - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSetRag = engine.containers( - "text-completion-rag", [ containerRag ] - ); - - local serviceRag = - engine.internalService(containerSetRag) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - envSecrets, - containerSetRag, - serviceRag, - ]) - - }, - -} + prompts - diff --git a/templates/components/llamafile.jsonnet b/templates/components/llamafile.jsonnet deleted file mode 100644 index f3e1efd3..00000000 --- a/templates/components/llamafile.jsonnet +++ /dev/null @@ -1,53 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/slm.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["llamafile-" + key]:: value, - }, - - "llamafile-model":: "LLaMA_CPP", - - "text-completion" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("llamafile-credentials") - .with_env_var("LLAMAFILE_URL", "llamafile-url"); - - local container = - engine.container("text-completion") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-llamafile", - "-p", - url.pulsar, - "-m", - $["llamafile-model"], - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "text-completion", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - envSecrets, - containerSet, - service, - ]) - - }, - -} + prompts - diff --git a/templates/components/lmstudio-rag.jsonnet b/templates/components/lmstudio-rag.jsonnet deleted file mode 100644 index 70a94087..00000000 --- a/templates/components/lmstudio-rag.jsonnet +++ /dev/null @@ -1,63 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["lmstudio-rag-" + key]:: value, - }, - - "lmstudio-rag-max-output-tokens":: 4096, - "lmstudio-rag-temperature":: 0.0, - "lmstudio-rag-model":: "GPT-3.5-Turbo", - - "text-completion-rag" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("lmstudio-credentials") - .with_env_var("LMSTUDIO_URL", "lmstudio-url"); - - local containerRag = - engine.container("text-completion-rag") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-lmstudio", - "-p", - url.pulsar, - "-x", - std.toString($["lmstudio-rag-max-output-tokens"]), - "-t", - "%0.3f" % $["lmstudio-rag-temperature"], - "-m", - $["lmstudio-rag-model"], - "-i", - "non-persistent://tg/request/text-completion-rag", - "-o", - "non-persistent://tg/response/text-completion-rag", - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSetRag = engine.containers( - "text-completion-rag", [ containerRag ] - ); - - local serviceRag = - engine.internalService(containerSetRag) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - envSecrets, - containerSetRag, - serviceRag, - ]) - - }, - -} + prompts - diff --git a/templates/components/lmstudio.jsonnet b/templates/components/lmstudio.jsonnet deleted file mode 100644 index 4fe1da58..00000000 --- a/templates/components/lmstudio.jsonnet +++ /dev/null @@ -1,59 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["lmstudio-" + key]:: value, - }, - - "lmstudio-max-output-tokens":: 4096, - "lmstudio-temperature":: 0.0, - "lmstudio-model":: "GPT-3.5-Turbo", - - "text-completion" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("lmstudio-credentials") - .with_env_var("LMSTUDIO_URL", "lmstudio-url"); - - local container = - engine.container("text-completion") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-lmstudio", - "-p", - url.pulsar, - "-x", - std.toString($["lmstudio-max-output-tokens"]), - "-t", - "%0.3f" % $["lmstudio-temperature"], - "-m", - $["lmstudio-model"], - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "text-completion", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - envSecrets, - containerSet, - service, - ]) - - }, - -} + prompts - diff --git a/templates/components/memgraph.jsonnet b/templates/components/memgraph.jsonnet deleted file mode 100644 index 21684a61..00000000 --- a/templates/components/memgraph.jsonnet +++ /dev/null @@ -1,81 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local memgraph = import "stores/memgraph.jsonnet"; - -memgraph + { - - "memgraph-url":: "bolt://memgraph:7687", - "memgraph-database":: "memgraph", - - "store-triples" +: { - - create:: function(engine) - - local container = - engine.container("store-triples") - .with_image(images.trustgraph_flow) - .with_command([ - "triples-write-memgraph", - "-p", - url.pulsar, - "-g", - $["memgraph-url"], - "--database", - $["memgraph-database"], - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "store-triples", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "query-triples" +: { - - create:: function(engine) - - local container = - engine.container("query-triples") - .with_image(images.trustgraph_flow) - .with_command([ - "triples-query-memgraph", - "-p", - url.pulsar, - "-g", - $["memgraph-url"], - "--database", - $["memgraph-database"], - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "query-triples", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - - } - -} - diff --git a/templates/components/milvus.jsonnet b/templates/components/milvus.jsonnet deleted file mode 100644 index 27e5e316..00000000 --- a/templates/components/milvus.jsonnet +++ /dev/null @@ -1,139 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local cassandra_hosts = "cassandra"; -local milvus = import "stores/milvus.jsonnet"; - -milvus + { - - "store-graph-embeddings" +: { - - create:: function(engine) - - local container = - engine.container("store-graph-embeddings") - .with_image(images.trustgraph_flow) - .with_command([ - "ge-write-milvus", - "-p", - url.pulsar, - "-t", - url.milvus, - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "store-graph-embeddings", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "query-graph-embeddings" +: { - - create:: function(engine) - - local container = - engine.container("query-graph-embeddings") - .with_image(images.trustgraph_flow) - .with_command([ - "ge-query-milvus", - "-p", - url.pulsar, - "-t", - url.milvus, - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "query-graph-embeddings", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "store-doc-embeddings" +: { - - create:: function(engine) - - local container = - engine.container("store-doc-embeddings") - .with_image(images.trustgraph_flow) - .with_command([ - "de-write-milvus", - "-p", - url.pulsar, - "-t", - url.milvus, - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "store-doc-embeddings", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "query-doc-embeddings" +: { - - create:: function(engine) - - local container = - engine.container("query-doc-embeddings") - .with_image(images.trustgraph_flow) - .with_command([ - "de-query-milvus", - "-p", - url.pulsar, - "-t", - url.milvus, - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "query-doc-embeddings", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - - } - -} - diff --git a/templates/components/mistral-ocr.jsonnet b/templates/components/mistral-ocr.jsonnet deleted file mode 100644 index a70addd5..00000000 --- a/templates/components/mistral-ocr.jsonnet +++ /dev/null @@ -1,47 +0,0 @@ -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["mistral-" + key]:: value, - }, - - "pdf-decoder" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("mistral-credentials") - .with_env_var("MISTRAL_TOKEN", "mistral-token"); - - local container = - engine.container("mistral-ocr") - .with_image(images.trustgraph_flow) - .with_command([ - "pdf-ocr-mistral", - "-p", - url.pulsar, - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "mistral-ocr", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - envSecrets, - containerSet, - service, - ]) - - }, - -} - diff --git a/templates/components/mistral-rag.jsonnet b/templates/components/mistral-rag.jsonnet deleted file mode 100644 index 12fbe8a5..00000000 --- a/templates/components/mistral-rag.jsonnet +++ /dev/null @@ -1,63 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["mistral-rag-" + key]:: value, - }, - - "mistral-rag-max-output-tokens":: 4096, - "mistral-rag-temperature":: 0.0, - "mistral-rag-model":: "ministral-8b-latest", - - "text-completion-rag" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("mistral-credentials") - .with_env_var("MISTRAL_TOKEN", "mistral-token"); - - local containerRag = - engine.container("text-completion-rag") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-mistral", - "-p", - url.pulsar, - "-x", - std.toString($["mistral-rag-max-output-tokens"]), - "-t", - "%0.3f" % $["mistral-rag-temperature"], - "-m", - $["mistral-rag-model"], - "-i", - "non-persistent://tg/request/text-completion-rag", - "-o", - "non-persistent://tg/response/text-completion-rag", - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSetRag = engine.containers( - "text-completion-rag", [ containerRag ] - ); - - local serviceRag = - engine.internalService(containerSetRag) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - envSecrets, - containerSetRag, - serviceRag, - ]) - - }, - -} + prompts - diff --git a/templates/components/mistral.jsonnet b/templates/components/mistral.jsonnet deleted file mode 100644 index 4de332c9..00000000 --- a/templates/components/mistral.jsonnet +++ /dev/null @@ -1,59 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["mistral-" + key]:: value, - }, - - "mistral-max-output-tokens":: 4096, - "mistral-temperature":: 0.0, - "mistral-model":: "ministral-8b-latest", - - "text-completion" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("mistral-credentials") - .with_env_var("MISTRAL_TOKEN", "mistral-token"); - - local container = - engine.container("text-completion") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-mistral", - "-p", - url.pulsar, - "-x", - std.toString($["mistral-max-output-tokens"]), - "-t", - "%0.3f" % $["mistral-temperature"], - "-m", - $["mistral-model"], - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "text-completion", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - envSecrets, - containerSet, - service, - ]) - - }, - -} + prompts - diff --git a/templates/components/neo4j.jsonnet b/templates/components/neo4j.jsonnet deleted file mode 100644 index 7cebdc71..00000000 --- a/templates/components/neo4j.jsonnet +++ /dev/null @@ -1,76 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local neo4j = import "stores/neo4j.jsonnet"; - -neo4j + { - - "neo4j-url":: "bolt://neo4j:7687", - - "store-triples" +: { - - create:: function(engine) - - local container = - engine.container("store-triples") - .with_image(images.trustgraph_flow) - .with_command([ - "triples-write-neo4j", - "-p", - url.pulsar, - "-g", - $["neo4j-url"], - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "store-triples", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "query-triples" +: { - - create:: function(engine) - - local container = - engine.container("query-triples") - .with_image(images.trustgraph_flow) - .with_command([ - "triples-query-neo4j", - "-p", - url.pulsar, - "-g", - $["neo4j-url"], - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "query-triples", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - - } - -} - diff --git a/templates/components/null.jsonnet b/templates/components/null.jsonnet deleted file mode 100644 index 2c63c085..00000000 --- a/templates/components/null.jsonnet +++ /dev/null @@ -1,2 +0,0 @@ -{ -} diff --git a/templates/components/ocr.jsonnet b/templates/components/ocr.jsonnet deleted file mode 100644 index cdd49583..00000000 --- a/templates/components/ocr.jsonnet +++ /dev/null @@ -1,37 +0,0 @@ -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; - -{ - - "pdf-decoder" +: { - - create:: function(engine) - - local container = - engine.container("pdf-ocr") - .with_image(images.trustgraph_ocr) - .with_command([ - "pdf-ocr", - "-p", - url.pulsar, - ]) - .with_limits("1.0", "512M") - .with_reservations("0.1", "512M"); - - local containerSet = engine.containers( - "pdf-ocr", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - -} - diff --git a/templates/components/ollama-rag.jsonnet b/templates/components/ollama-rag.jsonnet deleted file mode 100644 index 680adea5..00000000 --- a/templates/components/ollama-rag.jsonnet +++ /dev/null @@ -1,57 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["ollama-rag-" + key]:: value, - }, - - "ollama-rag-model":: "gemma2:9b", - - "text-completion-rag" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("ollama-credentials") - .with_env_var("OLLAMA_HOST", "ollama-host"); - - local containerRag = - engine.container("text-completion-rag") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-ollama", - "-p", - url.pulsar, - "-m", - $["ollama-rag-model"], - "-i", - "non-persistent://tg/request/text-completion-rag", - "-o", - "non-persistent://tg/response/text-completion-rag", - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSetRag = engine.containers( - "text-completion-rag", [ containerRag ] - ); - - local serviceRag = - engine.internalService(containerSetRag) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - envSecrets, - containerSetRag, - serviceRag, - ]) - - }, - -} + prompts - diff --git a/templates/components/ollama.jsonnet b/templates/components/ollama.jsonnet deleted file mode 100644 index 95f1abf0..00000000 --- a/templates/components/ollama.jsonnet +++ /dev/null @@ -1,53 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["ollama-" + key]:: value, - }, - - "ollama-model":: "gemma2:9b", - - "text-completion" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("ollama-credentials") - .with_env_var("OLLAMA_HOST", "ollama-host"); - - local container = - engine.container("text-completion") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-ollama", - "-p", - url.pulsar, - "-m", - $["ollama-model"], - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "text-completion", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - envSecrets, - containerSet, - service, - ]) - - }, - -} + prompts - diff --git a/templates/components/openai-rag.jsonnet b/templates/components/openai-rag.jsonnet deleted file mode 100644 index bfb7dd98..00000000 --- a/templates/components/openai-rag.jsonnet +++ /dev/null @@ -1,63 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["openai-rag-" + key]:: value, - }, - - "openai-rag-max-output-tokens":: 4096, - "openai-rag-temperature":: 0.0, - "openai-rag-model":: "GPT-3.5-Turbo", - - "text-completion-rag" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("openai-credentials") - .with_env_var("OPENAI_TOKEN", "openai-token"); - - local containerRag = - engine.container("text-completion-rag") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-openai", - "-p", - url.pulsar, - "-x", - std.toString($["openai-rag-max-output-tokens"]), - "-t", - "%0.3f" % $["openai-rag-temperature"], - "-m", - $["openai-rag-model"], - "-i", - "non-persistent://tg/request/text-completion-rag", - "-o", - "non-persistent://tg/response/text-completion-rag", - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSetRag = engine.containers( - "text-completion-rag", [ containerRag ] - ); - - local serviceRag = - engine.internalService(containerSetRag) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - envSecrets, - containerSetRag, - serviceRag, - ]) - - }, - -} + prompts - diff --git a/templates/components/openai.jsonnet b/templates/components/openai.jsonnet deleted file mode 100644 index 13d47236..00000000 --- a/templates/components/openai.jsonnet +++ /dev/null @@ -1,60 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["openai-" + key]:: value, - }, - - "openai-max-output-tokens":: 4096, - "openai-temperature":: 0.0, - "openai-model":: "GPT-3.5-Turbo", - - "text-completion" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("openai-credentials") - .with_env_var("OPENAI_TOKEN", "openai-token") - .with_env_var("OPENAI_BASE_URL", "openai-url"); - - local container = - engine.container("text-completion") - .with_image(images.trustgraph_flow) - .with_command([ - "text-completion-openai", - "-p", - url.pulsar, - "-x", - std.toString($["openai-max-output-tokens"]), - "-t", - "%0.3f" % $["openai-temperature"], - "-m", - $["openai-model"], - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "text-completion", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - envSecrets, - containerSet, - service, - ]) - - }, - -} + prompts - diff --git a/templates/components/pinecone.jsonnet b/templates/components/pinecone.jsonnet deleted file mode 100644 index ede383a5..00000000 --- a/templates/components/pinecone.jsonnet +++ /dev/null @@ -1,153 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local cassandra_hosts = "cassandra"; - -{ - - "pinecone-cloud":: "aws", - "pinecone-region":: "us-east-1", - - "store-graph-embeddings" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("pinecone-api-key") - .with_env_var("PINECONE_API_KEY", "pinecone-api-key"); - - local container = - engine.container("store-graph-embeddings") - .with_image(images.trustgraph_flow) - .with_command([ - "ge-write-pinecone", - "-p", - url.pulsar, - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "store-graph-embeddings", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - envSecrets, - containerSet, - service, - ]) - - }, - - "query-graph-embeddings" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("pinecone-api-key") - .with_env_var("PINECONE_API_KEY", "pinecone-api-key"); - - local container = - engine.container("query-graph-embeddings") - .with_image(images.trustgraph_flow) - .with_command([ - "ge-query-pinecone", - "-p", - url.pulsar, - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "query-graph-embeddings", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - envSecrets, - containerSet, - service, - ]) - - }, - - "store-doc-embeddings" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("pinecone-api-key") - .with_env_var("PINECONE_API_KEY", "pinecone-api-key"); - - local container = - engine.container("store-doc-embeddings") - .with_image(images.trustgraph_flow) - .with_command([ - "de-write-pinecone", - "-p", - url.pulsar, - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "store-doc-embeddings", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - envSecrets, - containerSet, - service, - ]) - - }, - - "query-doc-embeddings" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("pinecone-api-key") - .with_env_var("PINECONE_API_KEY", "pinecone-api-key"); - - local container = - engine.container("query-doc-embeddings") - .with_image(images.trustgraph_flow) - .with_command([ - "de-query-pinecone", - "-p", - url.pulsar, - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "query-doc-embeddings", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - envSecrets, - containerSet, - service, - ]) - - - } - -} - diff --git a/templates/components/prompt-overrides.jsonnet b/templates/components/prompt-overrides.jsonnet deleted file mode 100644 index 852ec09d..00000000 --- a/templates/components/prompt-overrides.jsonnet +++ /dev/null @@ -1,24 +0,0 @@ -local default_prompts = import "prompts/default-prompts.jsonnet"; - -{ - - with:: function(key, value) - if (key == "system-template") then - self + { - prompts +:: { - "system-template": value, - } - } - else - self + { - prompts +:: { - templates +:: { - [key] +:: { - prompt: value - } - } - } - }, - -} + default_prompts - diff --git a/templates/components/prompt-template.jsonnet b/templates/components/prompt-template.jsonnet deleted file mode 100644 index b3187c9b..00000000 --- a/templates/components/prompt-template.jsonnet +++ /dev/null @@ -1,125 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; -local default_prompts = import "prompts/default-prompts.jsonnet"; - -{ - - prompts:: default_prompts, - - local prompt_template_args = [ "--prompt" ] + [ - p.key + "=" + p.value.prompt, - for p in std.objectKeysValuesAll($.prompts.templates) - ], - - local prompt_response_type_args = [ "--prompt-response-type" ] + [ - p.key + "=" + p.value["response-type"], - for p in std.objectKeysValuesAll($.prompts.templates) - if std.objectHas(p.value, "response-type") - ], - - local prompt_schema_args = [ "--prompt-schema" ] + [ - ( - p.key + "=" + - std.manifestJsonMinified(p.value["schema"]) - ) - for p in std.objectKeysValuesAll($.prompts.templates) - if std.objectHas(p.value, "schema") - ], - - local prompt_term_args = [ "--prompt-term" ] + [ - p.key + "=" + t.key + ":" + t.value - for p in std.objectKeysValuesAll($.prompts.templates) - if std.objectHas(p.value, "terms") - for t in std.objectKeysValuesAll(p.value.terms) - ], - - local prompt_args = prompt_template_args + prompt_response_type_args + - prompt_schema_args + prompt_term_args, - - "prompt" +: { - - create:: function(engine) - - local container = - engine.container("prompt") - .with_image(images.trustgraph_flow) - .with_command([ - "prompt-template", - "-p", - url.pulsar, - - "--text-completion-request-queue", - "non-persistent://tg/request/text-completion", - "--text-completion-response-queue", - "non-persistent://tg/response/text-completion", - - "--system-prompt", - $["prompts"]["system-template"], - - ] + prompt_args - ) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "prompt", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "prompt-rag" +: { - - create:: function(engine) - - local container = - engine.container("prompt-rag") - .with_image(images.trustgraph_flow) - .with_command([ - "prompt-template", - "-p", - url.pulsar, - "-i", - "non-persistent://tg/request/prompt-rag", - "-o", - "non-persistent://tg/response/prompt-rag", - "--text-completion-request-queue", - "non-persistent://tg/request/text-completion-rag", - "--text-completion-response-queue", - "non-persistent://tg/response/text-completion-rag", - - "--system-prompt", - $["prompts"]["system-template"], - - ] + prompt_args - ) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "prompt-rag", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - -} + default_prompts - diff --git a/templates/components/pulsar-manager.jsonnet b/templates/components/pulsar-manager.jsonnet deleted file mode 100644 index 9a0b59b2..00000000 --- a/templates/components/pulsar-manager.jsonnet +++ /dev/null @@ -1,41 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; - -{ - - "pulsar" +: { - - create:: function(engine) - -// FIXME: Should persist something? -// local volume = engine.volume(...) - - local container = - engine.container("pulsar") - .with_image(images.pulsar_manager) - .with_environment({ - SPRING_CONFIGURATION_FILE: "/pulsar-manager/pulsar-manager/application.properties", - }) - .with_limits("0.5", "1.4G") - .with_reservations("0.1", "1.4G") - .with_port(9527, 9527, "api") - .with_port(7750, 7750, "api2"); - - local containerSet = engine.containers( - "pulsar", [ container ] - ); - - local service = - engine.service(containerSet) - .with_port(9527, 9527, "api") - .with_port(7750, 7750, "api2); - - engine.resources([ - containerSet, - service, - ]) - - } - -} - diff --git a/templates/components/pulsar.jsonnet b/templates/components/pulsar.jsonnet deleted file mode 100644 index d111f616..00000000 --- a/templates/components/pulsar.jsonnet +++ /dev/null @@ -1,191 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; - -// This is a Pulsar configuration. Non-standalone mode so we deploy -// individual components: bookkeeper, broker and zookeeper. -// -// This also deploys the TrustGraph 'admin' container which initialises -// TrustGraph-specific namespaces etc. - -{ - - "pulsar" +: { - - create:: function(engine) - - // Zookeeper volume - local zkVolume = engine.volume("zookeeper").with_size("1G"); - - // Zookeeper container - local zkContainer = - engine.container("zookeeper") - .with_image(images.pulsar) - .with_command([ - "bash", - "-c", - "bin/apply-config-from-env.py conf/zookeeper.conf && bin/generate-zookeeper-config.sh conf/zookeeper.conf && exec bin/pulsar zookeeper" - ]) - .with_limits("1", "400M") - .with_reservations("0.05", "400M") - .with_user("0:1000") - .with_volume_mount(zkVolume, "/pulsar/data/zookeeper") - .with_environment({ - "metadataStoreUrl": "zk:zookeeper:2181", - "PULSAR_MEM": "-Xms256m -Xmx256m -XX:MaxDirectMemorySize=256m", - }) - .with_port(2181, 2181, "zookeeper") - .with_port(2888, 2888, "zookeeper2") - .with_port(3888, 3888, "zookeeper3"); - - // Pulsar cluster init container - local initContainer = - engine.container("pulsar-init") - .with_image(images.pulsar) - .with_command([ - "bash", - "-c", - "sleep 10 && bin/pulsar initialize-cluster-metadata --cluster cluster-a --zookeeper zookeeper:2181 --configuration-store zookeeper:2181 --web-service-url http://pulsar:8080 --broker-service-url pulsar://pulsar:6650", - ]) - .with_limits("1", "512M") - .with_reservations("0.05", "512M") - .with_environment({ - "PULSAR_MEM": "-Xms256m -Xmx256m -XX:MaxDirectMemorySize=256m", - }); - - - // Bookkeeper volume - local bookieVolume = engine.volume("bookie").with_size("20G"); - - // Bookkeeper container - local bookieContainer = - engine.container("bookie") - .with_image(images.pulsar) - .with_command([ - "bash", - "-c", - "bin/apply-config-from-env.py conf/bookkeeper.conf && exec bin/pulsar bookie" - // false ^ causes this to be a 'failure' exit. - ]) - .with_limits("1", "800M") - .with_reservations("0.1", "800M") - .with_user("0:1000") - .with_volume_mount(bookieVolume, "/pulsar/data/bookkeeper") - .with_environment({ - "clusterName": "cluster-a", - "zkServers": "zookeeper:2181", - "bookieId": "bookie", - "metadataStoreUri": "metadata-store:zk:zookeeper:2181", - "advertisedAddress": "bookie", - "BOOKIE_MEM": "-Xms512m -Xmx512m -XX:MaxDirectMemorySize=256m", - }) - .with_port(3181, 3181, "bookie"); - - // Pulsar broker, stateless (uses ZK and Bookkeeper for state) - local brokerContainer = - engine.container("pulsar") - .with_image(images.pulsar) - .with_command([ - "bash", - "-c", - "bin/apply-config-from-env.py conf/broker.conf && exec bin/pulsar broker" - ]) - .with_limits("1", "800M") - .with_reservations("0.1", "800M") - .with_environment({ - "metadataStoreUrl": "zk:zookeeper:2181", - "zookeeperServers": "zookeeper:2181", - "clusterName": "cluster-a", - "managedLedgerDefaultEnsembleSize": "1", - "managedLedgerDefaultWriteQuorum": "1", - "managedLedgerDefaultAckQuorum": "1", - "advertisedAddress": "pulsar", - "advertisedListeners": "external:pulsar://pulsar:6650,localhost:pulsar://localhost:6650", - "PULSAR_MEM": "-Xms512m -Xmx512m -XX:MaxDirectMemorySize=256m", - }) - .with_port(6650, 6650, "pulsar") - .with_port(8080, 8080, "admin"); - - // Trustgraph Pulsar initialisation - local adminContainer = - engine.container("init-trustgraph") - .with_image(images.trustgraph_flow) - .with_command([ - "tg-init-pulsar", - "-p", - url.pulsar_admin, - ]) - .with_limits("1", "128M") - .with_reservations("0.1", "128M"); - - // Container sets - local zkContainerSet = engine.containers( - "zookeeper", - [ - zkContainer, - ] - ); - - local initContainerSet = engine.containers( - "init-pulsar", - [ - initContainer, - ] - ); - - local bookieContainerSet = engine.containers( - "bookie", - [ - bookieContainer, - ] - ); - - local brokerContainerSet = engine.containers( - "pulsar", - [ - brokerContainer, - ] - ); - - local adminContainerSet = engine.containers( - "init-pulsar", - [ - adminContainer - ] - ); - - // Zookeeper service - local zkService = - engine.service(zkContainerSet) - .with_port(2181, 2181, "zookeeper") - .with_port(2888, 2888, "zookeeper2") - .with_port(3888, 3888, "zookeeper3"); - - // Bookkeeper service - local bookieService = - engine.service(bookieContainerSet) - .with_port(3181, 3181, "bookie"); - - // Pulsar broker service - local brokerService = - engine.service(brokerContainerSet) - .with_port(6650, 6650, "pulsar") - .with_port(8080, 8080, "admin"); - - engine.resources([ - zkVolume, - bookieVolume, - zkContainerSet, - initContainerSet, - bookieContainerSet, - brokerContainerSet, - adminContainerSet, - zkService, - bookieService, - brokerService, - ]) - - } - -} - diff --git a/templates/components/qdrant.jsonnet b/templates/components/qdrant.jsonnet deleted file mode 100644 index 352cb741..00000000 --- a/templates/components/qdrant.jsonnet +++ /dev/null @@ -1,139 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local cassandra_hosts = "cassandra"; -local qdrant = import "stores/qdrant.jsonnet"; - -qdrant + { - - "store-graph-embeddings" +: { - - create:: function(engine) - - local container = - engine.container("store-graph-embeddings") - .with_image(images.trustgraph_flow) - .with_command([ - "ge-write-qdrant", - "-p", - url.pulsar, - "-t", - url.qdrant, - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "store-graph-embeddings", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "query-graph-embeddings" +: { - - create:: function(engine) - - local container = - engine.container("query-graph-embeddings") - .with_image(images.trustgraph_flow) - .with_command([ - "ge-query-qdrant", - "-p", - url.pulsar, - "-t", - url.qdrant, - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "query-graph-embeddings", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "store-doc-embeddings" +: { - - create:: function(engine) - - local container = - engine.container("store-doc-embeddings") - .with_image(images.trustgraph_flow) - .with_command([ - "de-write-qdrant", - "-p", - url.pulsar, - "-t", - url.qdrant, - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "store-doc-embeddings", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "query-doc-embeddings" +: { - - create:: function(engine) - - local container = - engine.container("query-doc-embeddings") - .with_image(images.trustgraph_flow) - .with_command([ - "de-query-qdrant", - "-p", - url.pulsar, - "-t", - url.qdrant, - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "query-doc-embeddings", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8080, 8080, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - - } - -} - diff --git a/templates/components/trustgraph.jsonnet b/templates/components/trustgraph.jsonnet deleted file mode 100644 index 833d932b..00000000 --- a/templates/components/trustgraph.jsonnet +++ /dev/null @@ -1,184 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; - -{ - - "api-gateway-port":: 8088, - "api-gateway-timeout":: 600, - - "chunk-size":: 250, - "chunk-overlap":: 15, - - "api-gateway" +: { - - create:: function(engine) - - local envSecrets = engine.envSecrets("gateway-secret") - .with_env_var("GATEWAY_SECRET", "gateway-secret"); - - local port = $["api-gateway-port"]; - - local container = - engine.container("api-gateway") - .with_image(images.trustgraph_flow) - .with_command([ - "api-gateway", - "-p", - url.pulsar, - "--timeout", - std.toString($["api-gateway-timeout"]), - "--port", - std.toString(port), - ]) - .with_env_var_secrets(envSecrets) - .with_limits("0.5", "256M") - .with_reservations("0.1", "256M") - .with_port(8000, 8000, "metrics") - .with_port(port, port, "api"); - - local containerSet = engine.containers( - "api-gateway", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics") - .with_port(port, port, "api"); - - engine.resources([ - envSecrets, - containerSet, - service, - ]) - - }, - - "chunker" +: { - - create:: function(engine) - - local container = - engine.container("chunker") - .with_image(images.trustgraph_flow) - .with_command([ - "chunker-token", - "-p", - url.pulsar, - "--chunk-size", - std.toString($["chunk-size"]), - "--chunk-overlap", - std.toString($["chunk-overlap"]), - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "chunker", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "pdf-decoder" +: { - - create:: function(engine) - - local container = - engine.container("pdf-decoder") - .with_image(images.trustgraph_flow) - .with_command([ - "pdf-decoder", - "-p", - url.pulsar, - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "pdf-decoder", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "metering" +: { - - create:: function(engine) - - local container = - engine.container("metering") - .with_image(images.trustgraph_flow) - .with_command([ - "metering", - "-p", - url.pulsar, - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "metering", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - - "metering-rag" +: { - - create:: function(engine) - - local container = - engine.container("metering-rag") - .with_image(images.trustgraph_flow) - .with_command([ - "metering", - "-p", - url.pulsar, - "-i", - "non-persistent://tg/response/text-completion-rag", - ]) - .with_limits("0.5", "128M") - .with_reservations("0.1", "128M"); - - local containerSet = engine.containers( - "metering-rag", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - containerSet, - service, - ]) - - }, - -} - diff --git a/templates/components/vertexai-rag.jsonnet b/templates/components/vertexai-rag.jsonnet deleted file mode 100644 index 0b5cf9a3..00000000 --- a/templates/components/vertexai-rag.jsonnet +++ /dev/null @@ -1,74 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["vertexai-rag-" + key]:: value, - }, - - "vertexai-rag-model":: "gemini-1.0-pro-001", - "vertexai-rag-private-key":: "/vertexai/private.json", - "vertexai-rag-region":: "us-central1", - "vertexai-rag-max-output-tokens":: 4096, - "vertexai-rag-temperature":: 0.0, - - "text-completion-rag" +: { - - create:: function(engine) - - local cfgVol = engine.secretVolume( - "vertexai-creds", - "./vertexai", - { - "private.json": importstr "vertexai/private.json", - } - ); - - local container = - engine.container("text-completion-rag") - .with_image(images.trustgraph_vertexai) - .with_command([ - "text-completion-vertexai", - "-p", - url.pulsar, - "-k", - $["vertexai-rag-private-key"], - "-r", - $["vertexai-rag-region"], - "-x", - std.toString($["vertexai-rag-max-output-tokens"]), - "-t", - "%0.3f" % $["vertexai-rag-temperature"], - "-m", - $["vertexai-rag-model"], - "-i", - "non-persistent://tg/request/text-completion-rag", - "-o", - "non-persistent://tg/response/text-completion-rag", - ]) - .with_limits("0.5", "256M") - .with_reservations("0.1", "256M") - .with_volume_mount(cfgVol, "/vertexai"); - - local containerSet = engine.containers( - "text-completion-rag", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - cfgVol, - containerSet, - service, - ]) - - } - -} + prompts - diff --git a/templates/components/vertexai.jsonnet b/templates/components/vertexai.jsonnet deleted file mode 100644 index 0e3550c5..00000000 --- a/templates/components/vertexai.jsonnet +++ /dev/null @@ -1,70 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local url = import "values/url.jsonnet"; -local prompts = import "prompts/mixtral.jsonnet"; - -{ - - with:: function(key, value) - self + { - ["vertexai-" + key]:: value, - }, - - "vertexai-model":: "gemini-1.0-pro-001", - "vertexai-private-key":: "/vertexai/private.json", - "vertexai-region":: "us-central1", - "vertexai-max-output-tokens":: 4096, - "vertexai-temperature":: 0.0, - - "text-completion" +: { - - create:: function(engine) - - local cfgVol = engine.secretVolume( - "vertexai-creds", - "./vertexai", - { - "private.json": importstr "vertexai/private.json", - } - ); - - local container = - engine.container("text-completion") - .with_image(images.trustgraph_vertexai) - .with_command([ - "text-completion-vertexai", - "-p", - url.pulsar, - "-k", - $["vertexai-private-key"], - "-r", - $["vertexai-region"], - "-x", - std.toString($["vertexai-max-output-tokens"]), - "-t", - "%0.3f" % $["vertexai-temperature"], - "-m", - $["vertexai-model"], - ]) - .with_limits("0.5", "256M") - .with_reservations("0.1", "256M") - .with_volume_mount(cfgVol, "/vertexai"); - - local containerSet = engine.containers( - "text-completion", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8000, 8000, "metrics"); - - engine.resources([ - cfgVol, - containerSet, - service, - ]) - - }, - -} + prompts - diff --git a/templates/components/workbench-ui.jsonnet b/templates/components/workbench-ui.jsonnet deleted file mode 100644 index f2048e47..00000000 --- a/templates/components/workbench-ui.jsonnet +++ /dev/null @@ -1,32 +0,0 @@ -local images = import "values/images.jsonnet"; - -{ - - "workbench-ui" +: { - - create:: function(engine) - - local container = - engine.container("workbench-ui") - .with_image(images["workbench-ui"]) - .with_limits("0.1", "256M") - .with_reservations("0.1", "256M") - .with_port(8888, 8888, "ui"); - - local containerSet = engine.containers( - "workbench-ui", [ container ] - ); - - local service = - engine.internalService(containerSet) - .with_port(8888, 8888, "ui"); - - engine.resources([ - containerSet, - service, - ]) - - }, - -} - diff --git a/templates/config-to-aks-k8s.jsonnet b/templates/config-to-aks-k8s.jsonnet deleted file mode 100644 index c603a0d8..00000000 --- a/templates/config-to-aks-k8s.jsonnet +++ /dev/null @@ -1,16 +0,0 @@ - -local engine = import "engine/aks-k8s.jsonnet"; -local decode = import "util/decode-config.jsonnet"; -local components = import "components.jsonnet"; - -// Import config -local config = import "config.json"; - -// Produce patterns from config -local patterns = decode(config); - -// Extract resources usnig the engine -local resourceList = engine.package(patterns); - -resourceList - diff --git a/templates/config-to-docker-compose.jsonnet b/templates/config-to-docker-compose.jsonnet deleted file mode 100644 index 442d2cb7..00000000 --- a/templates/config-to-docker-compose.jsonnet +++ /dev/null @@ -1,20 +0,0 @@ - -local engine = import "engine/docker-compose.jsonnet"; -local decode = import "util/decode-config.jsonnet"; -local components = import "components.jsonnet"; - -// Import config -local config = import "config.json"; - -// Produce patterns from config -local patterns = decode(config); - -// Extract resources usnig the engine -local resources = std.foldl( - function(state, p) state + p.create(engine), - std.objectValues(patterns), - {} -); - -resources - diff --git a/templates/config-to-gcp-k8s.jsonnet b/templates/config-to-gcp-k8s.jsonnet deleted file mode 100644 index 3d089a24..00000000 --- a/templates/config-to-gcp-k8s.jsonnet +++ /dev/null @@ -1,16 +0,0 @@ - -local engine = import "engine/gcp-k8s.jsonnet"; -local decode = import "util/decode-config.jsonnet"; -local components = import "components.jsonnet"; - -// Import config -local config = import "config.json"; - -// Produce patterns from config -local patterns = decode(config); - -// Extract resources usnig the engine -local resourceList = engine.package(patterns); - -resourceList - diff --git a/templates/config-to-minikube-k8s.jsonnet b/templates/config-to-minikube-k8s.jsonnet deleted file mode 100644 index 073358cb..00000000 --- a/templates/config-to-minikube-k8s.jsonnet +++ /dev/null @@ -1,26 +0,0 @@ - -local engine = import "engine/minikube-k8s.jsonnet"; -local decode = import "util/decode-config.jsonnet"; -local components = import "components.jsonnet"; - -// Import config -local config = import "config.json"; - -// Produce patterns from config -local patterns = decode(config); - -local ns = { - apiVersion: "v1", - kind: "Namespace", - metadata: { - name: "trustgraph", - }, - "spec": { - }, -}; - -// Extract resources using the engine -local resourceList = engine.package(patterns); - -resourceList - diff --git a/templates/engine/aks-k8s.jsonnet b/templates/engine/aks-k8s.jsonnet deleted file mode 100644 index 69bca03f..00000000 --- a/templates/engine/aks-k8s.jsonnet +++ /dev/null @@ -1,45 +0,0 @@ - -local k8s = import "k8s.jsonnet"; - -local ns = { - apiVersion: "v1", - kind: "Namespace", - metadata: { - name: "trustgraph", - }, - "spec": { - }, -}; - -local sc = { - apiVersion: "storage.k8s.io/v1", - kind: "StorageClass", - metadata: { - name: "tg", - }, - provisioner: "disk.csi.azure.com", - parameters: { - // Standard disks (spinning magnetic), Locally Redundant Storage - // Cheapest, basically - skuName: "Standard_LRS", - }, - reclaimPolicy: "Delete", - volumeBindingMode: "WaitForFirstConsumer", -}; - -k8s + { - - // Extract resources usnig the engine - package:: function(patterns) - local resources = [sc, ns] + std.flattenArrays([ - p.create(self) for p in std.objectValues(patterns) - ]); - local resourceList = { - apiVersion: "v1", - kind: "List", - items: [ns, sc] + resources, - }; - resourceList - -} - diff --git a/templates/engine/docker-compose.jsonnet b/templates/engine/docker-compose.jsonnet deleted file mode 100644 index 0be3c3e3..00000000 --- a/templates/engine/docker-compose.jsonnet +++ /dev/null @@ -1,237 +0,0 @@ -{ - - // Extract resources usnig the engine - package:: function(patterns) - std.foldl( - function(state, p) state + p.create(self), - std.objectValues(patterns), - {} - ), - - container:: function(name) - { - - local container = self, - - name: name, - limits: {}, - reservations: {}, - ports: [], - volumes: [], - environment: {}, - - with_image:: function(x) self + { image: x }, - - with_user:: function(x) self + { user: x }, - - with_command:: function(x) self + { command: x }, - - with_environment:: function(x) self + { - environment: super.environment + x, - }, - - with_limits:: function(c, m) self + { limits: { cpus: c, memory: m } }, - - with_reservations:: - function(c, m) self + { reservations: { cpus: c, memory: m } }, - - with_volume_mount:: - function(vol, mnt) - self + { - volumes: super.volumes + [{ - volume: vol, mount: mnt - }] - }, - - with_port:: - function(src, dest, name) self + { - ports: super.ports + [ - { src: src, dest: dest, name : name } - ] - }, - - with_env_var_secrets:: - function(vars) - std.foldl( - function(obj, x) obj.with_environment( - { [x]: "${" + x + "}" } - ), - vars.variables, - self - ), - - add:: function() { - services +: { - [container.name]: { - image: container.image, - deploy: { - resources: { - limits: container.limits, - reservations: container.reservations, - } - }, - restart: "on-failure:100", - } + - - (if std.objectHas(container, "command") then - { command: container.command } - else {}) + - - (if std.objectHas(container, "user") then - { user: container.user } - else {}) + - - (if ! std.isEmpty(container.environment) then - { environment: container.environment } - else {}) + - - (if std.length(container.ports) > 0 then - { - ports: [ - "%d:%d" % [port.src, port.dest] - for port in container.ports - ] - } - else {}) + - - (if std.length(container.volumes) > 0 then - { - volumes: [ - "%s:%s" % [vol.volume.volid, vol.mount] - for vol in container.volumes - ] - } - else {}) - - } - } - - }, - - internalService:: function(containers) - { - - local service = self, - - name: containers.name, - - with_port:: function(src, dest, name) - self + { port: [src, dest] }, - - add:: function() { - } - - }, - - service:: function(containers) - { - - local service = self, - - name: containers.name, - - with_port:: function(src, dest, name) - self + { port: [src, dest] }, - - add:: function() { - } - - }, - - volume:: function(name) - { - - local volume = self, - - name: name, - - volid:: name, - - with_size:: function(size) self + { size: size }, - - add:: function() { - volumes +: { - [volume.name]: {} - } - } - - }, - - configVolume:: function(name, dir, parts) - { - - local volume = self, - - name: dir, - - volid:: "./" + dir, - - with_size:: function(size) self + { size: size }, - - add:: function() { - } - - }, - - secretVolume:: function(name, dir, parts) - { - - local volume = self, - - name: dir, - - volid:: dir, - - with_size:: function(size) self + { size: size }, - - add:: function() { - } - - }, - - envSecrets:: function(name) - { - - local volume = self, - - name: name, - - volid:: name, - - variables:: [], - - with_env_var:: - function(name, key) self + { - variables: super.variables + [name], - }, - - add:: function() { - } - - }, - - containers:: function(name, containers) - { - - local cont = self, - - name: name, - containers: containers, - - add:: function() std.foldl( - function(state, c) state + c.add(), - cont.containers, - {} - ), - - }, - - resources:: function(res) - std.foldl( - function(state, c) state + c.add(), - res, - {} - ), - -} - diff --git a/templates/engine/gcp-k8s.jsonnet b/templates/engine/gcp-k8s.jsonnet deleted file mode 100644 index 0605a570..00000000 --- a/templates/engine/gcp-k8s.jsonnet +++ /dev/null @@ -1,44 +0,0 @@ - -local k8s = import "k8s.jsonnet"; - -local ns = { - apiVersion: "v1", - kind: "Namespace", - metadata: { - name: "trustgraph", - }, - "spec": { - }, -}; - -local sc = { - apiVersion: "storage.k8s.io/v1", - kind: "StorageClass", - metadata: { - name: "tg", - }, - provisioner: "pd.csi.storage.gke.io", - parameters: { - type: "pd-balanced", - "csi.storage.k8s.io/fstype": "ext4", - }, - reclaimPolicy: "Delete", - volumeBindingMode: "WaitForFirstConsumer", -}; - -k8s + { - - // Extract resources usnig the engine - package:: function(patterns) - local resources = [sc, ns] + std.flattenArrays([ - p.create(self) for p in std.objectValues(patterns) - ]); - local resourceList = { - apiVersion: "v1", - kind: "List", - items: [ns, sc] + resources, - }; - resourceList - -} - diff --git a/templates/engine/k8s.jsonnet b/templates/engine/k8s.jsonnet deleted file mode 100644 index dfd8d11f..00000000 --- a/templates/engine/k8s.jsonnet +++ /dev/null @@ -1,358 +0,0 @@ -{ - - container:: function(name) - { - - local container = self, - - name: name, - limits: {}, - reservations: {}, - ports: [], - volumes: [], - environment: [], - - with_image:: function(x) self + { image: x }, - - with_user:: function(x) self + { user: x }, - - with_command:: function(x) self + { command: x }, - - with_environment:: function(x) self + { - environment: super.environment + [ - { - name: v.key, value: v.value - } - for v in std.objectKeysValues(x) - ], - }, - - with_limits:: function(c, m) self + { limits: { cpu: c, memory: m } }, - - with_reservations:: - function(c, m) self + { reservations: { cpu: c, memory: m } }, - - with_volume_mount:: - function(vol, mnt) - self + { - volumes: super.volumes + [{ - volume: vol, mount: mnt - }] - }, - - with_port:: - function(src, dest, name) self + { - ports: super.ports + [ - { src: src, dest: dest, name : name } - ] - }, - - with_env_var_secrets:: - function(vars) - std.foldl( - function(obj, x) obj + { - environment: super.environment + [{ - name: x, - valueFrom: { - secretKeyRef: { - name: vars.name, - key: vars.keyMap[x], - } - } - }] - }, - vars.variables, - self - ), - - add:: function() [ - - { - apiVersion: "apps/v1", - kind: "Deployment", - metadata: { - name: container.name, - namespace: "trustgraph", - labels: { - app: container.name - } - }, - spec: { - replicas: 1, - selector: { - matchLabels: { - app: container.name, - } - }, - template: { - metadata: { - labels: { - app: container.name, - } - }, - spec: { - containers: [ - { - name: container.name, - image: container.image, - - // FIXME: Make everything run as - // root. Needed to get filesystems - // to be accessible. There's a - // better way of doing this? - securityContext: { - runAsUser: 0, - runAsGroup: 0, - }, - - resources: { - requests: container.reservations, - limits: container.limits - }, - } + ( - if std.length(container.ports) > 0 then - { - ports: [ - { - hostPort: port.src, - containerPort: port.dest, - } - for port in container.ports - ] - } else - {}) + - - (if std.objectHas(container, "command") then - { command: container.command } - else {}) + - - (if ! std.isEmpty(container.environment) then - { - env: container.environment, - } - else {}) + - - (if std.length(container.volumes) > 0 then - { - volumeMounts: [ - { - mountPath: vol.mount, - name: vol.volume.name, - } - for vol in container.volumes - ] - } - - else - {} - ) - ], - volumes: [ - vol.volume.volRef() - for vol in container.volumes - - ] - } - }, - } + {} - - } - - ] - - }, - - // Just an alias - internalService:: self.service, - - service:: function(containers) - { - - local service = self, - - name: containers.name, - - ports: [], - - with_port:: - function(src, dest, name) - self + { - ports: super.ports + [ - { src: src, dest: dest, name: name } - ] - }, - - add:: function() [ - - { - - apiVersion: "v1", - kind: "Service", - metadata: { - name: service.name, - namespace: "trustgraph", - }, - spec: { - selector: { - app: service.name, - }, - ports: [ - { - port: port.src, - targetPort: port.dest, - name: port.name, - } - for port in service.ports - ], - } - } - ], - - }, - - volume:: function(name) - { - - local volume = self, - - name: name, - - with_size:: function(size) self + { size: size }, - - add:: function() [ - { - apiVersion: "v1", - kind: "PersistentVolumeClaim", - metadata: { - name: volume.name, - namespace: "trustgraph", - }, - spec: { - storageClassName: "tg", - accessModes: [ "ReadWriteOnce" ], - resources: { - requests: { - storage: volume.size, - } - }, - } - } - ], - - volRef:: function() { - name: volume.name, - persistentVolumeClaim: { claimName: volume.name }, - } - - }, - - configVolume:: function(name, dir, parts) - { - - local volume = self, - - name: name, - - with_size:: function(size) self + { size: size }, - - add:: function() [ - { - apiVersion: "v1", - kind: "ConfigMap", - metadata: { - name: volume.name, - namespace: "trustgraph", - }, - data: parts - }, - ], - - - volRef:: function() { - name: volume.name, - configMap: { name: volume.name }, - } - - }, - - secretVolume:: function(name, dir, parts) - { - - local volume = self, - - name: name, - - with_size:: function(size) self + { size: size }, - - add:: function() [ - { - apiVersion: "v1", - kind: "Secret", - metadata: { - name: volume.name, - namespace: "trustgraph", - }, - data: { - [item.key]: std.base64(item.value) - for item in std.objectKeysValues(parts) - } - }, - ], - - volRef:: function() { - name: volume.name, - secret: { secretName: volume.name }, - } - - }, - - envSecrets:: function(name) - { - - local volume = self, - - name: name, - - variables: [], - keyMap: {}, - - with_size:: function(size) self + { size: size }, - - add:: function() [ - ], - - volRef:: function() { - name: volume.name, - secret: { secretName: volume.name }, - }, - - with_env_var:: - function(name, key) self + { - variables: super.variables + [name], - keyMap: super.keyMap + { [name]: key }, - }, - - }, - - containers:: function(name, containers) - { - - local cont = self, - - name: name, - containers: containers, - - add:: function() std.flattenArrays( - [ c.add() for c in cont.containers ] - ), - - }, - - resources:: function(res) - - std.flattenArrays( - [ c.add() for c in res ] - ), - -} - diff --git a/templates/engine/minikube-k8s.jsonnet b/templates/engine/minikube-k8s.jsonnet deleted file mode 100644 index 858b17ad..00000000 --- a/templates/engine/minikube-k8s.jsonnet +++ /dev/null @@ -1,115 +0,0 @@ - -local k8s = import "k8s.jsonnet"; - -local ns = { - apiVersion: "v1", - kind: "Namespace", - metadata: { - name: "trustgraph", - }, - "spec": { - }, -}; - -k8s + { - - // Extract resources usnig the engine - package:: function(patterns) - local resources = [ns] + std.flattenArrays([ - p.create(self) for p in std.objectValues(patterns) - ]); - local resourceList = { - apiVersion: "v1", - kind: "List", - items: resources, - }; - resourceList, - - volume:: function(name) - { - local volume = self, - name: name, - with_size:: function(size) self + { size: size }, - add:: function() [ - { - apiVersion: "v1", - kind: "PersistentVolume", - metadata: { - name: volume.name, - }, - spec: { - accessModes: [ "ReadWriteOnce" ], - capacity: { - storage: volume.size, - }, - persistentVolumeReclaimPolicy: "Delete", - hostPath: { - path: "/data/pv-" + volume.name, - }, - } - }, - { - apiVersion: "v1", - kind: "PersistentVolumeClaim", - metadata: { - name: volume.name, - namespace: "trustgraph", - }, - spec: { - accessModes: [ "ReadWriteOnce" ], - resources: { - requests: { - storage: volume.size, - } - }, - } - } - ], - - volRef:: function() { - name: volume.name, - persistentVolumeClaim: { claimName: volume.name }, - } - - }, - - service:: function(containers) - { - local service = self, - name: containers.name, - ports: [], - with_port:: - function(src, dest, name) - self + { - ports: super.ports + [ - { src: src, dest: dest, name: name } - ] - }, - add:: function() [ - { - apiVersion: "v1", - kind: "Service", - metadata: { - name: service.name, - namespace: "trustgraph", - }, - spec: { - selector: { - app: service.name, - }, - type: "LoadBalancer", - ports: [ - { - port: port.src, - targetPort: port.dest, - name: port.name, - } - for port in service.ports - ], - } - } - ], - }, - -} - diff --git a/templates/generate b/templates/generate deleted file mode 100755 index 2640a125..00000000 --- a/templates/generate +++ /dev/null @@ -1,235 +0,0 @@ -#!/usr/bin/env python3 - -import _jsonnet as j -import json -import yaml -import logging -import os -import sys -import zipfile -import pathlib -from io import BytesIO - -logger = logging.getLogger("generate") -logging.basicConfig(level=logging.INFO, format='%(message)s') - -private_json = "Put your GCP private.json here" - -class Generator: - - def __init__( - self, config, templates="./templates/", resources="./resources", - version="0.0.0", - ): - - self.templates = pathlib.Path(templates) - self.resources = pathlib.Path(resources) - self.config = config - self.version = f"\"{version}\"".encode("utf-8") - - def process(self, config): - - res = j.evaluate_snippet("config", config, import_callback=self.load) - return json.loads(res) - - def load(self, dir, filename): - - logger.debug("Request jsonnet: %s %s", dir, filename) - - if filename == "config.json" and dir == "": - path = os.path.join(".", dir, filename) - return str(path), self.config - - if filename == "version.jsonnet" and dir == "templates/values/": - path = os.path.join(".", dir, filename) - return str(path), self.version - - if dir: - candidates = [ - self.templates.joinpath(dir, filename), - self.templates.joinpath(filename), - self.resources.joinpath(dir, filename), - self.resources.joinpath(filename), - pathlib.Path(dir).joinpath(filename), - ] - else: - candidates = [ - self.templates.joinpath(filename), - pathlib.Path(dir).joinpath(filename), - pathlib.Path(filename), - ] - - try: - - if filename == "vertexai/private.json": - - return str(candidates[0]), private_json.encode("utf-8") - - for c in candidates: - logger.debug("Try: %s", c) - - if os.path.isfile(c): - with open(c, "rb") as f: - logger.debug("Loading: %s", c) - return str(c), f.read() - - raise RuntimeError( - f"Could not load file={filename} dir={dir}" - ) - - except: - - path = os.path.join(self.templates, filename) - logger.debug("Try: %s", path) - with open(path, "rb") as f: - logger.debug("Loaded: %s", path) - return str(path), f.read() - -class Packager: - - def __init__(self): - self.templates = pathlib.Path("./templates") - self.resources = pathlib.Path("./") - - def process( - self, config, version="0.0.0", platform="docker-compose", - ): - - config = config.encode("utf-8") - - gen = Generator( - config, templates=self.templates, resources=self.resources, - version=version - ) - - path = self.templates.joinpath( - f"config-to-{platform}.jsonnet" - ) - wrapper = path.read_text() - - processed = gen.process(wrapper) - - return processed - - def generate(self, config, version, platform): - - logger.info(f"Generating for platform={platform} version={version}") - - try: - - if platform in set(["docker-compose", "podman-compose"]): - return self.generate_docker_compose( - "docker-compose", version, config - ) - elif platform in set(["minikube-k8s", "gcp-k8s", "aks-k8s"]): - return self.generate_k8s( - platform, version, config - ) - else: - raise RuntimeError("Bad configuration") - - except Exception as e: - logging.error(f"Exception: {e}") - raise e - - def generate_docker_compose(self, platform, version, config): - - processed = self.process( - config, platform=platform, version=version - ) - - y = yaml.dump(processed) - - mem = BytesIO() - - with zipfile.ZipFile(mem, mode='w') as out: - - def output(name, content): - logger.info(f"Adding {name}...") - out.writestr(name, content) - - fname = "docker-compose.yaml" - - output(fname, y) - - # Grafana config - path = self.resources.joinpath( - "grafana/dashboards/dashboard.json" - ) - res = path.read_text() - output("grafana/dashboards/dashboard.json", res) - - path = self.resources.joinpath( - "grafana/provisioning/dashboard.yml" - ) - res = path.read_text() - output("grafana/provisioning/dashboard.yml", res) - - path = self.resources.joinpath( - "grafana/provisioning/datasource.yml" - ) - res = path.read_text() - output("grafana/provisioning/datasource.yml", res) - - # Prometheus config - path = self.resources.joinpath( - "prometheus/prometheus.yml" - ) - res = path.read_text() - output("prometheus/prometheus.yml", res) - - logger.info("Generation complete.") - - return mem.getvalue() - - def generate_k8s(self, platform, version, config): - - processed = self.process( - config, platform=platform, version=version - ) - - y = yaml.dump(processed) - - mem = BytesIO() - - with zipfile.ZipFile(mem, mode='w') as out: - - def output(name, content): - logger.info(f"Adding {name}...") - out.writestr(name, content) - - fname = "resources.yaml" - - output(fname, y) - - logger.info("Generation complete.") - - return mem.getvalue() - -def main(): - - if len(sys.argv) != 4: - print() - print("Usage:") - print(" generate < input.json") - print() - sys.exit(1) - - outfile = sys.argv[1] - version = sys.argv[2] - platform = sys.argv[3] - - cfg = sys.stdin.read() - - logger.info(f"Outputting to {outfile}...") - - p = Packager() - resp = p.generate(cfg, version, platform) - - with open(outfile, "wb") as f: - f.write(resp) - - return - -main() - diff --git a/templates/generate-all b/templates/generate-all deleted file mode 100755 index fb1fe917..00000000 --- a/templates/generate-all +++ /dev/null @@ -1,195 +0,0 @@ -#!/usr/bin/env python3 - -import _jsonnet as j -import json -import yaml -import logging -import os -import sys -import zipfile - -logger = logging.getLogger("generate") -logging.basicConfig(level=logging.INFO, format='%(message)s') - -private_json = "Put your GCP private.json here" - -class Generator: - - def __init__(self, config, base="./templates/", version="0.0.0"): - - self.jsonnet_base = base - self.config = config - self.version = f"\"{version}\"".encode("utf-8") - - def process(self, config): - - res = j.evaluate_snippet("config", config, import_callback=self.load) - return json.loads(res) - - def load(self, dir, filename): - - logger.debug("Request jsonnet: %s %s", dir, filename) - - if filename == "config.json" and dir == "": - path = os.path.join(".", dir, filename) - return str(path), self.config - - if filename == "version.jsonnet" and dir == "./templates/values/": - path = os.path.join(".", dir, filename) - return str(path), self.version - - if dir: - candidates = [ - os.path.join(".", dir, filename), - os.path.join(".", filename) - ] - else: - candidates = [ - os.path.join(".", filename) - ] - - try: - - if filename == "vertexai/private.json": - - return candidates[0], private_json.encode("utf-8") - - for c in candidates: - logger.debug("Try: %s", c) - - if os.path.isfile(c): - with open(c, "rb") as f: - logger.debug("Loading: %s", c) - return str(c), f.read() - - raise RuntimeError( - f"Could not load file={filename} dir={dir}" - ) - - except: - - path = os.path.join(self.jsonnet_base, filename) - logger.debug("Try: %s", path) - with open(path, "rb") as f: - logger.debug("Loaded: %s", path) - return str(path), f.read() - -def config_object(items): - - return [ - { "name": v, "parameters": {} } - for v in items - ] - -def full_config_object( - vector_store="qdrant", embeddings="embeddings-hf", - graph_store="cassandra", llm="vertexai", -): - - return config_object([ - "triple-store-" + graph_store, - "pulsar", - "vector-store-" + vector_store, - embeddings, - "graph-rag", - "grafana", - "trustgraph-base", - llm, - llm + "-rag", - "workbench-ui", - "prompt-template", - "agent-manager-react", - ]) - -def generate_config( - vector_store="qdrant", embeddings="embeddings-hf", - graph_store="cassandra", llm="vertexai", - platform="docker-compose", - version="0.0.0" -): - - config = full_config_object( - vector_store=vector_store, - embeddings=embeddings, - graph_store=graph_store, - llm=llm, - ) - - with open(f"./templates/config-to-{platform}.jsonnet", "r") as f: - wrapper = f.read() - - gen = Generator(json.dumps(config).encode("utf-8"), version=version) - - processed = gen.process(wrapper) - - y = yaml.dump(processed) - - return y - -def generate_all(output, version): - - for platform in [ - "docker-compose", - # "minikube-k8s", "gcp-k8s" - ]: - for model in [ - # "azure", "azure-openai", "bedrock", "claude", "cohere", - # "googleaistudio", "llamafile", "mistral", - "ollama", - # "openai", "vertexai", - ]: - for graph in [ - "cassandra", - # "neo4j", "falkordb" - ]: - - y = generate_config( - llm=model, graph_store=graph, platform=platform, - version=version - ) - - fname = f"{platform}/tg-{model}-{graph}.yaml" - - output(fname, y) - - -if len(sys.argv) < 3: - raise RuntimeError("Usage: generate-all ") - -outfile = sys.argv[1] -version = sys.argv[2] - -logger.info(f"Outputting to {outfile}...") - -with zipfile.ZipFile(outfile, mode='w') as out: - - def output(name, content): - logger.info(f"Adding {name}...") - out.writestr(name, content) - - generate_all(output=output, version=version) - - # Placeholder for the private.json file. Won't put actual credentials - # here. - output("docker-compose/vertexai/private.json", private_json) - - # Grafana config - with open("grafana/dashboards/dashboard.json") as f: - output("docker-compose/grafana/dashboards/dashboard.json", f.read()) - - with open("grafana/provisioning/dashboard.yml") as f: - output("docker-compose/grafana/provisioning/dashboard.yml", f.read()) - - with open("grafana/provisioning/datasource.yml") as f: - output("docker-compose/grafana/provisioning/datasource.yml", f.read()) - - # Prometheus config - with open("prometheus/prometheus.yml") as f: - output("docker-compose/prometheus/prometheus.yml", f.read()) - - # A README - with open("templates/zip-readme.md") as f: - output("README.md", f.read()) - -logger.info("Output file written.") - diff --git a/templates/module-list.jsonnet b/templates/module-list.jsonnet deleted file mode 100644 index b949021e..00000000 --- a/templates/module-list.jsonnet +++ /dev/null @@ -1,9 +0,0 @@ - -local all = import "all-patterns.jsonnet"; - -std.foldl( - function(m, p) m + { [p.pattern.name]: p.module}, - all, - {} -) - diff --git a/templates/opts-to-docker-compose.jsonnet b/templates/opts-to-docker-compose.jsonnet deleted file mode 100644 index c916475d..00000000 --- a/templates/opts-to-docker-compose.jsonnet +++ /dev/null @@ -1,21 +0,0 @@ - -local engine = import "engine/docker-compose.jsonnet"; -local components = import "components.jsonnet"; - -// Options -local options = std.split(std.extVar("options"), ","); - -// Produce patterns from config -local patterns = std.foldl( - function(state, p) state + components[p], - options, - {} -); - -// Extract resources usnig the engine -local resources = engine.package(patterns); - -resources - - - diff --git a/templates/opts-to-gcp-k8s.jsonnet b/templates/opts-to-gcp-k8s.jsonnet deleted file mode 100644 index a338cd9e..00000000 --- a/templates/opts-to-gcp-k8s.jsonnet +++ /dev/null @@ -1,19 +0,0 @@ - -local engine = import "engine/docker-compose.jsonnet"; -local components = import "components.jsonnet"; - -// Options -local options = std.split(std.extVar("options"), ","); - -// Produce patterns from config -local patterns = std.foldl( - function(state, p) state + components[p], - options, - {} -); - -// Extract resources usnig the engine -local resources = engine.package(patterns); - -std.manifestYamlDoc(resources) - diff --git a/templates/opts-to-minikube-k8s.jsonnet b/templates/opts-to-minikube-k8s.jsonnet deleted file mode 100644 index 15895909..00000000 --- a/templates/opts-to-minikube-k8s.jsonnet +++ /dev/null @@ -1,19 +0,0 @@ - -local engine = import "engine/minikube-k8s.jsonnet"; -local components = import "components.jsonnet"; - -// Options -local options = std.split(std.extVar("options"), ","); - -// Produce patterns from config -local patterns = std.foldl( - function(state, p) state + components[p], - options, - {} -); - -// Extract resources usnig the engine -local resources = engine.package(patterns); - -resources - diff --git a/templates/patterns/document-rag.jsonnet b/templates/patterns/document-rag.jsonnet deleted file mode 100644 index 631c14a5..00000000 --- a/templates/patterns/document-rag.jsonnet +++ /dev/null @@ -1,14 +0,0 @@ -{ - pattern: { - name: "document-rag", - icon: "🤝😂", - title: "Add DocumentRAG processing flow", - description: "This pattern adds DocumentRAG components for extracting and querying documents based on document embeddings. You should make sure a vector store is included in your plan.", - requires: ["pulsar", "trustgraph", "llm"], - features: ["document-rag"], - args: [ - ], - category: [ "processing" ], - }, - module: "components/document-rag.jsonnet", -} diff --git a/templates/patterns/embeddings-hf.jsonnet b/templates/patterns/embeddings-hf.jsonnet deleted file mode 100644 index 0235dbd1..00000000 --- a/templates/patterns/embeddings-hf.jsonnet +++ /dev/null @@ -1,26 +0,0 @@ -{ - pattern: { - name: "embeddings-hf", - icon: "🤖💬", - title: "Add embeddings model which uses HuggingFace models", - description: "This pattern integrates an embeddings model based on HuggingFace sentence-transformer library.", - requires: ["pulsar", "trustgraph"], - features: ["llm"], - args: [ - { - name: "embeddings-model", - label: "Embeddings model", - type: "select", - description: "Embeddings model for sentence analysis", - options: [ - { id: "all-MiniLM-L6-v2", description: "all-MiniLM-L6-v2" }, - { id: "mixedbread-ai/mxbai-embed-large-v1", description: "mxbai-embed-large-v1" }, - ], - default: "all-MiniLM-L6-v2", - required: true, - }, - ], - category: [ "embeddings" ], - }, - module: "components/embeddings-hf.jsonnet", -} diff --git a/templates/patterns/embeddings-ollama.jsonnet b/templates/patterns/embeddings-ollama.jsonnet deleted file mode 100644 index c3ed70a2..00000000 --- a/templates/patterns/embeddings-ollama.jsonnet +++ /dev/null @@ -1,34 +0,0 @@ -{ - pattern: { - name: "embeddings-ollama", - icon: "🤖💬", - title: "Add embeddings model hosted on Ollama", - description: "This pattern integrates an embeddings model based on HuggingFace sentence-transformer library.", - requires: ["pulsar", "trustgraph"], - features: ["llm"], - args: [ - { - name: "embeddings-model", - label: "Embeddings model", - type: "select", - description: "Embeddings model for sentence analysis", - options: [ - { id: "mxbai-embed-large", description: "mxbai-embed-large" }, - ], - default: "mxbai-embed-large", - required: true, - }, - { - name: "ollama-url", - label: "URL", - type: "text", - width: 120, - description: "URL of the Ollama service", - default: "http://ollama:11434", - required: true, - }, - ], - category: [ "embeddings" ], - }, - module: "components/embeddings-hf.jsonnet", -} diff --git a/templates/patterns/grafana.jsonnet b/templates/patterns/grafana.jsonnet deleted file mode 100644 index 49ae692c..00000000 --- a/templates/patterns/grafana.jsonnet +++ /dev/null @@ -1,14 +0,0 @@ -{ - pattern: { - name: "grafana", - icon: "📈🧯", - title: "Add Prometheus and Grafana for monitoring and dashboards", - description: "System monitoring and dashboarding using Grafana and Prometheus", - requires: ["pulsar", "trustgraph"], - features: ["prometheus", "grafana"], - args: [ - ], - category: ["monitoring"], - }, - module: "components/grafana.jsonnet", -} diff --git a/templates/patterns/graph-rag.jsonnet b/templates/patterns/graph-rag.jsonnet deleted file mode 100644 index 5f598006..00000000 --- a/templates/patterns/graph-rag.jsonnet +++ /dev/null @@ -1,38 +0,0 @@ -{ - pattern: { - name: "graph-rag", - icon: "🤝😂", - title: "Add GraphRAG processing flow", - description: "This pattern adds GraphRAG components for extracting and querying graph edges. You should make sure a triple store and vector store are included in your plan.", - requires: ["pulsar", "trustgraph", "llm"], - features: ["graph-rag"], - args: [ - { - name: "graph-rag-entity-limit", - label: "GraphRAG entity query limit", - type: "integer", - description: "Limit on entities to fetch from vector store", - default: 50, - required: true, - }, - { - name: "graph-rag-triple-limit", - label: "GraphRAG triple query limit", - type: "integer", - description: "Limit on triples to fetch from triple store", - default: 30, - required: true, - }, - { - name: "graph-rag-max-subgraph-size", - label: "GraphRAG maximum subgraph size", - type: "integer", - description: "Limit on size of subgraph to present to text-completion model", - default: 3000, - required: true, - }, - ], - category: [ "processing" ], - }, - module: "components/trustgraph.jsonnet", -} diff --git a/templates/patterns/llm-azure-openai.jsonnet b/templates/patterns/llm-azure-openai.jsonnet deleted file mode 100644 index 06e1a3f5..00000000 --- a/templates/patterns/llm-azure-openai.jsonnet +++ /dev/null @@ -1,32 +0,0 @@ -{ - pattern: { - name: "azure-openai", - icon: "🤖💬", - title: "Add Azure OpenAI LLM endpoint for text completion", - description: "This pattern integrates an Azure OpenAI LLM endpoint hosted in the Azure cloud for text completion operations. You need an Azure subscription to be able to use this service.", - requires: ["pulsar", "trustgraph"], - features: ["llm"], - args: [ - { - name: "azure-openai-max-output-tokens", - label: "Maximum output tokens", - type: "integer", - description: "Limit on number tokens to generate", - default: 4096, - required: true, - }, - { - name: "azure-openai-temperature", - label: "Temperature", - type: "slider", - description: "Controlling predictability / creativity balance", - min: 0, - max: 1, - step: 0.05, - default: 0.5, - }, - ], - category: [ "llm" ], - }, - module: "components/azure.jsonnet", -} diff --git a/templates/patterns/llm-azure.jsonnet b/templates/patterns/llm-azure.jsonnet deleted file mode 100644 index 7a0f12ee..00000000 --- a/templates/patterns/llm-azure.jsonnet +++ /dev/null @@ -1,32 +0,0 @@ -{ - pattern: { - name: "azure", - icon: "🤖💬", - title: "Add Azure LLM endpoint for text completion", - description: "This pattern integrates an Azure LLM endpoint hosted in the Azure cloud for text completion operations. You need an Azure subscription and to have an endpoint deployed to be able to use this service.", - requires: ["pulsar", "trustgraph"], - features: ["llm"], - args: [ - { - name: "azure-max-output-tokens", - label: "Maximum output tokens", - type: "integer", - description: "Limit on number tokens to generate", - default: 4096, - required: true, - }, - { - name: "azure-temperature", - label: "Temperature", - type: "slider", - description: "Controlling predictability / creativity balance", - min: 0, - max: 1, - step: 0.05, - default: 0.5, - }, - ], - category: [ "llm" ], - }, - module: "components/azure.jsonnet", -} diff --git a/templates/patterns/llm-bedrock.jsonnet b/templates/patterns/llm-bedrock.jsonnet deleted file mode 100644 index e114c428..00000000 --- a/templates/patterns/llm-bedrock.jsonnet +++ /dev/null @@ -1,32 +0,0 @@ -{ - pattern: { - name: "bedrock", - icon: "🤖💬", - title: "Add AWS Bedrock for text completion", - description: "This pattern integrates an AWS Bedrock LLM service hosted in the AWS cloud for text completion operations. You need an AWS cloud subscription and to have Bedrock configured to be able to use this service.", - requires: ["pulsar", "trustgraph"], - features: ["llm"], - args: [ - { - name: "bedrock-max-output-tokens", - label: "Maximum output tokens", - type: "integer", - description: "Limit on number tokens to generate", - default: 4096, - required: true, - }, - { - name: "bedrock-temperature", - label: "Temperature", - type: "slider", - description: "Controlling predictability / creativity balance", - min: 0, - max: 1, - step: 0.05, - default: 0.5, - }, - ], - category: [ "llm" ], - }, - module: "components/bedrock.jsonnet", -} diff --git a/templates/patterns/llm-claude.jsonnet b/templates/patterns/llm-claude.jsonnet deleted file mode 100644 index beefef4b..00000000 --- a/templates/patterns/llm-claude.jsonnet +++ /dev/null @@ -1,32 +0,0 @@ -{ - pattern: { - name: "claude", - icon: "🤖💬", - title: "Add Anthropic Claude for text completion", - description: "This pattern integrates an Anthropic Claude LLM service for text completion operations. You need a Claude subscription to be able to use this service.", - requires: ["pulsar", "trustgraph"], - features: ["llm"], - args: [ - { - name: "claude-max-output-tokens", - label: "Maximum output tokens", - type: "integer", - description: "Limit on number tokens to generate", - default: 4096, - required: true, - }, - { - name: "claude-temperature", - label: "Temperature", - type: "slider", - description: "Controlling predictability / creativity balance", - min: 0, - max: 1, - step: 0.05, - default: 0.5, - }, - ], - category: [ "llm" ], - }, - module: "components/claude.jsonnet", -} diff --git a/templates/patterns/llm-cohere.jsonnet b/templates/patterns/llm-cohere.jsonnet deleted file mode 100644 index 33a070e3..00000000 --- a/templates/patterns/llm-cohere.jsonnet +++ /dev/null @@ -1,32 +0,0 @@ -{ - pattern: { - name: "cohere", - icon: "🤖💬", - title: "Add Cohere LLM endpoint for text completion", - description: "This pattern integrates the Cohere LLM service for text completion operations. You need a Cohere subscription and API keys to be able to use this service.", - requires: ["pulsar", "trustgraph"], - features: ["llm"], - args: [ - { - name: "cohere-max-output-tokens", - label: "Maximum output tokens", - type: "integer", - description: "Limit on number tokens to generate", - default: 4096, - required: true, - }, - { - name: "cohere-temperature", - label: "Temperature", - type: "slider", - description: "Controlling predictability / creativity balance", - min: 0, - max: 1, - step: 0.05, - default: 0.5, - }, - ], - category: [ "llm" ], - }, - module: "components/cohere.jsonnet", -} diff --git a/templates/patterns/llm-googleaistudio.jsonnet b/templates/patterns/llm-googleaistudio.jsonnet deleted file mode 100644 index aa56d347..00000000 --- a/templates/patterns/llm-googleaistudio.jsonnet +++ /dev/null @@ -1,32 +0,0 @@ -{ - pattern: { - name: "googleaistudio", - icon: "🤖💬", - title: "Add GoogleAIStudio for text completion", - description: "This pattern integrates a GoogleAIStudio LLM service for text completion operations. You need a GoogleAISTudio API key to be able to use this service.", - requires: ["pulsar", "trustgraph"], - features: ["llm"], - args: [ - { - name: "googleaistudio-max-output-tokens", - label: "Maximum output tokens", - type: "integer", - description: "Limit on number tokens to generate", - default: 4096, - required: true, - }, - { - name: "googleaistudio-temperature", - label: "Temperature", - type: "slider", - description: "Controlling predictability / creativity balance", - min: 0, - max: 1, - step: 0.05, - default: 0.5, - }, - ], - category: [ "llm" ], - }, - module: "components/googleaistudio.jsonnet", -} diff --git a/templates/patterns/llm-llamafile.jsonnet b/templates/patterns/llm-llamafile.jsonnet deleted file mode 100644 index de2d95ef..00000000 --- a/templates/patterns/llm-llamafile.jsonnet +++ /dev/null @@ -1,41 +0,0 @@ -{ - 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/templates/patterns/llm-mistral.jsonnet b/templates/patterns/llm-mistral.jsonnet deleted file mode 100644 index 11f6de22..00000000 --- a/templates/patterns/llm-mistral.jsonnet +++ /dev/null @@ -1,32 +0,0 @@ -{ - pattern: { - name: "mistral", - icon: "🤖💬", - title: "Add Mistral LLM endpoint for text completion", - description: "This pattern integrates a Mistral LLM service for text completion operations. You need a Mistral subscription and have an API key to be able to use this service.", - requires: ["pulsar", "trustgraph"], - features: ["llm"], - args: [ - { - name: "mistral-max-output-tokens", - label: "Maximum output tokens", - type: "integer", - description: "Limit on number tokens to generate", - default: 4096, - required: true, - }, - { - name: "mistral-temperature", - label: "Temperature", - type: "slider", - description: "Controlling predictability / creativity balance", - min: 0, - max: 1, - step: 0.05, - default: 0.5, - }, - ], - category: [ "llm" ], - }, - module: "components/mistral.jsonnet", -} diff --git a/templates/patterns/llm-ollama.jsonnet b/templates/patterns/llm-ollama.jsonnet deleted file mode 100644 index ea82bbc7..00000000 --- a/templates/patterns/llm-ollama.jsonnet +++ /dev/null @@ -1,41 +0,0 @@ -{ - pattern: { - name: "ollama", - icon: "🤖💬", - title: "Add Ollama LLM for text completion", - description: "This pattern integrates an Ollama service for text completion operations. You need to have a running Ollama service with the necessary models added in order to be able to use this service.", - requires: ["pulsar", "trustgraph"], - features: ["llm"], - args: [ - { - name: "ollama-max-output-tokens", - label: "Maximum output tokens", - type: "integer", - description: "Limit on number tokens to generate", - default: 4096, - required: true, - }, - { - name: "ollama-temperature", - label: "Temperature", - type: "slider", - description: "Controlling predictability / creativity balance", - min: 0, - max: 1, - step: 0.05, - default: 0.5, - }, - { - name: "ollama-url", - label: "URL", - type: "text", - width: 120, - description: "URL of the Ollama service", - default: "http://ollama:11434", - required: true, - }, - ], - category: [ "llm" ], - }, - module: "components/ollama.jsonnet", -} diff --git a/templates/patterns/llm-openai.jsonnet b/templates/patterns/llm-openai.jsonnet deleted file mode 100644 index fc1bbd51..00000000 --- a/templates/patterns/llm-openai.jsonnet +++ /dev/null @@ -1,32 +0,0 @@ -{ - pattern: { - name: "openai", - icon: "🤖💬", - title: "Add OpenAI LLM endpoint for text completion", - description: "This pattern integrates an OpenAI LLM service for text completion operations. You need an OpenAI subscription and have an API key to be able to use this service.", - requires: ["pulsar", "trustgraph"], - features: ["llm"], - args: [ - { - name: "openai-max-output-tokens", - label: "Maximum output tokens", - type: "integer", - description: "Limit on number tokens to generate", - default: 4096, - required: true, - }, - { - name: "openai-temperature", - label: "Temperature", - type: "slider", - description: "Controlling predictability / creativity balance", - min: 0, - max: 1, - step: 0.05, - default: 0.5, - }, - ], - category: [ "llm" ], - }, - module: "components/openai.jsonnet", -} diff --git a/templates/patterns/llm-vertexai.jsonnet b/templates/patterns/llm-vertexai.jsonnet deleted file mode 100644 index 040aa9a1..00000000 --- a/templates/patterns/llm-vertexai.jsonnet +++ /dev/null @@ -1,32 +0,0 @@ -{ - pattern: { - name: "vertexai", - icon: "🤖💬", - title: "Add Google Cloud VertexAI LLM for text completion", - description: "This pattern integrates a VertexAI endpoint hosted in Google Cloud for text completion operations. You need a GCP subscription and to have VertexAI enabled to be able to use this service.", - requires: ["pulsar", "trustgraph"], - features: ["llm"], - args: [ - { - name: "vertexai-max-output-tokens", - label: "Maximum output tokens", - type: "integer", - description: "Limit on number tokens to generate", - default: 4096, - required: true, - }, - { - name: "vertexai-temperature", - label: "Temperature", - type: "slider", - description: "Controlling predictability / creativity balance", - min: 0, - max: 1, - step: 0.05, - default: 0.5, - }, - ], - category: [ "llm" ], - }, - module: "components/vertexai.jsonnet", -} diff --git a/templates/patterns/override-recursive-chunker.jsonnet b/templates/patterns/override-recursive-chunker.jsonnet deleted file mode 100644 index 65f93947..00000000 --- a/templates/patterns/override-recursive-chunker.jsonnet +++ /dev/null @@ -1,28 +0,0 @@ -{ - pattern: { - name: "override-recursive-chunker", - icon: "✂️🪚", - title: "Replace default chunker with recursive chunker", - description: "The default chunker used in Trustgraph core is a token-based chunker. This pattern replaces that with a recursive chunker, and allows ou to configure the chunking parameters.", - requires: ["pulsar", "trustgraph"], - features: [], - args: [ - { - name: "chunk-size", - type: "integer", - description: "Chunk size value", - default: 2000, - required: true, - }, - { - name: "chunk-overlap", - type: "integer", - description: "Overlap size value", - default: 100, - required: true, - } - ], - category: [ "chunking" ], - }, - module: "components/cassandra.jsonnet", -} diff --git a/templates/patterns/prompt-template-definitions.jsonnet b/templates/patterns/prompt-template-definitions.jsonnet deleted file mode 100644 index 8dc89465..00000000 --- a/templates/patterns/prompt-template-definitions.jsonnet +++ /dev/null @@ -1,23 +0,0 @@ -{ - pattern: { - name: "prompt-template-definitions", - icon: "📜️️💬", - title: "Override definition extraction prompt", - description: "This pattern overrides the default definition extraction LLM prompt allowing you to provide your own prompt.", - requires: ["pulsar", "trustgraph"], - features: ["extract-definition-prompt"], - args: [ - { - name: "prompt-definition-template", - type: "multiline", - size: 2000, - rows: 10, - description: "Definition extraction prompt", - default: "\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", - required: true, - } - ], - category: [ "prompting" ], - }, - module: "components/null.jsonnet", -} diff --git a/templates/patterns/prompt-template-document-query.jsonnet b/templates/patterns/prompt-template-document-query.jsonnet deleted file mode 100644 index f445870a..00000000 --- a/templates/patterns/prompt-template-document-query.jsonnet +++ /dev/null @@ -1,23 +0,0 @@ -{ - pattern: { - name: "prompt-template-document-query", - icon: "📜️️💬", - title: "Override document query prompt", - description: "This pattern overrides the default document query prompt used for DocumentRAG allowing you to specify your own prompt.", - requires: ["pulsar", "trustgraph"], - features: ["document-query-prompt"], - args: [ - { - name: "prompt-document-query-template", - type: "multiline", - size: 2000, - rows: 10, - description: "Document query prompt", - default: "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", - required: true, - } - ], - category: [ "prompting" ], - }, - module: "components/null.jsonnet", -} diff --git a/templates/patterns/prompt-template-kg-query.jsonnet b/templates/patterns/prompt-template-kg-query.jsonnet deleted file mode 100644 index c0a256a4..00000000 --- a/templates/patterns/prompt-template-kg-query.jsonnet +++ /dev/null @@ -1,23 +0,0 @@ -{ - pattern: { - name: "prompt-template-kq-query", - icon: "📜️️💬", - title: "Override knowledge query prompt", - description: "This pattern overrides the default knowledge query LLM prompt allowing you to provide your own prompt.", - requires: ["pulsar", "trustgraph"], - features: ["kg-query-prompt"], - args: [ - { - name: "prompt-knowledge-query-template", - type: "multiline", - size: 2000, - rows: 10, - description: "Knowledge graph extraction prompt", - default: "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", - required: true, - } - ], - category: [ "prompting" ], - }, - module: "components/null.jsonnet", -} diff --git a/templates/patterns/prompt-template-relationships.jsonnet b/templates/patterns/prompt-template-relationships.jsonnet deleted file mode 100644 index 1c295ca9..00000000 --- a/templates/patterns/prompt-template-relationships.jsonnet +++ /dev/null @@ -1,23 +0,0 @@ -{ - pattern: { - name: "prompt-template-relationships", - icon: "📜️️💬", - title: "Override relationship extraction prompt", - description: "This pattern overrides the default relationship extraction LLM prompt allowing you to provide your own prompt.", - requires: ["pulsar", "trustgraph"], - features: ["extract-relationship-prompt"], - args: [ - { - name: "prompt-relationship-template", - type: "multiline", - size: 2000, - rows: 10, - description: "Relationship extraction prompt", - default: "\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", - required: true, - } - ], - category: [ "prompting" ], - }, - module: "components/null.jsonnet", -} diff --git a/templates/patterns/prompt-template-rows-template.jsonnet b/templates/patterns/prompt-template-rows-template.jsonnet deleted file mode 100644 index 09040aa1..00000000 --- a/templates/patterns/prompt-template-rows-template.jsonnet +++ /dev/null @@ -1,23 +0,0 @@ -{ - pattern: { - name: "prompt-template-rows-template", - icon: "📜️️💬", - title: "Override table/row extraction prompt", - description: "This pattern overrides the default table/row extraction prompt to be changed. This is used for DatabaseRAG pipelines.", - requires: ["pulsar", "trustgraph"], - features: ["extract-rows-prompt"], - args: [ - { - name: "prompt-rows-template", - type: "multiline", - size: 2000, - rows: 10, - description: "Row data extraction prompt", - default: "\nStudy the following text and derive objects which match the schema provided.\n\nYou must output an array of JSON objects for each object you discover\nwhich matches the schema. For each object, output a JSON object whose fields\ncarry the name field specified in the schema.\n\n\n\n{schema}\n\n\n\n{text}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not add markdown formatting or headers or prefixes.\n", - required: true, - } - ], - category: [ "prompting" ], - }, - module: "components/null.jsonnet", -} diff --git a/templates/patterns/pulsar-manager.jsonnet b/templates/patterns/pulsar-manager.jsonnet deleted file mode 100644 index 81fa6bde..00000000 --- a/templates/patterns/pulsar-manager.jsonnet +++ /dev/null @@ -1,23 +0,0 @@ -{ - pattern: { - name: "pulsar-manager", - icon: "🏻🛃", - title: "Add Pulsar Manager", - description: "Adds Pulsar Manager which provides a web interface to manage Pulsar. Pulsar Manager is a large container and deployment requiring over 1GB of RAM, so is not deployed by default. This is not a required component, it may be useful to help manage a large operational deployment.", - requires: ["pulsar"], - features: ["pulsar-manager"], - args: [ - { - name: "initial-admin-password", - label: "Password", - type: "text", - width: 40, - description: "Admin password to apply at initialisation", - default: "pulsaradmin", - required: true, - }, - ], - category: [ "foundation" ], - }, - module: "components/pulsar.jsonnet", -} diff --git a/templates/patterns/pulsar.jsonnet b/templates/patterns/pulsar.jsonnet deleted file mode 100644 index 4b1a1205..00000000 --- a/templates/patterns/pulsar.jsonnet +++ /dev/null @@ -1,14 +0,0 @@ -{ - pattern: { - name: "pulsar", - icon: "🌟☄️", - title: "Deploy foundation messaging fabric", - description: "Deploy Pulsar as the inter-process messaging fabric. Pulsar is a Cloud-native, distributed messaging and Streaming. Apache Pulsar is an open-source, distributed messaging and streaming platform built for the cloud. Trustgraph uses Pulsar to manage the message flow between all components.", - requires: [], - features: ["pulsar"], - args: [ - ], - category: [ "foundation" ], - }, - module: "components/pulsar.jsonnet", -} diff --git a/templates/patterns/triple-store-cassandra.jsonnet b/templates/patterns/triple-store-cassandra.jsonnet deleted file mode 100644 index b386b2f5..00000000 --- a/templates/patterns/triple-store-cassandra.jsonnet +++ /dev/null @@ -1,13 +0,0 @@ -{ - pattern: { - name: "triple-store-cassandra", - icon: "🖇️🙋‍♀️", - title: "Adds a Cassandra store configured to act as a triple store", - description: "GraphRAG processing needs a triple store. This pattern adds a Cassandra store, along with plumbing so that Cassandra is integrated with GraphRag indexing and querying.", - requires: ["pulsar", "trustgraph"], - features: ["cassandra", "triple-store"], - args: [], - category: ["knowledge-graph"], - }, - module: "components/cassandra.jsonnet", -} diff --git a/templates/patterns/triple-store-falkordb.jsonnet b/templates/patterns/triple-store-falkordb.jsonnet deleted file mode 100644 index 40ef02e2..00000000 --- a/templates/patterns/triple-store-falkordb.jsonnet +++ /dev/null @@ -1,13 +0,0 @@ -{ - pattern: { - name: "triple-store-falkordb", - icon: "🖇️🙋‍♀️", - title: "Adds a FalkorDB store configured to act as a triple store.", - description: "GraphRAG processing needs a triple store. This pattern adds a FalkorDB store, along with plumbing so that FalkorDB is integrated with GraphRag indexing and querying.", - requires: ["pulsar", "trustgraph"], - features: ["falkordb", "triple-store"], - args: [], - category: [ "knowledge-graph" ], - }, - module: "components/falkordb.jsonnet", -} diff --git a/templates/patterns/triple-store-neo4j.jsonnet b/templates/patterns/triple-store-neo4j.jsonnet deleted file mode 100644 index b111ebe3..00000000 --- a/templates/patterns/triple-store-neo4j.jsonnet +++ /dev/null @@ -1,13 +0,0 @@ -{ - pattern: { - name: "triple-store-neo4j", - icon: "🖇️🙋‍♀️", - title: "Adds a Neo4j store configured to act as a triple store.", - description: "GraphRAG processing needs a triple store. This pattern adds a Neo4j store, along with plumbing so that Neo4j is integrated with GraphRag indexing and querying.", - requires: ["pulsar", "trustgraph"], - features: ["neo4j", "triple-store"], - args: [], - category: [ "knowledge-graph" ], - }, - module: "components/neo4j.jsonnet", -} diff --git a/templates/patterns/trustgraph-base.jsonnet b/templates/patterns/trustgraph-base.jsonnet deleted file mode 100644 index c7e912f5..00000000 --- a/templates/patterns/trustgraph-base.jsonnet +++ /dev/null @@ -1,14 +0,0 @@ -{ - pattern: { - name: "trustgraph-base", - icon: "🤝😂", - title: "Add Trustgraph base processing flows", - description: "This pattern adds a core set of Trustgraph flows, including PDF ingest, chunking, embeddings, and knowledge graph extraction. You should also consider adding an LLM and at least one RAG processing flow.", - requires: ["pulsar"], - features: ["trustgraph"], - args: [ - ], - category: [ "foundation" ], - }, - module: "components/trustgraph.jsonnet", -} diff --git a/templates/patterns/vector-store-milvus.jsonnet b/templates/patterns/vector-store-milvus.jsonnet deleted file mode 100644 index edbb4e57..00000000 --- a/templates/patterns/vector-store-milvus.jsonnet +++ /dev/null @@ -1,15 +0,0 @@ -{ - pattern: { - name: "vector-store-milvus", - icon: "❓🌐", - title: "Add Milvus, a vector embeddings store", - description: "The Trustgraph core does not include a vector store by default. This configuration pattern adds a simple Milvus store and integrates with embeddings handling.", - requires: ["pulsar", "trustgraph"], - features: ["milvus", "vectordb"], - args: [ - ], - category: [ "vector-store" ], - }, - module: "components/milvus.jsonnet", -} - diff --git a/templates/patterns/vector-store-qdrant.jsonnet b/templates/patterns/vector-store-qdrant.jsonnet deleted file mode 100644 index 8d949f4b..00000000 --- a/templates/patterns/vector-store-qdrant.jsonnet +++ /dev/null @@ -1,14 +0,0 @@ -{ - pattern: { - name: "vector-store-qdrant", - icon: "❓🌐", - title: "Adds Qdrant, a vector embeddings store", - description: "The Trustgraph core does not include a vector store by default. This configuration pattern adds a simple Qdrant store and integrates with embeddings handling.", - requires: ["pulsar", "trustgraph"], - features: ["qdrant", "vectordb"], - args: [ - ], - category: [ "vector-store" ], - }, - module: "components/qdrant.jsonnet", -} diff --git a/templates/prompts/cohere.jsonnet b/templates/prompts/cohere.jsonnet deleted file mode 100644 index 9541e4c2..00000000 --- a/templates/prompts/cohere.jsonnet +++ /dev/null @@ -1,42 +0,0 @@ -// For Cohere. Not currently overriding prompts - -local prompts = import "default-prompts.jsonnet"; - -prompts + { - - // "system-template":: "PROMPT GOES HERE.", - - "templates" +:: { - - "question" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-definitions" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-relationships" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-topics" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-rows" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "kg-prompt" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "document-prompt" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - } - -} - diff --git a/templates/prompts/default-prompts.jsonnet b/templates/prompts/default-prompts.jsonnet deleted file mode 100644 index be05b992..00000000 --- a/templates/prompts/default-prompts.jsonnet +++ /dev/null @@ -1,114 +0,0 @@ - -// Prompt templates. For tidy JSONNET use, don't change these templates -// here, but use over-rides in the prompt directory - -{ - - "system-template":: "You are a helpful assistant.", - - "templates":: { - - "question":: { - "prompt": "{{question}}", - }, - - "extract-definitions":: { - "prompt": "\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", - "response-type": "json", - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "entity": { - "type": "string" - }, - "definition": { - "type": "string" - } - }, - "required": [ - "entity", - "definition" - ] - } - } - }, - - "extract-relationships":: { - "prompt": "\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", - "response-type": "json", - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "subject": { - "type": "string" - }, - "predicate": { - "type": "string" - }, - "object": { - "type": "string" - }, - "object-entity": { - "type": "boolean" - }, - }, - "required": [ - "subject", - "predicate", - "object", - "object-entity" - ] - } - } - }, - - "extract-topics":: { - "prompt": "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.", - "response-type": "json", - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "topic": { - "type": "string" - }, - "definition": { - "type": "string" - } - }, - "required": [ - "topic", - "definition" - ] - } - } - }, - - "extract-rows":: { - "prompt": "\nStudy the following text and derive objects which match the schema provided.\n\nYou must output an array of JSON objects for each object you discover\nwhich matches the schema. For each object, output a JSON object whose fields\ncarry the name field specified in the schema.\n\n\n\n{{schema}}\n\n\n\n{{text}}\n\n\n\nYou will respond only with raw JSON format data. Do not provide\nexplanations. Do not add markdown formatting or headers or prefixes.\n", - "response-type": "json", - }, - - "kg-prompt":: { - "prompt": "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{% for edge in knowledge %}({{edge.s}})-[{{edge.p}}]->({{edge.o}})\n{%endfor%}\n\nUse only the provided knowledge statements to respond to the following:\n{{query}}\n", - "response-type": "text", - }, - - "document-prompt":: { - "prompt": "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", - "response-type": "text", - }, - - "agent-react":: { - "prompt": "Answer the following questions as best you can. You have\naccess to the following functions:\n\n{% for tool in tools %}{\n \"function\": \"{{ tool.name }}\",\n \"description\": \"{{ tool.description }}\",\n \"arguments\": [\n{% for arg in tool.arguments %} {\n \"name\": \"{{ arg.name }}\",\n \"type\": \"{{ arg.type }}\",\n \"description\": \"{{ arg.description }}\",\n }\n{% endfor %}\n ]\n}\n{% endfor %}\n\nYou can either choose to call a function to get more information, or\nreturn a final answer.\n \nTo call a function, respond with a JSON object of the following format:\n\n{\n \"thought\": \"your thought about what to do\",\n \"action\": \"the action to take, should be one of [{{tool_names}}]\",\n \"arguments\": {\n \"argument1\": \"argument_value\",\n \"argument2\": \"argument_value\"\n }\n}\n\nTo provide a final answer, response a JSON object of the following format:\n\n{\n \"thought\": \"I now know the final answer\",\n \"final-answer\": \"the final answer to the original input question\"\n}\n\nPrevious steps are included in the input. Each step has the following\nformat in your output:\n\n{\n \"thought\": \"your thought about what to do\",\n \"action\": \"the action taken\",\n \"arguments\": {\n \"argument1\": action argument,\n \"argument2\": action argument2\n },\n \"observation\": \"the result of the action\",\n}\n\nRespond by describing either one single thought/action/arguments or\nthe final-answer. Pause after providing one action or final-answer.\n\n{% if context %}Additional context has been provided:\n{{context}}{% endif %}\n\nQuestion: {{question}}\n\nInput:\n \n{% for h in history %}\n{\n \"action\": \"{{h.action}}\",\n \"arguments\": [\n{% for k, v in h.arguments.items() %} {\n \"{{k}}\": \"{{v}}\",\n{%endfor%} }\n ],\n \"observation\": \"{{h.observation}}\"\n}\n{% endfor %}", - "response-type": "json" - } - } - -} - diff --git a/templates/prompts/gemini.jsonnet b/templates/prompts/gemini.jsonnet deleted file mode 100644 index b9a1e0c0..00000000 --- a/templates/prompts/gemini.jsonnet +++ /dev/null @@ -1,42 +0,0 @@ -// For VertexAI Gemini. Not currently overriding prompts - -local prompts = import "default-prompts.jsonnet"; - -prompts + { - - // "system-template":: "PROMPT GOES HERE.", - - "templates" +:: { - - "question" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-definitions" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-relationships" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-topics" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-rows" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "kg-prompt" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "document-prompt" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - } - -} - diff --git a/templates/prompts/mixtral.jsonnet b/templates/prompts/mixtral.jsonnet deleted file mode 100644 index cd56e7ef..00000000 --- a/templates/prompts/mixtral.jsonnet +++ /dev/null @@ -1,42 +0,0 @@ -// For Mixtral. Not currently overriding prompts - -local prompts = import "default-prompts.jsonnet"; - -prompts + { - - // "system-template":: "PROMPT GOES HERE.", - - "templates" +:: { - - "question" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-definitions" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-relationships" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-topics" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-rows" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "kg-prompt" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "document-prompt" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - } - -} - diff --git a/templates/prompts/openai.jsonnet b/templates/prompts/openai.jsonnet deleted file mode 100644 index 5d232337..00000000 --- a/templates/prompts/openai.jsonnet +++ /dev/null @@ -1,42 +0,0 @@ -// For OpenAI LLMs. Not currently overriding prompts - -local prompts = import "default-prompts.jsonnet"; - -prompts + { - - // "system-template":: "PROMPT GOES HERE.", - - "templates" +:: { - - "question" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-definitions" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-relationships" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-topics" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-rows" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "kg-prompt" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "document-prompt" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - } - -} - diff --git a/templates/prompts/slm.jsonnet b/templates/prompts/slm.jsonnet deleted file mode 100644 index 48eb96d0..00000000 --- a/templates/prompts/slm.jsonnet +++ /dev/null @@ -1,44 +0,0 @@ -// For SLM. Not currently overriding prompts - -local prompts = import "default-prompts.jsonnet"; - -prompts + { - - // "system-template":: "PROMPT GOES HERE.", - - "templates" +:: { - - "question" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-definitions" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-relationships" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-topics" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "extract-rows" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "kg-prompt" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - "document-prompt" +:: { - // "prompt": "PROMPT GOES HERE", - }, - - } - -} - - - diff --git a/templates/storage.jsonnet b/templates/storage.jsonnet deleted file mode 100644 index 6ae5c0be..00000000 --- a/templates/storage.jsonnet +++ /dev/null @@ -1,10 +0,0 @@ - -local cassandra = import "components/stores/cassandra.jsonnet"; -local pulsar = import "components/pulsar.jsonnet"; -local milvus = import "components/stores/milvus.jsonnet"; -local grafana = import "components/grafana.jsonnet"; - -local config = cassandra + pulsar + milvus + grafana; - -std.manifestYamlDoc(config) - diff --git a/templates/stores/cassandra.jsonnet b/templates/stores/cassandra.jsonnet deleted file mode 100644 index 2a9d6d7a..00000000 --- a/templates/stores/cassandra.jsonnet +++ /dev/null @@ -1,40 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; - -{ - - "cassandra" +: { - - create:: function(engine) - - local vol = engine.volume("cassandra").with_size("20G"); - - local container = - engine.container("cassandra") - .with_image(images.cassandra) - .with_environment({ - JVM_OPTS: "-Xms300M -Xmx300M -Dcassandra.skip_wait_for_gossip_to_settle=0", - }) - .with_limits("1.0", "1000M") - .with_reservations("0.5", "1000M") - .with_port(9042, 9042, "cassandra") - .with_volume_mount(vol, "/var/lib/cassandra"); - - local containerSet = engine.containers( - "cassandra", [ container ] - ); - - local service = - engine.service(containerSet) - .with_port(9042, 9042, "api"); - - engine.resources([ - vol, - containerSet, - service, - ]) - - }, - -} - diff --git a/templates/stores/falkordb.jsonnet b/templates/stores/falkordb.jsonnet deleted file mode 100644 index 78509a43..00000000 --- a/templates/stores/falkordb.jsonnet +++ /dev/null @@ -1,39 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; - -{ - - "falkordb" +: { - - create:: function(engine) - - local vol = engine.volume("falkordb").with_size("20G"); - - local container = - engine.container("falkordb") - .with_image(images.falkordb) - .with_limits("1.0", "768M") - .with_reservations("0.5", "768M") - .with_port(6379, 6379, "api") - .with_port(3010, 3000, "ui") - .with_volume_mount(vol, "/data"); - - local containerSet = engine.containers( - "falkordb", [ container ] - ); - - local service = - engine.service(containerSet) - .with_port(6379, 6379, "api") - .with_port(3010, 3010, "ui"); - - engine.resources([ - vol, - containerSet, - service, - ]) - - }, - -} - diff --git a/templates/stores/memgraph.jsonnet b/templates/stores/memgraph.jsonnet deleted file mode 100644 index 70ad127a..00000000 --- a/templates/stores/memgraph.jsonnet +++ /dev/null @@ -1,71 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; - -{ - - "memgraph" +: { - - create:: function(engine) - - local vol = engine.volume("memgraph").with_size("20G"); - - local container = - engine.container("memgraph") - .with_image(images.memgraph_mage) - .with_environment({ - MEMGRAPH: "--storage-properties-on-edges=true --storage-enable-edges-metadata=true" - }) - .with_limits("1.0", "1000M") - .with_reservations("0.5", "1000M") - .with_port(7474, 7474, "api") - .with_port(7687, 7687, "api2") - .with_volume_mount(vol, "/var/lib/memgraph"); - - local containerSet = engine.containers( - "memgraph", [ container ] - ); - - local service = - engine.service(containerSet) - .with_port(7474, 7474, "api") - .with_port(7687, 7687, "api2"); - - engine.resources([ - vol, - containerSet, - service, - ]) - - }, - - "memgraph-lab" +: { - - create:: function(engine) - - local container = - engine.container("lab") - .with_image(images.memgraph_lab) - .with_environment({ - QUICK_CONNECT_MG_HOST: "memgraph", - QUICK_CONNECT_MG_PORT: "7687", - }) - .with_limits("1.0", "512M") - .with_reservations("0.5", "512M") - .with_port(3010, 3000, "http"); - - local containerSet = engine.containers( - "lab", [ container ] - ); - - local service = - engine.service(containerSet) - .with_port(3010, 3010, "http"); - - engine.resources([ - containerSet, - service, - ]) - - }, - -} diff --git a/templates/stores/milvus.jsonnet b/templates/stores/milvus.jsonnet deleted file mode 100644 index 1c3e3734..00000000 --- a/templates/stores/milvus.jsonnet +++ /dev/null @@ -1,90 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; -local minio = import "stores/minio.jsonnet"; - -minio { - - etcd +: { - - create:: function(engine) - - local vol = engine.volume("etcd").with_size("20G"); - - local container = - engine.container("etcd") - .with_image(images.etcd) - .with_command([ - "etcd", - "-advertise-client-urls=http://127.0.0.1:2379", - "-listen-client-urls", - "http://0.0.0.0:2379", - "--data-dir", - "/etcd", - ]) - .with_environment({ - ETCD_AUTO_COMPACTION_MODE: "revision", - ETCD_AUTO_COMPACTION_RETENTION: "1000", - ETCD_QUOTA_BACKEND_BYTES: "4294967296", - ETCD_SNAPSHOT_COUNT: "50000" - }) - .with_limits("1.0", "128M") - .with_reservations("0.25", "128M") - .with_port(2379, 2379, "api") - .with_volume_mount(vol, "/etcd"); - - local containerSet = engine.containers( - "etcd", [ container ] - ); - - local service = - engine.service(containerSet) - .with_port(2379, 2379, "api"); - - engine.resources([ - vol, - containerSet, - service, - ]) - - }, - - milvus +: { - - create:: function(engine) - - local vol = engine.volume("milvus").with_size("20G"); - - local container = - engine.container("milvus") - .with_image(images.milvus) - .with_command([ - "milvus", "run", "standalone" - ]) - .with_environment({ - ETCD_ENDPOINTS: "etcd:2379", - MINIO_ADDRESS: "minio:9000", - }) - .with_limits("1.0", "256M") - .with_reservations("0.5", "256M") - .with_port(9091, 9091, "api") - .with_port(19530, 19530, "api2") - .with_volume_mount(vol, "/var/lib/milvus"); - - local containerSet = engine.containers( - "milvus", [ container ] - ); - - local service = - engine.service(containerSet) - .with_port(9091, 9091, "api") - .with_port(19530, 19530, "api2"); - - engine.resources([ - vol, - containerSet, - service, - ]) - - }, - -} diff --git a/templates/stores/minio.jsonnet b/templates/stores/minio.jsonnet deleted file mode 100644 index 6ef1d96f..00000000 --- a/templates/stores/minio.jsonnet +++ /dev/null @@ -1,49 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; - -{ - - minio +: { - - create:: function(engine) - - local vol = engine.volume("minio-data").with_size("20G"); - - local container = - engine.container("minio") - .with_image(images.minio) - .with_command([ - "minio", - "server", - "/minio_data", - "--console-address", - ":9001", - ]) - .with_environment({ - MINIO_ROOT_USER: "minioadmin", - MINIO_ROOT_PASSWORD: "minioadmin", - }) - .with_limits("0.5", "128M") - .with_reservations("0.25", "128M") - .with_port(9000, 9000, "api") - .with_port(9001, 9001, "console") - .with_volume_mount(vol, "/minio_data"); - - local containerSet = engine.containers( - "etcd", [ container ] - ); - - local service = - engine.service(containerSet) - .with_port(9000, 9000, "api") - .with_port(9001, 9001, "console"); - - engine.resources([ - vol, - containerSet, - service, - ]) - - }, - -} diff --git a/templates/stores/neo4j.jsonnet b/templates/stores/neo4j.jsonnet deleted file mode 100644 index 3a8bb783..00000000 --- a/templates/stores/neo4j.jsonnet +++ /dev/null @@ -1,47 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; - -{ - - "neo4j" +: { - - create:: function(engine) - - local vol = engine.volume("neo4j").with_size("20G"); - - local container = - engine.container("neo4j") - .with_image(images.neo4j) - .with_environment({ - NEO4J_AUTH: "neo4j/password", - NEO4J_server_memory_pagecache_size: "512m", - NEO4J_server_memory_heap_max__size: "512m", - // NEO4J_server_bolt_listen__address: "0.0.0.0:7687", - // NEO4J_server_default__listen__address: "0.0.0.0", - // NEO4J_server_http_listen__address: "0.0.0.0:7474", - }) - .with_limits("1.0", "1536M") - .with_reservations("0.5", "1536M") - .with_port(7474, 7474, "api") - .with_port(7687, 7687, "api2") - .with_volume_mount(vol, "/data"); - - local containerSet = engine.containers( - "neo4j", [ container ] - ); - - local service = - engine.service(containerSet) - .with_port(7474, 7474, "api") - .with_port(7687, 7687, "api2"); - - engine.resources([ - vol, - containerSet, - service, - ]) - - }, - -} - diff --git a/templates/stores/qdrant.jsonnet b/templates/stores/qdrant.jsonnet deleted file mode 100644 index 9e807632..00000000 --- a/templates/stores/qdrant.jsonnet +++ /dev/null @@ -1,39 +0,0 @@ -local base = import "base/base.jsonnet"; -local images = import "values/images.jsonnet"; - -{ - - "qdrant" +: { - - create:: function(engine) - - local vol = engine.volume("qdrant").with_size("20G"); - - local container = - engine.container("qdrant") - .with_image(images.qdrant) - .with_limits("1.0", "1024M") - .with_reservations("0.5", "1024M") - .with_port(6333, 6333, "api") - .with_port(6334, 6334, "api2") - .with_volume_mount(vol, "/qdrant/storage"); - - local containerSet = engine.containers( - "qdrant", [ container ] - ); - - local service = - engine.service(containerSet) - .with_port(6333, 6333, "api") - .with_port(6334, 6334, "api2"); - - engine.resources([ - vol, - containerSet, - service, - ]) - - }, - -} - diff --git a/templates/util/decode-config.jsonnet b/templates/util/decode-config.jsonnet deleted file mode 100644 index 503b5b6b..00000000 --- a/templates/util/decode-config.jsonnet +++ /dev/null @@ -1,31 +0,0 @@ - -local components = import "components.jsonnet"; - -local apply = function(p, components) - - local base = { - - with:: function(k, v) self + { - [k]:: v - }, - - with_params:: function(pars) - self + std.foldl( - function(obj, par) obj.with(par.key, par.value), - std.objectKeysValues(pars), - self - ), - - }; - - local component = base + components[p.name]; - - component.with_params(p.parameters); - -local decode = function(config) - local add = function(state, c) state + apply(c, components); - local patterns = std.foldl(add, config, {}); - patterns; - -decode - diff --git a/templates/values/images.jsonnet b/templates/values/images.jsonnet deleted file mode 100644 index 54dbd016..00000000 --- a/templates/values/images.jsonnet +++ /dev/null @@ -1,23 +0,0 @@ -local version = import "version.jsonnet"; -{ - cassandra: "docker.io/cassandra:4.1.6", - neo4j: "docker.io/neo4j:5.26.0-community-bullseye", - pulsar: "docker.io/apachepulsar/pulsar:3.3.1", - pulsar_manager: "docker.io/apachepulsar/pulsar-manager:v0.4.0", - etcd: "quay.io/coreos/etcd:v3.5.15", - minio: "docker.io/minio/minio:RELEASE.2025-02-03T21-03-04Z", - milvus: "docker.io/milvusdb/milvus:v2.4.9", - prometheus: "docker.io/prom/prometheus:v2.53.2", - grafana: "docker.io/grafana/grafana:11.1.4", - trustgraph_base: "docker.io/trustgraph/trustgraph-base:" + version, - trustgraph_flow: "docker.io/trustgraph/trustgraph-flow:" + version, - trustgraph_ocr: "docker.io/trustgraph/trustgraph-ocr:" + version, - trustgraph_bedrock: "docker.io/trustgraph/trustgraph-bedrock:" + version, - trustgraph_vertexai: "docker.io/trustgraph/trustgraph-vertexai:" + version, - trustgraph_hf: "docker.io/trustgraph/trustgraph-hf:" + version, - qdrant: "docker.io/qdrant/qdrant:v1.13.3", - memgraph_mage: "docker.io/memgraph/memgraph-mage:1.22-memgraph-2.22", - memgraph_lab: "docker.io/memgraph/lab:2.19.1", - falkordb: "docker.io/falkordb/falkordb:latest", - "workbench-ui": "docker.io/trustgraph/workbench-ui:0.2.4", -} diff --git a/templates/values/url.jsonnet b/templates/values/url.jsonnet deleted file mode 100644 index 1bacb067..00000000 --- a/templates/values/url.jsonnet +++ /dev/null @@ -1,6 +0,0 @@ -{ - pulsar: "pulsar://pulsar:6650", - pulsar_admin: "http://pulsar:8080", - milvus: "http://milvus:19530", - qdrant: "http://qdrant:6333", -} diff --git a/templates/zip-readme.md b/templates/zip-readme.md deleted file mode 100644 index 0b117792..00000000 --- a/templates/zip-readme.md +++ /dev/null @@ -1,28 +0,0 @@ - -Note! this is a subset of possible configurations, to generate your own -launch config use the config util... - -- Production: https://config-ui.demo.trustgraph.ai -- Early release: https://dev.config-ui.demo.trustgraph.ai - -The config util auto-generates deployment instructions for your -configuration, so that's the recommended way to deploy. - ----------------------------------------------------------------------------- - -These are launch configurations for TrustGraph. See https://trustgraph.ai for -the quickstart using docker compose. - -Hint for Linux: There are files here which get mounted as volumes inside -Docker Compose containers. This may trigger SELinux rules on your system, to -permit access insider the containers, use a command like this... - -chcon -Rt svirt_sandbox_file_t grafana/ prometheus/ - -The file vertexai/private.json is a placeholder for real GCP credentials if -you are using the VertexAI LLM. If you're using that in Docker Compose, -replace with your real credentials, and don't forget to permit access if you -are using Linux: - -chcon -Rt svirt_sandbox_file_t vertexai/ -