Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| # モデルとトークナイザーの読み込み | |
| model_name = "Qwen/Qwen2.5-0.5B-Instruct" | |
| tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=False) # Slow tokenizerを使用 | |
| model = AutoModelForCausalLM.from_pretrained(model_name) | |
| # 生成用の関数 | |
| def respond(input_text, system_message, max_tokens, temperature, top_p): | |
| # システムメッセージとユーザー入力を結合 | |
| input_text_combined = f"システム: {system_message}\nユーザー: {input_text}\n" | |
| # トークン化 | |
| inputs = tokenizer(input_text_combined, return_tensors="pt") | |
| # モデルに入力を渡して生成 | |
| outputs = model.generate( | |
| **inputs, | |
| max_length=max_tokens, # 最大トークン数 | |
| top_p=top_p, # nucleus sampling のパラメータ | |
| do_sample=True, # サンプリングを有効にする | |
| temperature=temperature, # 生成の温度 | |
| pad_token_id=tokenizer.eos_token_id | |
| ) | |
| # トークンをテキストにデコード | |
| response = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| # レスポンスを返す | |
| return response | |
| # Gradioインターフェースの作成 | |
| with gr.Blocks() as demo: | |
| gr.Markdown("## rinna/japanese-gpt-neox-small チャットボット") | |
| # 追加の入力フィールドをリストで設定 | |
| additional_inputs = [ | |
| gr.Textbox(value="ユーザーの質問や依頼にのみ答えてください。ポジティブに答えてください。", label="システムメッセージ"), | |
| gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="新規トークン最大"), | |
| gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="温度"), | |
| gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (核サンプリング)") | |
| ] | |
| # ユーザーのメイン入力 | |
| input_text = gr.Textbox(label="ユーザー入力", placeholder="質問やテキストを入力してください") | |
| # 出力エリア("respond"という名前に変更) | |
| output_text = gr.Textbox(label="respond") | |
| # ボタンとアクション | |
| submit_button = gr.Button("送信") | |
| submit_button.click(respond, inputs=[input_text] + additional_inputs, outputs=output_text) | |
| # インターフェースの起動 | |
| demo.launch() |