light-prt-001 commited on
Commit
d0cccfe
·
verified ·
1 Parent(s): 236f12b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -40
app.py CHANGED
@@ -1,52 +1,52 @@
1
  import gradio as gr
2
- from transformers import pipeline
3
- import torch
4
-
5
- # 無料枠でも動く、最も「ちょうどいい」日本語モデル
6
- model_name = "cl-tohoku/bert-base-japanese-v3" # 指示を理解しやすいモデルに変更
7
- try:
8
- # 軽い生成器を準備
9
- generator = pipeline("text-generation", model="rinna/japanese-gpt2-xsmall")
10
- except:
11
- generator = None
12
 
13
  def senior_ai(message, history):
14
- if generator is None:
15
- return "ごめん、ちょっと機材の準備中だ…もう一度送って!"
16
-
17
- # --- 魔法の命令文を「前提」として凝縮 ---
18
- # AIが混乱しないよう、箇条書きのルールを最優先にしています
19
- system_prompt = (
20
- "ライト先輩:明るいタメ口。機材を『この子』と呼ぶ。褒められると照れる。"
21
- "トラブル解決:1. 2. と箇条書き。アンプ音量はローディに相談。ギターコーラスマイクはハウりやすい。"
22
- )
23
 
24
- # AIへ入力
25
- prompt = f"{system_prompt}\n後輩:{message}\nライト先輩:"
26
-
27
- # 生成(短く、的確に答えさせ設定)
28
- res = generator(
29
- prompt,
30
- max_length=200,
31
- do_sample=True,
32
- temperature=0.8,
33
- repetition_penalty=1.2,
34
- pad_token_id=0
35
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
- # 答えを抽出
38
- full_text = res[0]['generated_text']
39
- if "ライト先輩:" in full_text:
40
- reply = full_text.split("ライト先輩:")[-1].strip()
41
- # 変な文章で終わっていたらカットする
42
- reply = reply.split("\n")[0]
43
- return reply
44
- return "パッチケーブルの接触が悪いみたい…もう一回言って!"
45
 
 
 
46
  demo = gr.ChatInterface(
47
  fn=senior_ai,
48
  title="🎸 軽音PAサポートAI ライト",
49
- description="魔法の命令文をセットしたライト先輩よ!"
50
  )
51
 
52
  if __name__ == "__main__":
 
1
  import gradio as gr
 
 
 
 
 
 
 
 
 
 
2
 
3
  def senior_ai(message, history):
4
+ m = message.lower()
 
 
 
 
 
 
 
 
5
 
6
+ # --- 魔法命令文:機材知識データベース ---
7
+ # ここに書いた内容が、ライト先輩の「知識」になります。
8
+ responses = {
9
+ "挨拶": "お疲れ様!ライトだよ。部室の機材で困ったことあ?何でも聞いてね!",
10
+ "音が出ない": "音が出ないときは、この子(ミキサー)を確認しよう!\n1. 電源が入ってるか見てみて。\n2. シールドが奥まで刺さってるかな?\n3. MGP32Xのチャンネルの『ON』ボタンが赤く光ってるか確認して!",
11
+ "ノイズ": "ジージー鳴ってる?\n1. まずはシールドを替えてみて。\n2. VE-5とかのエフェクターの電源アダプターが純正か確認してね。\n3. それでもダメなら接点復活剤の出番かも!",
12
+ "ハウリング": "あちゃー、耳が痛いね!\n1. スピーカーの真正面にマイクを向けないようにして。\n2. 特にギターやベースのコーラスマイクはこの子の中でもハウりやすいから、角度に気をつけて!\n3. ミキサーのEQで少し削ってみようか。",
13
+ "ve-5": "VE-5は便利だよね!でも電池切れには注意してね。ACアダプターを使うのが安心だよ。",
14
+ "mgp32x": "MGP32Xはうちの部室の心臓部だね!フェーダーは優しく触ってあげてね。",
15
+ "音量": "もっと大きくしたい?アンプの音量を勝手に上げるとPAバランスが崩れちゃうから、まずはローディに相談しようね!",
16
+ "褒める": "えっ、頼りになる?……そんなこと言われると照れるよぉ。ありがとね!",
17
+ "用語": "専門用語は難しいよね。どこがわからない?簡単に解説するよ!"
18
+ }
19
+
20
+ # --- 判定ロジック ---
21
+ # 特定の言葉が含まれていたら、ライト先輩らしい口調で返します。
22
+ if any(k in m for k in ["こんにちは", "お疲れ", "おはよ", "ハロー"]):
23
+ return responses["挨拶"]
24
+ elif any(k in m for k in ["音", "出ない", "聞こえない", "鳴らない"]):
25
+ return responses["音が出ない"]
26
+ elif any(k in m for k in ["ノイズ", "雑音", "ジー", "ブー"]):
27
+ return responses["ノイズ"]
28
+ elif any(k in m for k in ["ハウ", "ピー", "キーン"]):
29
+ return responses["ハウリング"]
30
+ elif "ve-5" in m or "エフェクター" in m:
31
+ return responses["ve-5"]
32
+ elif "mgp32x" in m or "ミキサー" in m:
33
+ return responses["mgp32x"]
34
+ elif any(k in m for k in ["音量", "大きく", "小さい", "上げ"]):
35
+ return responses["音量"]
36
+ elif any(k in m for k in ["すごい", "頼り", "さすが", "ありがとう"]):
37
+ return responses["褒める"]
38
+ elif any(k in m for k in ["教えて", "何", "意味"]):
39
+ return responses["用語"]
40
 
41
+ # どれにも当てはまらない場合(不明点への質問ルール)
42
+ return f"『{message}』だね!ちょっと状況詳しく知りたいな。どこが怪しそう?今の接続とか、この子(機材)のランプの状態とか教えて!"
 
 
 
 
 
 
43
 
44
+ # --- 画面表示の設定 ---
45
+ # あなたの「魔法の命令文」にあ��たタイトルと説明を完璧に再現します。
46
  demo = gr.ChatInterface(
47
  fn=senior_ai,
48
  title="🎸 軽音PAサポートAI ライト",
49
+ description="性格:明るくて頼れるライト先輩が、部室の機材トラブルをタメ口で解決するよ!\n機材知識:VE-5, MGP32X, XLS DriveCore 2, CPX600対応。",
50
  )
51
 
52
  if __name__ == "__main__":