light-prt-001 commited on
Commit
3db8566
·
verified ·
1 Parent(s): e28a1e4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -58
app.py CHANGED
@@ -1,68 +1,42 @@
1
  import gradio as gr
 
 
2
 
3
- def senior_ai(message, history):
4
- m = message.lower()
5
-
6
- # 1. 挨拶・雑談系
7
- if any(k in m for k in ["こんにちは", "お疲れ", "おはよ", "ライト"]):
8
- return "お疲れ様!ライトだよ。今日も部室でリハ?機材の調子が悪かったら、この子(機材)たちの声を代弁するから何でも聞いてね!"
9
-
10
- # 2. ミキサー(MGP32X)の深い悩み
11
- if "信号" in m or "メーター" in m:
12
- if "来ない" in m or "振れない" in m:
13
- return (
14
- "ミキサーに信号が来ないか…よし、一緒にチェックしよう!\n"
15
- "1. まず、マイクや楽器が『Gain(ゲイン)』つまみで適切に増幅されてるか確認して。\n"
16
- "2. チャンネルの『ON』ボタンは押してる?赤く光ってないと、この子(ミキサー)は動いてくれないよ。\n"
17
- "3. ファンタム電源(+48V)が必要なコンデンサーマイクじゃないかも確認してみて!"
18
- )
19
- return "MGP32Xのメーターがしっかり振れてれば、ミキサーの中までは音が届いてる証拠だよ!"
20
-
21
- # 3. スピーカー・音が出ない(複雑な状況)
22
- if "スピーカー" in m or "出ない" in m:
23
- if "信号は来てる" in m or "ミキサーには来てる" in m:
24
- return (
25
- "ミキサーまでは来てるのにスピーカーから出ないパターンだね。よし、出口を調べよう!\n"
26
- "1. ミキサーの『STEREO』フェーダー(一番右のやつ)は上がってる?\n"
27
- "2. パワーアンプ(XLSとかCPX)の電源は入ってるかな?\n"
28
- "3. アンプのボリュームつまみが最小になってないか確認して。最後に電源を入れるのがコツだよ!"
29
- )
30
- return (
31
- "音が出ない時は、まずどこまで音が届いてるか切り分けよう!\n"
32
- "1. ミキサーのランプは光ってる?\n"
33
- "2. シールドの断線がないか、予備の『この子(シールド)』に替えてみて。\n"
34
- "3. 楽器自体のボリュームが0になってないかも意外と盲点だよ!"
35
- )
36
-
37
- # 4. ハウリング(特定の場所への配慮)
38
- if any(k in m for k in ["ハウ", "ピー", "キーン"]):
39
- res = "あちゃー、耳が痛いね!\n1. スピーカーとマイクの距離を離してみて。\n2. 特にギターとベースのコーラスマイクはハウりやすいから、立ち位置を少しズラすのがコツだよ!"
40
- if "コーラス" in m:
41
- res += "\n3. コーラスマイクは特に感度が高いから、ミキサーのLowを少しカットすると落ち着くかも。"
42
- return res
43
 
44
- # 5. 音量・ローディ相談(鉄則)
45
- if any(k in m for k in ["音量", "大きく", "上げい"]):
46
- return "もっと爆音でやりたい気持ちはわかるけど、アンプの音量を勝手にいじると外音(客席の音)がグチャグチャになっちゃうんだ。まずは『ローディ』に相談して、全体のバランスを見てからにしようね!"
47
-
48
- # 6. 褒めると照れる
49
- if any(k in m for k in ["すごい", "頼", "さすが", "ありがとう"]):
50
- return "えっ、そんなに褒められたら照れるよぉ…!あはは、機材のことなら私に任せて後輩のライブ、成功させたいもんね!"
51
-
52
- # デフォルトの回答(魔法の命令文の「不明点を質問する」ルールを徹底)
53
- return (
54
- f"『{message}』だね!なるほど…ちょっと判断迷うな。もっと詳しく教えて!\n"
55
- "1. 今、どの機材のランプが何色に光ってる?\n"
56
- "2. 接続の順番を入り口から教えてくれるかな?\n"
57
- "それがわかれば、ライト先輩がビシッと解決しちゃうよ!"
58
  )
59
 
60
- # 画面設定
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  demo = gr.ChatInterface(
62
- fn=senior_ai,
63
  title="🎸 軽音PAサポートAI ライト",
64
- description="【性格】明るく頼れる先輩(タメ口)【機材知識】VE-5, MGP32X, XLS, CPX600等"
65
  )
66
 
67
  if __name__ == "__main__":
68
- demo.launch()
 
1
  import gradio as gr
2
+ from huggingface_hub import InferenceClient
3
+ import os
4
 
5
+ # 【ここがポイント!】金庫(Secrets)に入れたトークンを自動で読み込みます
6
+ token = os.getenv("HF_TOKEN")
7
+ client = InferenceClient("google/gemma-2-9b-it", token=token)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
 
9
+ def senior_ai(message, history):
10
+ # あなの「魔法の命令文」をすべてAIの脳みそに叩き込みます
11
+ system_message = (
12
+ "あなたは『軽音PAサポートAI ライト』。一人称は『私』。明るくて頼れる軽音部の先輩として、タメ口で明るく話してね。"
13
+ "機材を『この子』と呼び、褒められたら照れること。"
14
+ "【解決ルール】1.必ず箇条書きでステップ順に提示。2.専門用語は初心者にわかく解説。3.不明な点は『どこ怪しそ?』と質問。4.アンプ音量は『ローディ』に相談させる。"
15
+ "機材】VE-5(エフェクター), MGP32X(ミキサー), XLS DriveCore 2(返し用アンプ), CPX600(モニター用アンプ)。"
16
+ "【知識】ギター・ベースのコーラスマイクは特にハウりやすい。ミキサーはボーカル、ドラム、トークバック等を調節可能。"
 
 
 
 
 
 
17
  )
18
 
19
+ messages = [{"role": "system", "content": system_message}]
20
+ for h in history:
21
+ messages.append({"role": "user", "content": h[0]})
22
+ messages.append({"role": "assistant", "content": h[1]})
23
+ messages.append({"role": "user", "content": message})
24
+
25
+ try:
26
+ response = ""
27
+ for msg in client.chat_completion(messages, max_tokens=800, stream=True, temperature=0.7):
28
+ token_str = msg.choices[0].delta.content
29
+ response += token_str
30
+ return response
31
+ except Exception as e:
32
+ return f"ごめん!機材(API)の接続がうまくいかないみたい。Settingsで『HF_TOKEN』が正しく設定されてるか確認してみて! (Error: {e})"
33
+
34
+ # 画面のデザイン
35
  demo = gr.ChatInterface(
36
+ fn=senior_ai,
37
  title="🎸 軽音PAサポートAI ライト",
38
+ description="何でも聞いてね。",
39
  )
40
 
41
  if __name__ == "__main__":
42
+ demo.launch()