MCPcopy Create free account
hub / github.com/SalesforceAIResearch/perfcodegen / apply_template

Method apply_template

src/prompt.py:79–102  ·  view source on GitHub ↗
(self, name, rd, kwargs, condition = None)

Source from the content-addressed store, hash-verified

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}]

Calls

no outgoing calls

Tested by

no test coverage detected