prompt
/
            
              question-answer
              
                 
                
            
          copied
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
			Readme
Files and versions
		
      
        
        
          
            29 lines
          
        
        
          
            859 B
          
        
        
      
		
    
      
      
    
	
  
	
            29 lines
          
        
        
          
            859 B
          
        
        
      | 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
 | 
