| 9 | } |
| 10 | |
| 11 | class BasePrompter: |
| 12 | def __init__( |
| 13 | self, |
| 14 | system_inst, |
| 15 | role1, |
| 16 | role2, |
| 17 | sen_spliter="\n", |
| 18 | qa_spliter="\n", |
| 19 | decorator: List[str] = None, |
| 20 | ): |
| 21 | self.system_inst = system_inst # System Instruction |
| 22 | self.role1 = role1 # The name of USER |
| 23 | self.role2 = role2 # The name of AI-Assistant |
| 24 | self.sen_spliter = sen_spliter # How to split system/user/assistant outputs |
| 25 | self.qa_spliter = qa_spliter # How to split Q&A rounds |
| 26 | self.decorator = decorator |
| 27 | if self.decorator == None: |
| 28 | self.starter = "" |
| 29 | self.stopper = "" |
| 30 | else: |
| 31 | self.starter = self.decorator[0] |
| 32 | self.stopper = self.decorator[1] |
| 33 | if self.system_inst == None: |
| 34 | self.template = ( |
| 35 | self.starter |
| 36 | + self.role1 |
| 37 | + ": {prompt}" |
| 38 | + self.stopper |
| 39 | + self.sen_spliter |
| 40 | + self.starter |
| 41 | + self.role2 |
| 42 | + ":" |
| 43 | ) |
| 44 | else: |
| 45 | self.template = ( |
| 46 | self.starter |
| 47 | + self.system_inst |
| 48 | + self.stopper |
| 49 | + self.sen_spliter |
| 50 | + self.starter |
| 51 | + self.role1 |
| 52 | + ": {prompt}" |
| 53 | + self.stopper |
| 54 | + self.sen_spliter |
| 55 | + self.starter |
| 56 | + self.role2 |
| 57 | + ":" |
| 58 | ) |
| 59 | self.model_input = None |
| 60 | |
| 61 | def insert_prompt(self, input_prompt): |
| 62 | self.model_input = self.template.format(prompt=input_prompt) |
| 63 | |
| 64 | def update_template(self, outputs): |
| 65 | self.template = ( |
| 66 | self.model_input |
| 67 | + " " |
| 68 | + outputs.strip() |
nothing calls this directly
no outgoing calls
no test coverage detected