tamatwi's picture
Update app.py
918ee1e verified
from datasets import load_dataset
from transformers import pipeline, AutoTokenizer
import torch
import gradio as gr
# PersonaHubデータセットの読み込み('math'設定を指定)
dataset = load_dataset("proj-persona/PersonaHub", "persona")
# 日本語モデルを指定
model_name = "rinna/japanese-gpt2-medium"
# トークナイザーとパイプラインの設定
tokenizer = AutoTokenizer.from_pretrained(model_name, legacy=False)
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
generator = pipeline('text-generation', model=model_name, tokenizer=tokenizer, device=0 if torch.cuda.is_available() else -1)
def generate_text(prompt, max_length, persona_id):
# 指定されたペルソナを取得
persona = dataset['train'][persona_id]
# ペルソナのプロンプトを作成
persona_prompt = f"あなたは{persona['profession']}です。次の問題を作成してください:"
# ペルソナのプロンプトとユーザー入力を結合
full_prompt = f"{persona_prompt} {prompt}"
# テキストを生成
result = generator(full_prompt, max_length=max_length, num_return_sequences=1)
return result[0]['generated_text']
iface = gr.Interface(
fn=generate_text,
inputs=[
gr.Textbox(label="プロンプト", placeholder="ここに日本語のプロンプトを入力してください"),
gr.Slider(minimum=10, maximum=200, value=50, step=1, label="最大長"),
gr.Number(label="ペルソナID", value=0)
],
outputs=gr.Textbox(label="生成されたテキスト")
)
iface.launch()