File size: 902 Bytes
b7109d6
 
 
 
 
 
ac02b36
 
 
 
 
 
b7109d6
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

class QuestionGenerator:
    """
    Generates answers to queries based on retrieved context using a seq2seq model.
    """

    def __init__(self, model_name: str = "google/flan-t5-small"):
        self.model_name = model_name
        self.tokenizer = AutoTokenizer.from_pretrained(self.model_name)
        self.model = AutoModelForSeq2SeqLM.from_pretrained(self.model_name)

    def generate(self, context: str, prompt: str, max_length: int = 256) -> str:
        """
        Generates a text answer given a context and a question prompt.
        """
        full_prompt = f"Context: {context}\n\nQuestion: {prompt}\nAnswer:"
        inputs = self.tokenizer(full_prompt, return_tensors="pt")
        outputs = self.model.generate(**inputs, max_length=max_length)
        return self.tokenizer.decode(outputs[0], skip_special_tokens=True)