prompt
/
question-answer
copied
junjie.jiang
1 year ago
2 changed files with 33 additions and 0 deletions
@ -0,0 +1,4 @@ |
|||
from .qa_prompt import QAPrompt |
|||
|
|||
def question_answer(): |
|||
return QAPrompt() |
@ -0,0 +1,29 @@ |
|||
from typing import List, Tuple, Dict |
|||
|
|||
|
|||
class QAPrompt: |
|||
def __init__(self): |
|||
super().__init__() |
|||
self._template = """ |
|||
'Use the following pieces of context to answer the question at the end. |
|||
If you don''t know the answer, just say that you don''t know, don''t try to make |
|||
up an answer. |
|||
|
|||
{context} |
|||
|
|||
Question: {question} |
|||
|
|||
Helpful Answer:' |
|||
""" |
|||
|
|||
def __call__(self, question: str, docs: List[str], history=None) -> List[Dict[str, str]]: |
|||
context = '\n'.join(docs) |
|||
prompt_str = self._template.format(context=context, question=question) |
|||
ret = [{'question': prompt_str}] |
|||
if not isinstance(history, list): |
|||
return ret |
|||
else: |
|||
history_data = [] |
|||
for item in history: |
|||
history_data.append({'question': item[0], 'answer': item[1]}) |
|||
return history + ret |
Loading…
Reference in new issue