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) .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