Mr-Vicky-01's picture
Update app.py
43feb78 verified
raw
history blame
No virus
2.2 kB
import gradio as gr
# from langchain.document_loaders import UnstructuredURLLoader
from langchain_community.document_loaders import WebBaseLoader
import os
from langchain import PromptTemplate, HuggingFaceHub, LLMChain
from gtts import gTTS
# from IPython.display import Audio
# from dotenv import load_dotenv
# load_dotenv() # to load all the env variables
api_key = os.getenv("HUGGINGFACE_API_TOKEN")
os.environ['HUGGINGFACEHUB_API_TOKEN'] = api_key
def get_url_text(url_link):
try:
loader = WebBaseLoader(url_link)
loader.requests_per_second = 1
docs = loader.aload()
extracted_text = ""
for page in docs:
extracted_text += page.page_content
return extracted_text
except Exception as e:
print(f"Error fetching or processing URL: {e}")
return ""
def get_answer(text):
template = """{text}"""
prompt = PromptTemplate(template=template, input_variables=["text"])
llm_chain = LLMChain(prompt=prompt,
llm=HuggingFaceHub(repo_id="Mr-Vicky-01/conversational_sumarization",
model_kwargs={"max_length":100,
"max_new_tokens":100,
"do_sample": False}))
answer = llm_chain.run(text)
return answer
def text_to_speech(text, language='en'):
tts = gTTS(text=text, lang=language)
tts.save("output.mp3")
return "output.mp3"
def summarize_and_convert_to_audio(url):
text = get_url_text(url)
summary = get_answer(text)
audio_file = text_to_speech(summary)
return audio_file
example = [
["https://en.wikipedia.org/wiki/Vijay_(actor)"],
["https://en.wikipedia.org/wiki/Sam_Altman"],
["https://timesofindia.indiatimes.com/india/air-india-sacks-pilot-found-drunk-after-operating-overseas-flight/articleshow/108829830.cms"]
]
iface = gr.Interface(fn=summarize_and_convert_to_audio, inputs="text", outputs="audio", title="Text Summarization & Audio Generation", description="Enter the URL of the article to summarize and convert to audio.", examples=example)
iface.launch()