2z299 commited on
Commit
10f0a80
·
verified ·
1 Parent(s): 5726488

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -34
app.py CHANGED
@@ -13,8 +13,7 @@ def generate_text(
13
  temperature=0.7,
14
  top_k=50,
15
  top_p=0.95,
16
- repetition_penalty=1.0,
17
- num_return_sequences=1
18
  ):
19
  """ユーザー入力に基づいてテキストを生成し、元のテキストに追加する関数"""
20
  try:
@@ -34,12 +33,12 @@ def generate_text(
34
  top_k=top_k,
35
  top_p=top_p,
36
  repetition_penalty=repetition_penalty,
37
- num_return_sequences=num_return_sequences,
38
  pad_token_id=generator.tokenizer.eos_token_id,
39
  truncation=True # 明示的に切り捨てを有効にする
40
  )
41
 
42
- # 複数系列が生成された場合は、最初の系列を採用し、元のテキストより後の部分のみを抽出
43
  generated_text = result[0]['generated_text']
44
  new_text = generated_text[len(input_text):]
45
 
@@ -56,45 +55,25 @@ with gr.Blocks() as demo:
56
  # 単一のテキストボックス
57
  input_text = gr.Textbox(label="テキストを入力してください", placeholder="ここにテキストを入力...", lines=10)
58
 
59
- # パラメータの設定UI
60
- with gr.Row():
61
- max_length_slider = gr.Slider(minimum=10, maximum=300, value=100, step=10, label="追加する単語数")
62
- temperature_slider = gr.Slider(minimum=0.1, maximum=1.5, value=0.7, step=0.1, label="創造性(温度)")
63
- with gr.Row():
64
- top_k_slider = gr.Slider(minimum=0, maximum=100, value=50, step=1, label="top_k")
65
- top_p_slider = gr.Slider(minimum=0.0, maximum=1.0, value=0.95, step=0.05, label="top_p")
66
- with gr.Row():
67
- repetition_penalty_slider = gr.Slider(minimum=1.0, maximum=2.0, value=1.0, step=0.1, label="繰り返しペナルティ")
68
- num_return_sequences_slider = gr.Slider(minimum=1, maximum=5, value=1, step=1, label="生成する系列数")
69
 
70
- # ボタンを横並びに配置
71
- with gr.Row():
72
- generate_btn = gr.Button("続きを生成", variant="primary")
73
- clear_btn = gr.Button("クリア")
74
 
75
  # イベントの設定
76
  generate_btn.click(
77
  fn=generate_text,
78
- inputs=[input_text, max_length_slider, temperature_slider, top_k_slider, top_p_slider, repetition_penalty_slider, num_return_sequences_slider],
79
  outputs=input_text
80
  )
81
 
82
  clear_btn.click(lambda: "", None, input_text)
83
-
84
- # 使い方の説明
85
- gr.Markdown("""
86
- ## 使い方
87
- 1. テキストボックスに続きを生成したい文章を入力します
88
- 2. 生成パラメータ(追加する単語数、創造性、top_k、top_p、繰り返しペナルティ、生成する系列数)を調整します
89
- 3. 「続きを生成」ボタンをクリックすると、入力したテキストの続きが生成され、元のテキストに追加されます
90
- 4. 「クリア」ボタンを押すと、テキストボックスの内容がクリアされます
91
- 5. 満足のいく結果が得られるまで、繰り返し「続きを生成」ボタンを押して文章を発展させることができます
92
-
93
- ## ヒント
94
- - 短い文章から始めて徐々に発展させると良い結果が得られます
95
- - 創造性(温度)を高くすると予測不可能な生成結果に、低くすると安定した結果になります
96
- - top_k や top_p、繰り返しペナルティなども状況に応じて調整してみてください
97
- """)
98
 
99
  # アプリの起動
100
  demo.launch()
 
13
  temperature=0.7,
14
  top_k=50,
15
  top_p=0.95,
16
+ repetition_penalty=1.0
 
17
  ):
18
  """ユーザー入力に基づいてテキストを生成し、元のテキストに追加する関数"""
19
  try:
 
33
  top_k=top_k,
34
  top_p=top_p,
35
  repetition_penalty=repetition_penalty,
36
+ num_return_sequences=1, # 常に1つの系列だけを生成
37
  pad_token_id=generator.tokenizer.eos_token_id,
38
  truncation=True # 明示的に切り捨てを有効にする
39
  )
40
 
41
+ # 生成された系列から元のテキストより後の部分のみを抽出
42
  generated_text = result[0]['generated_text']
43
  new_text = generated_text[len(input_text):]
44
 
 
55
  # 単一のテキストボックス
56
  input_text = gr.Textbox(label="テキストを入力してください", placeholder="ここにテキストを入力...", lines=10)
57
 
58
+ # パラメータの設定UI - すべて縦に一列で配置
59
+ max_length_slider = gr.Slider(minimum=10, maximum=300, value=100, step=10, label="追加する単語数")
60
+ temperature_slider = gr.Slider(minimum=0.1, maximum=1.5, value=0.7, step=0.1, label="創造性(温度)")
61
+ top_k_slider = gr.Slider(minimum=0, maximum=100, value=50, step=1, label="top_k")
62
+ top_p_slider = gr.Slider(minimum=0.0, maximum=1.0, value=0.95, step=0.05, label="top_p")
63
+ repetition_penalty_slider = gr.Slider(minimum=1.0, maximum=2.0, value=1.0, step=0.1, label="繰り返しペナルティ")
 
 
 
 
64
 
65
+ # ボタンも縦に配置
66
+ generate_btn = gr.Button("続きを生成", variant="primary")
67
+ clear_btn = gr.Button("クリア")
 
68
 
69
  # イベントの設定
70
  generate_btn.click(
71
  fn=generate_text,
72
+ inputs=[input_text, max_length_slider, temperature_slider, top_k_slider, top_p_slider, repetition_penalty_slider],
73
  outputs=input_text
74
  )
75
 
76
  clear_btn.click(lambda: "", None, input_text)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
 
78
  # アプリの起動
79
  demo.launch()