lima_prompter.py 895 B

1234567891011121314151617181920212223242526272829303132333435
  1. """
  2. A dedicated helper to manage templates and prompt building.
  3. """
  4. import json
  5. import os.path as osp
  6. from typing import List
  7. class LimaPrompter(object):
  8. __slots__ = ("template", "_verbose")
  9. def __init__(self, template_name: str = "", verbose: bool = False):
  10. self._verbose = verbose
  11. if not template_name:
  12. template_name = "Lima"
  13. def generate_prompt(
  14. self,
  15. conversations: List[str]
  16. ) -> str:
  17. c = []
  18. for turn, text in enumerate(conversations):
  19. role = 'User' if turn % 2 == 0 else 'Assistant'
  20. c.append(f'### {role}: {text}')
  21. res = '\n'.join(c)
  22. if self._verbose:
  23. print(res)
  24. return res
  25. def get_response(self, output: str) -> str:
  26. res = output.split('### Assistant:')[-1].strip()
  27. if self._verbose:
  28. print(res)
  29. return res