RAG / generator.py
oluinioluwa814's picture
Update generator.py
b7109d6 verified
raw
history blame contribute delete
902 Bytes
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)