Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,78 +1,91 @@
|
|
1 |
-
|
2 |
-
import
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
"
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
"
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
"
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
"
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from transformers import AutoTokenizer, AutoModelForCausalLM
|
3 |
+
import torch
|
4 |
+
|
5 |
+
# 🧠 モデルロード(初回キャッシュで高速化)
|
6 |
+
@st.cache_resource
|
7 |
+
def load_model():
|
8 |
+
tokenizer = AutoTokenizer.from_pretrained("rinna/japanese-gpt-neox-3.6b")
|
9 |
+
model = AutoModelForCausalLM.from_pretrained("rinna/japanese-gpt-neox-3.6b")
|
10 |
+
return tokenizer, model
|
11 |
+
|
12 |
+
tokenizer, model = load_model()
|
13 |
+
|
14 |
+
# 📝 入力データ(4ケース)
|
15 |
+
cases = [
|
16 |
+
{
|
17 |
+
"user_input": """1歳時馬体重:430kg
|
18 |
+
体高:155.0cm
|
19 |
+
胸囲:180.0cm
|
20 |
+
管囲:20.8cm
|
21 |
+
生年月日:2023-03-15
|
22 |
+
測尺日:2024-06-10""",
|
23 |
+
"result_summary": """予測馬体重:480kg、ベストな馬体重
|
24 |
+
標準管囲との乖離:太い
|
25 |
+
過去の名馬:トーホウジャッカル 菊花賞G1芝3000m、オーソリティ アルゼンチン共和国杯G2芝2500m"""
|
26 |
+
},
|
27 |
+
{
|
28 |
+
"user_input": """1歳時馬体重:500kg
|
29 |
+
体高:152.0cm
|
30 |
+
胸囲:175.0cm
|
31 |
+
管囲:18.0cm
|
32 |
+
生年月日:2023-02-20
|
33 |
+
測尺日:2024-06-20""",
|
34 |
+
"result_summary": """予測馬体重:540kg、やや重め
|
35 |
+
標準管囲との乖離:細い
|
36 |
+
過去の名馬:サクセスブロッケン フェブラリーS G1ダ1600m、スマートファルコン 東京大賞典G1ダ2000m"""
|
37 |
+
},
|
38 |
+
{
|
39 |
+
"user_input": """1歳時馬体重:380kg
|
40 |
+
体高:158.0cm
|
41 |
+
胸囲:172.0cm
|
42 |
+
管囲:20.2cm
|
43 |
+
生年月日:2023-04-10
|
44 |
+
測尺日:2024-06-01""",
|
45 |
+
"result_summary": """予測馬体重:455kg、成長余地あり
|
46 |
+
標準管囲との乖離:標準
|
47 |
+
過去の名馬:ダノンザキッド ホープフルS G1芝2000m、ジャスタウェイ 安田記念G1芝1600m"""
|
48 |
+
},
|
49 |
+
{
|
50 |
+
"user_input": """1歳時馬体重:470kg
|
51 |
+
体高:164.5cm
|
52 |
+
胸囲:179.0cm
|
53 |
+
管囲:21.5cm
|
54 |
+
生年月日:2023-03-05
|
55 |
+
測尺日:2024-07-01""",
|
56 |
+
"result_summary": """予測馬体重:510kg、完成度高め
|
57 |
+
標準管囲との乖離:非常に太い
|
58 |
+
過去の名馬:キズナ 東京優駿G1芝2400m、ハーツクライ 有馬記念G1芝2500m"""
|
59 |
+
}
|
60 |
+
]
|
61 |
+
|
62 |
+
# ✨ コメント生成関数
|
63 |
+
def generate_comment(prompt):
|
64 |
+
full_prompt = f"""以下は、一���馬主の募集馬についてのAI総括コメントです。
|
65 |
+
|
66 |
+
ユーザーが入力した項目:
|
67 |
+
{prompt["user_input"]}
|
68 |
+
|
69 |
+
予測した結果:
|
70 |
+
{prompt["result_summary"]}
|
71 |
+
|
72 |
+
この馬について得られた結果を総括したうえで、ポジティブな言葉で締めくくってください。
|
73 |
+
コメント:"""
|
74 |
+
|
75 |
+
input_ids = tokenizer.encode(full_prompt, return_tensors="pt")
|
76 |
+
output = model.generate(input_ids, max_new_tokens=120, do_sample=True, temperature=0.7)
|
77 |
+
decoded = tokenizer.decode(output[0], skip_special_tokens=True)
|
78 |
+
return decoded.split("コメント:")[-1].strip()
|
79 |
+
|
80 |
+
# 🌐 Streamlit UI
|
81 |
+
st.title("🐴 募集馬AIコメント生成(デモ)")
|
82 |
+
|
83 |
+
if st.button("🎯 コメントを一括生成"):
|
84 |
+
for i, case in enumerate(cases, 1):
|
85 |
+
with st.spinner(f"Case {i} を生成中..."):
|
86 |
+
comment = generate_comment(case)
|
87 |
+
st.markdown(f"### 🐴 Case {i}")
|
88 |
+
st.markdown(f"**📥 入力**\n```\n{case['user_input']}\n```\n")
|
89 |
+
st.markdown(f"**📊 予測結果**\n```\n{case['result_summary']}\n```\n")
|
90 |
+
st.markdown(f"**📝 コメント**\n> {comment}")
|
91 |
+
st.markdown("---")
|