| | import os |
| | import gradio as gr |
| | from transformers import pipeline |
| |
|
| | |
| | hf_api_token = os.environ.get("HF_API_TOKEN") |
| |
|
| | |
| | if not hf_api_token: |
| | raise ValueError("Hugging FaceのAPIトークンが設定されていません。環境変数 'HF_API_TOKEN' を設定してください。") |
| |
|
| | |
| | chatbot_pipeline = pipeline( |
| | "text-generation", |
| | model="Sakalti/Tara-3.8B-v1.1", |
| | use_auth_token=hf_api_token |
| | ) |
| |
|
| | |
| | def respond(prompt, system_message, max_new_tokens, temperature, top_p, top_k): |
| | """ |
| | チャットボットの応答を生成する。 |
| | """ |
| | |
| | full_prompt = f"{system_message}\nユーザー: {prompt}\nAI:" |
| | |
| | |
| | response = chatbot_pipeline( |
| | full_prompt, |
| | max_new_tokens=max_new_tokens, |
| | temperature=temperature, |
| | top_p=top_p, |
| | top_k=top_k, |
| | num_return_sequences=1 |
| | ) |
| | |
| | return response[0]["generated_text"] |
| |
|
| | |
| | demo = gr.ChatInterface( |
| | respond, |
| | additional_inputs=[ |
| | gr.Textbox(value="あなたはフレンドリーなチャットボットです。", label="システムメッセージ"), |
| | gr.Slider(minimum=1, maximum=2048, value=768, 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 (核 sampling)"), |
| | gr.Slider(minimum=1, maximum=100, value=50, step=1, label="Top-k"), |
| | ], |
| | concurrency_limit=30 |
| | ) |
| |
|
| | |
| | demo.launch() |