wip integrate falkordb (#211) (#213)

Co-authored-by: Avi Avni <avi.avni@gmail.com>
This commit is contained in:
cybermaggedon 2024-12-19 16:17:07 +00:00 committed by GitHub
parent 8c1b468eb0
commit a4afff59a0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 664 additions and 6 deletions

View file

@ -5,6 +5,7 @@
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",

View file

@ -12,6 +12,7 @@
"graph-rag": import "components/graph-rag.jsonnet",
"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",
"llamafile": import "components/llamafile.jsonnet",
"ollama": import "components/ollama.jsonnet",
@ -39,6 +40,7 @@
"qdrant": import "components/qdrant.jsonnet",
"pinecone": import "components/pinecone.jsonnet",
"milvus": import "components/milvus.jsonnet",
"falkordb": import "components/falkordb.jsonnet",
"trustgraph": import "components/trustgraph.jsonnet",
}

View file

@ -0,0 +1,76 @@
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)
.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)
.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,
])
}
}

View file

@ -125,7 +125,7 @@ def generate_all(output, version):
"azure", "azure-openai", "bedrock", "claude", "cohere",
"googleaistudio", "llamafile", "ollama", "openai", "vertexai",
]:
for graph in [ "cassandra", "neo4j" ]:
for graph in [ "cassandra", "neo4j", "falkordb" ]:
y = generate_config(
llm=model, graph_store=graph, platform=platform,

View file

@ -0,0 +1,13 @@
{
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",
}

View file

@ -3,7 +3,7 @@
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 Cassandra store, along with plumbing so that Cassandra is integrated with GraphRag indexing and querying.",
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: [],

View file

@ -0,0 +1,39 @@
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(3000, 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(3000, 3000, "ui");
engine.resources([
vol,
containerSet,
service,
])
},
}

View file

@ -13,4 +13,5 @@ local version = import "version.jsonnet";
qdrant: "docker.io/qdrant/qdrant:v1.11.1",
memgraph_mage: "docker.io/memgraph/memgraph-mage:1.22-memgraph-2.22",
memgraph_lab: "docker.io/memgraph/lab:2.19.1",
falkordb: "falkordb/falkordb:latest"
}