Spaces:
Running
Running
import gradio as gr | |
import json | |
from transformers import pipeline | |
# Initialize the text generation pipeline | |
generator = pipeline('text-generation', model='gpt2') | |
def adjust_tone(text, concise, casual): | |
tones = [ | |
{"tone": "concise", "weight": concise}, | |
{"tone": "casual", "weight": casual}, | |
{"tone": "professional", "weight": 1 - casual}, | |
{"tone": "expanded", "weight": 1 - concise} | |
] | |
tones = sorted(tones, key=lambda x: x['weight'], reverse=True)[:2] | |
tone_prompt = " and ".join([f"{t['tone']} (weight: {t['weight']:.2f})" for t in tones]) | |
prompt = f"Rewrite the following text to match these tones: {tone_prompt}. Text: {text}" | |
result = generator(prompt, max_length=100, num_return_sequences=1) | |
return result[0]['generated_text'] | |
# Gradio Interface | |
with gr.Blocks() as demo: | |
gr.Markdown("# Tone Adjuster") | |
input_text = gr.Textbox(label="Input Text") | |
with gr.Row(): | |
concise_slider = gr.Slider(minimum=0, maximum=1, value=0.5, label="Concise vs Expanded") | |
casual_slider = gr.Slider(minimum=0, maximum=1, value=0.5, label="Casual vs Professional") | |
output_text = gr.Textbox(label="Adjusted Text") | |
adjust_btn = gr.Button("Adjust Tone") | |
adjust_btn.click( | |
adjust_tone, | |
inputs=[input_text, concise_slider, casual_slider], | |
outputs=output_text | |
) | |
demo.launch() |