oggata commited on
Commit
691edc1
·
verified ·
1 Parent(s): 7767876

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -15
app.py CHANGED
@@ -22,21 +22,25 @@ model = AutoModelForCausalLM.from_pretrained(
22
  )
23
  print("モデルの読み込みが完了しました。")
24
 
25
- def respond(message, history):
 
 
 
 
 
 
 
26
  """
27
  チャットボットの応答を生成する関数
28
- historyはタプルのリスト形式: [(user_msg, bot_msg), ...]
29
  """
30
  try:
31
- # システムメッセージとして使用するプロンプト
32
- system_message = "あなたは親切で知識豊富な日本語アシスタントです。ユーザーの質問に丁寧に答えてください。"
33
-
34
- # 会話履歴を文字列形式に変換
35
  conversation = ""
36
  if system_message.strip():
37
  conversation += f"システム: {system_message}\n"
38
 
39
- # 会話履歴を追加(タプル形式)
40
  for user_msg, bot_msg in history:
41
  if user_msg:
42
  conversation += f"ユーザー: {user_msg}\n"
@@ -59,9 +63,9 @@ def respond(message, history):
59
  # 一度に生成してからストリーミング風に出力
60
  outputs = model.generate(
61
  inputs,
62
- max_new_tokens=512, # デフォルト値を使用
63
- temperature=0.7, # デフォルト値を使用
64
- top_p=0.95, # デフォルト値を使用
65
  do_sample=True,
66
  pad_token_id=tokenizer.eos_token_id,
67
  eos_token_id=tokenizer.eos_token_id,
@@ -88,18 +92,46 @@ def respond(message, history):
88
 
89
  """
90
  Gradio ChatInterfaceを使用したシンプルなチャットボット
91
- デフォルトのタプル形式を使用
92
  """
93
  demo = gr.ChatInterface(
94
  respond,
95
  title="🤖 Sarashina Chatbot",
96
  description="Sarashina2.2-3b-instruct モデルを使用した日本語チャットボットです。",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
  theme=gr.themes.Soft(),
98
  examples=[
99
- "こんにちは!今日はどんなことを話しましょうか?",
100
- "日本の文化について教えてください。",
101
- "簡単なレシピを教えてもらえますか?",
102
- "プログラミングについて質問があります。",
103
  ],
104
  cache_examples=False,
105
  )
 
22
  )
23
  print("モデルの読み込みが完了しました。")
24
 
25
+ def respond(
26
+ message,
27
+ history,
28
+ system_message,
29
+ max_tokens,
30
+ temperature,
31
+ top_p,
32
+ ):
33
  """
34
  チャットボットの応答を生成する関数
35
+ 元のコードと同じシグネチャを維持
36
  """
37
  try:
38
+ # 会話履歴を含むプロンプトを構築
 
 
 
39
  conversation = ""
40
  if system_message.strip():
41
  conversation += f"システム: {system_message}\n"
42
 
43
+ # 会話履歴を追加
44
  for user_msg, bot_msg in history:
45
  if user_msg:
46
  conversation += f"ユーザー: {user_msg}\n"
 
63
  # 一度に生成してからストリーミング風に出力
64
  outputs = model.generate(
65
  inputs,
66
+ max_new_tokens=max_tokens,
67
+ temperature=temperature,
68
+ top_p=top_p,
69
  do_sample=True,
70
  pad_token_id=tokenizer.eos_token_id,
71
  eos_token_id=tokenizer.eos_token_id,
 
92
 
93
  """
94
  Gradio ChatInterfaceを使用したシンプルなチャットボット
95
+ 元のコードと同じadditional_inputsを維持
96
  """
97
  demo = gr.ChatInterface(
98
  respond,
99
  title="🤖 Sarashina Chatbot",
100
  description="Sarashina2.2-3b-instruct モデルを使用した日本語チャットボットです。",
101
+ additional_inputs=[
102
+ gr.Textbox(
103
+ value="あなたは親切で知識豊富な日本語アシスタントです。ユーザーの質問に丁寧に答えてください。",
104
+ label="システムメッセージ",
105
+ lines=3
106
+ ),
107
+ gr.Slider(
108
+ minimum=1,
109
+ maximum=1024,
110
+ value=512,
111
+ step=1,
112
+ label="最大新規トークン数"
113
+ ),
114
+ gr.Slider(
115
+ minimum=0.1,
116
+ maximum=2.0,
117
+ value=0.7,
118
+ step=0.1,
119
+ label="Temperature (創造性)"
120
+ ),
121
+ gr.Slider(
122
+ minimum=0.1,
123
+ maximum=1.0,
124
+ value=0.95,
125
+ step=0.05,
126
+ label="Top-p (多様性制御)",
127
+ ),
128
+ ],
129
  theme=gr.themes.Soft(),
130
  examples=[
131
+ ["こんにちは!今日はどんなことを話しましょうか?"],
132
+ ["日本の文化について教えてください。"],
133
+ ["簡単なレシピを教えてもらえますか?"],
134
+ ["プログラミングについて質問があります。"],
135
  ],
136
  cache_examples=False,
137
  )