Spaces:
Sleeping
Sleeping
File size: 2,581 Bytes
e97c343 08c59a2 35a8dfb 71f7ef1 66c4f4c 71f7ef1 a369500 66c4f4c a369500 71f7ef1 66c4f4c 71f7ef1 66c4f4c 71f7ef1 08c59a2 0d80d73 71f7ef1 08c59a2 a369500 08c59a2 71f7ef1 66c4f4c 08c59a2 71f7ef1 08c59a2 a369500 35a8dfb 08c59a2 0d80d73 a369500 35a8dfb 0d80d73 35a8dfb a369500 35a8dfb 08c59a2 71f7ef1 a369500 66c4f4c a369500 08c59a2 a369500 66c4f4c a369500 66c4f4c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
import subprocess
import sys
from transformers import T5ForConditionalGeneration, T5Tokenizer
import gradio as gr
# Install required packages
def install(package):
subprocess.check_call([sys.executable, "-m", "pip", "install", package])
install('transformers')
install('sentencepiece')
install('torch')
install('gradio')
# Translation setup
try:
install('translate')
from translate import Translator
translation_available = True
except:
print("Translation package not available - continuing without translation support")
translation_available = False
class GOTSummarizer:
def __init__(self):
self.tokenizer = T5Tokenizer.from_pretrained("t5-small")
self.model = T5ForConditionalGeneration.from_pretrained("t5-small")
self.translation_available = translation_available
def summarize(self, text, max_length=150):
inputs = self.tokenizer("summarize: " + text,
return_tensors="pt",
truncation=True,
max_length=512)
outputs = self.model.generate(
**inputs,
max_length=max_length,
num_beams=4,
early_stopping=True
)
return self.tokenizer.decode(outputs[0], skip_special_tokens=True)
def translate(self, text, lang='hi'):
if not self.translation_available:
return "[Translation unavailable] " + text
try:
translator = Translator(to_lang=lang) # Initialize with target language
return translator.translate(text)
except Exception as e:
print(f"Translation error: {e}")
return text
# Initialize summarizer
summarizer = GOTSummarizer()
def process(text, lang='en'):
if not text.strip():
return "Please enter text to summarize"
summary = summarizer.summarize(text)
return summary if lang == 'en' else summarizer.translate(summary, lang)
# Create Gradio interface
interface = gr.Interface(
fn=process,
inputs=[
gr.Textbox(label="Game of Thrones Text", lines=10,
placeholder="Paste book chapter text here..."),
gr.Dropdown(
label="Language",
choices=['en', 'hi', 'pa', 'ta', 'bn'],
value='en'
)
],
outputs=gr.Textbox(label="Summary"),
title="ASOIAF Chapter Summarizer",
description="Summarizes Game of Thrones chapters with optional translation"
)
# Launch the interface
if __name__ == "__main__":
interface.launch() |