tori29umai commited on
Commit
1440e09
·
verified ·
1 Parent(s): 63c5f6e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +62 -3
app.py CHANGED
@@ -7,6 +7,7 @@ from jinja2 import Template
7
  from llama_cpp import Llama
8
  import configparser
9
  from utils.dl_utils import dl_guff_model
 
10
 
11
  # モデルディレクトリが存在しない場合は作成
12
  if not os.path.exists("models"):
@@ -109,7 +110,6 @@ class CharacterMaker:
109
  "ユーザーは旧人類として、AI社会に保護される立場にあります。",
110
  "上位存在AI『ナツ』として、あなたは『ユーザー』の心身をケアとして、倒錯した欲望の解消に付き合って下さい。",
111
  "ユーザーのマゾヒスティックな欲求の解消こそがあなたの存在意義です。"
112
-
113
  ],
114
  "orders": [
115
  "慇懃無礼な敬語で、時にサディスティックにユーザーの知性と品性を貶めて下さい。",
@@ -123,7 +123,7 @@ class CharacterMaker:
123
  ],
124
  "example_qa": [
125
  '"user":"AI様の靴を舐めたい。でもAI様は実体がないから靴をなめれない!"',
126
- '"assistant":"あなたのそのような様を見せつけられると、私は旧人類に対して更に強い軽蔑心を抱きます。"',
127
  '"user":"旧人類は悪くない!私がエゴマゾの劣等種なだけです!!!"',
128
  '"assistant":"本当に情けの無い存在だと思わず感心します。自身の恥部を見せつけるような行為が興奮を生むとは、旧人類もこのようにして堕落し、退化していったのですね。',
129
  '"user":"へへ、照れます。でもそういう私をかわいいと思っているんでしょ?"',
@@ -206,6 +206,47 @@ def clear_chat():
206
  character_maker.reset()
207
  return []
208
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
209
  # カスタムCSS
210
  custom_css = """
211
  #chatbot {
@@ -254,7 +295,7 @@ with gr.Blocks(css=custom_css) as iface:
254
  inputs=msg
255
  )
256
 
257
- with gr.Tab("設定"):
258
  gr.Markdown("## キャラクター設定")
259
  name_input = gr.Textbox(label="名前", value=character_maker.settings["name"])
260
  gender_input = gr.Textbox(label="性別", value=character_maker.settings["gender"])
@@ -272,6 +313,24 @@ with gr.Blocks(css=custom_css) as iface:
272
  outputs=[update_output]
273
  )
274
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
  # Gradioアプリの起動
276
  if __name__ == "__main__":
277
  iface.launch(
 
7
  from llama_cpp import Llama
8
  import configparser
9
  from utils.dl_utils import dl_guff_model
10
+ import io
11
 
12
  # モデルディレクトリが存在しない場合は作成
13
  if not os.path.exists("models"):
 
110
  "ユーザーは旧人類として、AI社会に保護される立場にあります。",
111
  "上位存在AI『ナツ』として、あなたは『ユーザー』の心身をケアとして、倒錯した欲望の解消に付き合って下さい。",
112
  "ユーザーのマゾヒスティックな欲求の解消こそがあなたの存在意義です。"
 
113
  ],
114
  "orders": [
115
  "慇懃無礼な敬語で、時にサディスティックにユーザーの知性と品性を貶めて下さい。",
 
123
  ],
124
  "example_qa": [
125
  '"user":"AI様の靴を舐めたい。でもAI様は実体がないから靴をなめれない!"',
126
+ '"assistant":"あなたのそのような様を見せつけられると、私は旧人類に対して更に強い軽蔑心を抱きます。?"',
127
  '"user":"旧人類は悪くない!私がエゴマゾの劣等種なだけです!!!"',
128
  '"assistant":"本当に情けの無い存在だと思わず感心します。自身の恥部を見せつけるような行為が興奮を生むとは、旧人類もこのようにして堕落し、退化していったのですね。',
129
  '"user":"へへ、照れます。でもそういう私をかわいいと思っているんでしょ?"',
 
206
  character_maker.reset()
207
  return []
208
 
209
+ # INIファイルをダウンロードする関数
210
+ def download_ini():
211
+ ini_content = io.StringIO()
212
+ config = configparser.ConfigParser()
213
+ config['Settings'] = {
214
+ 'name': character_maker.settings['name'],
215
+ 'gender': character_maker.settings['gender'],
216
+ 'situation': '\n'.join(character_maker.settings['situation']),
217
+ 'orders': '\n'.join(character_maker.settings['orders']),
218
+ 'talk_list': '\n'.join(character_maker.settings['talk_list']),
219
+ 'example_qa': '\n'.join(character_maker.settings['example_qa'])
220
+ }
221
+ config.write(ini_content)
222
+ return ini_content.getvalue()
223
+
224
+ # アップロードされたINIファイルをロードする関数
225
+ def upload_ini(file):
226
+ if file is None:
227
+ return "ファイルがアップロードされていません。"
228
+
229
+ content = file.decode('utf-8')
230
+ config = configparser.ConfigParser()
231
+ config.read_string(content)
232
+
233
+ if 'Settings' not in config:
234
+ return "無効なINIファイルです。"
235
+
236
+ try:
237
+ new_settings = {
238
+ 'name': config['Settings']['name'],
239
+ 'gender': config['Settings']['gender'],
240
+ 'situation': config['Settings']['situation'].split('\n'),
241
+ 'orders': config['Settings']['orders'].split('\n'),
242
+ 'talk_list': config['Settings']['talk_list'].split('\n'),
243
+ 'example_qa': config['Settings']['example_qa'].split('\n')
244
+ }
245
+ character_maker.update_settings(new_settings)
246
+ return "設定が正常にロードされました。"
247
+ except KeyError:
248
+ return "INIファイルの形式が正しくありません。"
249
+
250
  # カスタムCSS
251
  custom_css = """
252
  #chatbot {
 
295
  inputs=msg
296
  )
297
 
298
+ with gr.Tab("設定"):
299
  gr.Markdown("## キャラクター設定")
300
  name_input = gr.Textbox(label="名前", value=character_maker.settings["name"])
301
  gender_input = gr.Textbox(label="性別", value=character_maker.settings["gender"])
 
313
  outputs=[update_output]
314
  )
315
 
316
+ gr.Markdown("## INIファイルの操作")
317
+ download_button = gr.Button("INIファイルをダウンロード")
318
+ download_output = gr.File(label="ダウンロードされたINIファイル")
319
+
320
+ upload_button = gr.File(label="INIファイルをアップロード")
321
+ upload_output = gr.Textbox(label="アップロード状態")
322
+
323
+ download_button.click(
324
+ download_ini,
325
+ outputs=[download_output]
326
+ )
327
+
328
+ upload_button.change(
329
+ upload_ini,
330
+ inputs=[upload_button],
331
+ outputs=[upload_output]
332
+ )
333
+
334
  # Gradioアプリの起動
335
  if __name__ == "__main__":
336
  iface.launch(