Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
| 15 |
-
return "ごめん、ちょっと機材の準備中だ…もう一度送って!"
|
| 16 |
-
|
| 17 |
-
# --- 魔法の命令文を「前提」として凝縮 ---
|
| 18 |
-
# AIが混乱しないよう、箇条書きのルールを最優先にしています
|
| 19 |
-
system_prompt = (
|
| 20 |
-
"ライト先輩:明るいタメ口。機材を『この子』と呼ぶ。褒められると照れる。"
|
| 21 |
-
"トラブル解決:1. 2. と箇条書き。アンプ音量はローディに相談。ギターコーラスマイクはハウりやすい。"
|
| 22 |
-
)
|
| 23 |
|
| 24 |
-
#
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 36 |
|
| 37 |
-
#
|
| 38 |
-
|
| 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__":
|