prompt
/
            
              question-answer
              
                
                
            
          copied
				 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