From 79f8d84e10fc9b16c8b9bd891296e98f85f592f9 Mon Sep 17 00:00:00 2001 From: Cyber MacGeddon Date: Thu, 17 Jul 2025 22:06:11 +0100 Subject: [PATCH] Fixed prompt service --- .../trustgraph/prompt/template/service.py | 2 +- .../trustgraph/template/prompt_manager.py | 52 +++++++++++-------- 2 files changed, 32 insertions(+), 22 deletions(-) diff --git a/trustgraph-flow/trustgraph/prompt/template/service.py b/trustgraph-flow/trustgraph/prompt/template/service.py index 4033ed8a..df34a9f8 100755 --- a/trustgraph-flow/trustgraph/prompt/template/service.py +++ b/trustgraph-flow/trustgraph/prompt/template/service.py @@ -33,7 +33,7 @@ class Processor(FlowProcessor): super(Processor, self).__init__( **params | { "id": id, - "config-type": config_key, + "config-type": self.config_key, "concurrency": concurrency, } ) diff --git a/trustgraph-flow/trustgraph/template/prompt_manager.py b/trustgraph-flow/trustgraph/template/prompt_manager.py index 25830f55..aa76d48f 100644 --- a/trustgraph-flow/trustgraph/template/prompt_manager.py +++ b/trustgraph-flow/trustgraph/template/prompt_manager.py @@ -21,29 +21,19 @@ class PromptManager: def __init__(self): - self.config = PromptConfiguration("", {}, {}) - self.terms = config.global_terms - self.prompts = config.prompts - - try: - self.system_template = ibis.Template(config.system_template) - except: - raise RuntimeError("Error in system template") - - self.templates = {} - for k, v in self.prompts.items(): - try: - self.templates[k] = ibis.Template(v.template) - except: - raise RuntimeError(f"Error in template: {k}") - - if v.terms is None: - v.terms = {} + self.load_config({}) def load_config(self, config): - system = json.loads(config["system"]) - ix = json.loads(config["template-index"]) + try: + system = json.loads(config["system"]) + except: + system = "Be helpful." + + try: + ix = json.loads(config["template-index"]) + except: + ix = [] prompts = {} @@ -69,6 +59,24 @@ class PromptManager: prompts ) + self.terms = self.config.global_terms + self.prompts = self.config.prompts + + try: + self.system_template = ibis.Template(self.config.system_template) + except: + raise RuntimeError("Error in system template") + + self.templates = {} + for k, v in self.prompts.items(): + try: + self.templates[k] = ibis.Template(v.template) + except: + raise RuntimeError(f"Error in template: {k}") + + if v.terms is None: + v.terms = {} + def parse_json(self, text): json_match = re.search(r'```(?:json)?(.*?)```', text, re.DOTALL) @@ -80,7 +88,7 @@ class PromptManager: return json.loads(json_str) - async def render(self, id, input): + def render(self, id, input): if id not in self.prompts: raise RuntimeError("ID invalid") @@ -95,6 +103,8 @@ class PromptManager: print("Invoke...", flush=True) + terms = self.terms | self.prompts[id].terms | input + resp_type = self.prompts[id].response_type prompt = {