youtube / app.py
Fralet's picture
Update app.py
91dd84e verified
raw
history blame
1.7 kB
import streamlit as st
import pandas as pd
from transformers import pipeline
# Load translation and summarization pipelines
translator = pipeline("translation_ru_to_en", model="Helsinki-NLP/opus-mt-ru-en")
summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
# Function to translate and summarize text
def translate_and_summarize(text):
translated_text = translator(text)[0]['translation_text']
summary = summarizer(translated_text, max_length=140, min_length=110, do_sample=False)[0]['summary_text']
return summary
# Streamlit interface
def main():
st.title("CSV Translator and Summarizer")
# File uploader
uploaded_file = st.file_uploader("Choose a CSV file", type="csv")
if uploaded_file is not None:
# Read data
data = pd.read_csv(uploaded_file)
# Check necessary columns
required_columns = {'Description', 'Published'}
if not required_columns.issubset(data.columns):
missing_cols = required_columns - set(data.columns)
st.error(f"Uploaded CSV is missing the following required column(s): {', '.join(missing_cols)}")
return
# Filter rows where 'Published' is unchecked (assuming False or equivalent)
data_filtered = data[data['Published'] == False]
# Apply translation and summarization
if not data_filtered.empty:
data_filtered['Summary'] = data_filtered['Description'].apply(translate_and_summarize)
# Display data in a table
st.write(data_filtered[['ID', 'Title', 'Summary']])
else:
st.write("No unpublished descriptions to process.")
if __name__ == "__main__":
main()