Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from datasets import load_dataset | |
| from transformers import AutoTokenizer, TFAutoModelForSeq2SeqLM | |
| # Load model and tokenizer | |
| model_name = "NinaMwangi/T5_finbot" | |
| tokenizer = AutoTokenizer.from_pretrained(model_name) | |
| model = TFAutoModelForSeq2SeqLM.from_pretrained(model_name) | |
| # Load dataset | |
| dataset = load_dataset("virattt/financial-qa-10K")["train"] | |
| # Function to retrieve context | |
| def get_context_for_question(question): | |
| for item in dataset: | |
| if item["question"].strip().lower() == question.strip().lower(): | |
| return item["context"] | |
| return "No relevant context found." | |
| # Predict function | |
| def generate_answer(question): | |
| context = get_context_for_question(question) | |
| prompt = f"Q: {question} Context: {context} A:" | |
| inputs = tokenizer( | |
| prompt, | |
| return_tensors="tf", | |
| padding="max_length", | |
| truncation=True, | |
| max_length=256 | |
| ) | |
| outputs = model.generate( | |
| **inputs, | |
| max_new_tokens=64, | |
| num_beams=4, | |
| early_stopping=True | |
| ) | |
| answer = tokenizer.decode(outputs[0], skip_special_tokens=True).strip() | |
| return answer | |
| # Interface | |
| interface = gr.Interface( | |
| fn=generate_answer, | |
| inputs=gr.Textbox(lines=2, placeholder="Ask a finance question..."), | |
| outputs="text", | |
| title="Finance QA Chatbot", | |
| description="Built using a fine-tuned T5 Transformer. Ask a finance-related question and get an accurate, concise answer." | |
| ) | |
| interface.launch() | |