import streamlit as st from transformers import (AutoModel, AutoTokenizer, pipeline, T5ForConditionalGeneration) # import torch st.set_page_config(layout="wide", page_title="تبدیل متون محاوره‌ای به فارسی") model_path = 'erfan226/persian-t5-formality-transfer' model = T5ForConditionalGeneration.from_pretrained(model_path) tokenizer = AutoTokenizer.from_pretrained(model_path) pipe = pipeline(task='text2text-generation', model=model, tokenizer=tokenizer) def paraphrase(text, num_outputs, n_beams, min_len, max_len): # for j in range(3): out = pipe(text, num_return_sequences=num_outputs, encoder_no_repeat_ngram_size=4, do_sample=True, num_beams=n_beams, max_length=max_len) return out text = st.text_area('متن محاوره‌ای خود را در این کادر وارد نمائید:', "من با دوستام میرم بازی", height=50) num_outputs = st.sidebar.slider('تعداد خروجی', min_value=1, max_value=10, value=3, step=1) num_beams = st.sidebar.slider('طول Beam', min_value=1, max_value=10, value=5, step=1) min_length = st.sidebar.slider('حداقل طول جمله', min_value=10, max_value=100, value=30, step=5) max_length = st.sidebar.slider('حداکثر طول طول جمله', min_value=30, max_value=128, value=100, step=5) button = st.button("تبدیل متن") with st.spinner("در حال تبدیل متن..."): if button and text: out = paraphrase(text,num_outputs, num_beams, min_length, max_length) st.markdown("**متن خروجی:**") for i, txt in enumerate(out): st.write(out[i]['generated_text']) # x = st.slider('Select a value') # st.write(x, 'squared is', x * x)