TanTran123's picture
Update app.py
350881d verified
raw
history blame
2.16 kB
import gradio as gr
from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM
# Tải model và tokenizer
model_name = "NlpHUST/gpt2-vietnamese"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
text_generator = pipeline("text-generation", model=model, tokenizer=tokenizer)
# Hàm sinh bio
def generate_bio(prompt, max_length, temperature):
# Prompt cứng để định hướng model
full_prompt = (
f"Viết một đoạn bio 1-2 câu, ngắn gọn, vui nhộn, dùng trên mạng xã hội.\n"
f"Chủ đề: {prompt.strip()}\nBio:"
)
outputs = text_generator(
full_prompt,
max_length=max_length,
do_sample=True,
temperature=temperature,
pad_token_id=tokenizer.eos_token_id,
num_return_sequences=1,
top_k=50,
top_p=0.95
)
# Xử lý đầu ra, loại bỏ phần prompt ban đầu
generated = outputs[0]["generated_text"]
generated_bio = generated.replace(full_prompt, "").strip()
return generated_bio
# Tạo giao diện
with gr.Blocks(title="AI Viết Bio Thương Hiệu Cá Nhân (Tiếng Việt)") as app:
gr.Markdown("✨ **AI Viết Bio Thương Hiệu Cá Nhân (Tiếng Việt)**")
with gr.Row():
with gr.Column():
prompt_input = gr.Textbox(label="🧠 Mô tả bản thân / điểm mạnh", placeholder="VD: Tôi là người chơi cầu lông hài hước")
max_length = gr.Slider(label="✏️ Độ dài tối đa", minimum=20, maximum=300, value=60, step=5)
temperature = gr.Slider(label="🧪 Mức sáng tạo (temperature)", minimum=0.1, maximum=1.0, value=0.8, step=0.1)
submit_btn = gr.Button("Submit")
clear_btn = gr.Button("Clear")
with gr.Column():
output_box = gr.Textbox(label="📋 Đoạn bio gợi ý", lines=5)
# Xử lý nút
submit_btn.click(fn=generate_bio, inputs=[prompt_input, max_length, temperature], outputs=output_box)
clear_btn.click(fn=lambda: "", inputs=None, outputs=output_box)
app.launch()