(self, name, rd, kwargs, condition = None)
| 77 | |
| 78 | |
| 79 | def apply_template(self, name, rd, kwargs, condition = None): |
| 80 | for t in self.templates[name]: |
| 81 | if t["rd"] == rd and t["condition"] == condition: |
| 82 | template = t |
| 83 | break |
| 84 | prompt = "" |
| 85 | if "demo" in template and template["demo"] != "": |
| 86 | index = 0 |
| 87 | while True: |
| 88 | prompt += template["demo"] |
| 89 | for parameter in template["demo_parameters"]: |
| 90 | if isinstance(kwargs[parameter], str): |
| 91 | prompt = prompt.replace("{" + parameter + "}", kwargs[parameter]) |
| 92 | break |
| 93 | elif isinstance(kwargs[parameter], list): |
| 94 | prompt = prompt.replace("{" + parameter + "}", kwargs[parameter][index]) |
| 95 | index += 1 |
| 96 | if index >= len(kwargs[list(kwargs.keys())[0]]): |
| 97 | break |
| 98 | prompt += template["instruction"] |
| 99 | for parameter in template["instruction_parameters"]: |
| 100 | prompt = prompt.replace("{" + parameter + "}", kwargs[parameter]) |
| 101 | prompt = prompt.replace("[trigger]", self.templates["trigger"]).replace("[regular_requirement]", self.templates["regular_requirement"]) |
| 102 | return prompt |
| 103 | |
| 104 | def build_chat_message(self, message, history): |
| 105 | return history + [{"role": "user", "content": message}] |
no outgoing calls
no test coverage detected