trustgraph/templates/components/trustgraph.jsonnet
cybermaggedon 90127dfecb
Feature/rag metering (#75)
* Add metering-rag for RAG token metrics

* Make metering executable

* Add metering-rag to Prom metrics

* Metricate the right queue

* Update templates to include metering-rag
2024-09-29 20:15:03 +01:00

168 lines
4.5 KiB
Jsonnet

local base = import "base/base.jsonnet";
local images = import "values/images.jsonnet";
local url = import "values/url.jsonnet";
local prompt = import "prompt-template.jsonnet";
{
"chunk-size":: 250,
"chunk-overlap":: 15,
"chunker" +: {
create:: function(engine)
local container =
engine.container("chunker")
.with_image(images.trustgraph)
.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)
.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,
])
},
"vectorize" +: {
create:: function(engine)
local container =
engine.container("vectorize")
.with_image(images.trustgraph)
.with_command([
"embeddings-vectorize",
"-p",
url.pulsar,
])
.with_limits("1.0", "512M")
.with_reservations("0.5", "512M");
local containerSet = engine.containers(
"vectorize", [ 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)
.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)
.with_command([
"metering",
"-p",
url.pulsar,
"-i",
"non-persistent://tg/response/text-completion-rag-response",
])
.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,
])
},
} + prompt