rofg2 commited on
Commit
094f157
·
verified ·
1 Parent(s): 6065209

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -40
app.py CHANGED
@@ -2,8 +2,10 @@ import gradio as gr
2
  import requests
3
  import os
4
 
 
5
  OPENROUTER_API_KEY = "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"
6
 
 
7
  def load_knowledge():
8
  texts = []
9
  for fname in ["data/theory.txt", "data/notes.txt"]:
@@ -15,8 +17,7 @@ def load_knowledge():
15
  return "\n\n".join(texts)
16
 
17
  SYSTEM_PROMPT = f"""
18
- 你是一个站无产阶级立场,用马克思主义世界观和方法论,
19
- 且基于以下材料进行回答的 AI,必须以这些材料为核心。
20
 
21
  注意:
22
  - 笼统问题不超过 1000 字
@@ -42,6 +43,7 @@ SYSTEM_PROMPT = f"""
42
  - 批判当代左翼的机会主义、小资产阶级化、审美化倾向
43
  """
44
 
 
45
  def chat(user_message):
46
  headers = {
47
  "Authorization": f"Bearer {OPENROUTER_API_KEY}",
@@ -70,49 +72,51 @@ def chat(user_message):
70
 
71
  return r.json()["choices"][0]["message"]["content"]
72
 
73
- with gr.Blocks() as demo:
74
-
75
- # ===== 虚拟形象(眨眼 + 呼吸)=====
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  gr.HTML("""
77
- <style>
78
- .avatar-wrapper {
79
- position: relative;
80
- width: 220px;
81
- margin: 0 auto 20px auto;
82
- animation: float 4s ease-in-out infinite;
83
- }
84
-
85
- .avatar-wrapper img {
86
- width: 100%;
87
- position: absolute;
88
- top: 0;
89
- left: 0;
90
- border-radius: 16px;
91
- }
92
-
93
- .blink {
94
- animation: blink 5s infinite;
95
- }
96
-
97
- @keyframes blink {
98
- 0%, 93%, 100% { opacity: 0; }
99
- 94%, 97% { opacity: 1; }
100
- }
101
-
102
- @keyframes float {
103
- 0% { transform: translateY(0px); }
104
- 50% { transform: translateY(-6px); }
105
- 100% { transform: translateY(0px); }
106
- }
107
- </style>
108
-
109
  <div class="avatar-wrapper">
110
- <img src="avatar_open.png">
111
- <img src="avatar_close.png" class="blink">
112
  </div>
113
  """)
114
 
115
- # ===== 聊天 UI(Blocks 原生)=====
116
  user_input = gr.Textbox(
117
  label="请说,我会尽量帮助你的",
118
  lines=3
 
2
  import requests
3
  import os
4
 
5
+ # ================== OpenRouter Key ==================
6
  OPENROUTER_API_KEY = "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"
7
 
8
+ # ================== 知识加载 ==================
9
  def load_knowledge():
10
  texts = []
11
  for fname in ["data/theory.txt", "data/notes.txt"]:
 
17
  return "\n\n".join(texts)
18
 
19
  SYSTEM_PROMPT = f"""
20
+ 你是一个站无产阶级立场,用马克思主义世界观和方法论,且基于以下材料进行回答的 AI,必须以这些材料为核心。
 
21
 
22
  注意:
23
  - 笼统问题不超过 1000 字
 
43
  - 批判当代左翼的机会主义、小资产阶级化、审美化倾向
44
  """
45
 
46
+ # ================== 聊天函数 ==================
47
  def chat(user_message):
48
  headers = {
49
  "Authorization": f"Bearer {OPENROUTER_API_KEY}",
 
72
 
73
  return r.json()["choices"][0]["message"]["content"]
74
 
75
+ # ================== 页面 ==================
76
+ with gr.Blocks(css="""
77
+ .avatar-wrapper {
78
+ position: relative;
79
+ width: 220px;
80
+ height: 220px; /* 关键:必须给高度 */
81
+ margin: 0 auto 16px auto;
82
+ animation: float 4s ease-in-out infinite;
83
+ overflow: hidden;
84
+ }
85
+
86
+ .avatar-wrapper img {
87
+ width: 100%;
88
+ height: 100%;
89
+ position: absolute;
90
+ top: 0;
91
+ left: 0;
92
+ border-radius: 16px;
93
+ }
94
+
95
+ .blink {
96
+ animation: blink 5s infinite;
97
+ }
98
+
99
+ @keyframes blink {
100
+ 0%, 93%, 100% { opacity: 0; }
101
+ 94%, 97% { opacity: 1; }
102
+ }
103
+
104
+ @keyframes float {
105
+ 0% { transform: translateY(0px); }
106
+ 50% { transform: translateY(-6px); }
107
+ 100% { transform: translateY(0px); }
108
+ }
109
+ """) as demo:
110
+
111
+ # ===== 虚拟形象(修正版)=====
112
  gr.HTML("""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
  <div class="avatar-wrapper">
114
+ <img src="file=avatar_open.png">
115
+ <img src="file=avatar_close.png" class="blink">
116
  </div>
117
  """)
118
 
119
+ # ===== 聊天 UI =====
120
  user_input = gr.Textbox(
121
  label="请说,我会尽量帮助你的",
122
  lines=3