GOGO198 commited on
Commit
9e5ab6c
·
verified ·
1 Parent(s): d19b751

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -43
app.py CHANGED
@@ -14,18 +14,14 @@ CACHE_DIR = "/home/user/cache"
14
  os.makedirs(CACHE_DIR, exist_ok=True)
15
 
16
  # 减少内存占用
17
- # os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:32"
18
- # torch.set_num_threads(1)
19
  os.environ["OMP_NUM_THREADS"] = "2"
20
  os.environ["TOKENIZERS_PARALLELISM"] = "false" # 防止tokenizer内存泄漏
21
 
22
- # 全局变量 - 移除了clip_model和clip_processor
23
  index = None
24
  metadata = None
25
 
26
- def respond(message):
27
- return {"response": f"Echo: {message}"} # 输出需与 API 响应格式一致
28
-
29
  def load_resources():
30
  """加载所有必要资源(768维专用)"""
31
  # 清理残留锁文件
@@ -128,7 +124,7 @@ def predict(vector):
128
  print(error_msg)
129
  return "处理错误,请重试或联系管理员"
130
 
131
- # 创建简化接口
132
  with gr.Blocks() as demo:
133
  gr.Markdown("## 🛍 电商智能客服系统 (768维专用)")
134
  gr.Markdown("**使用CLIP-vit-large-patch14模型 | 向量维度: 768**")
@@ -148,53 +144,28 @@ with gr.Blocks() as demo:
148
  inputs=vector_input,
149
  outputs=output
150
  )
 
 
 
 
 
 
 
 
151
 
152
  # 启动应用
153
  if __name__ == "__main__":
154
- # 预加载资源
155
  if index is None or metadata is None:
156
- print("🚀 启动前预加载资源...")
157
- try:
158
- load_resources()
159
- except Exception as e:
160
- print(f"⛔ 资源加载失败: {str(e)}")
161
- sys.exit(1)
162
-
163
- # 确保缓存目录存在
164
- # import pathlib
165
- # pathlib.Path(CACHE_DIR).mkdir(parents=True, exist_ok=True)
166
-
167
- try:
168
- dummy_vector = [0.1] * 768
169
- predict([dummy_vector])
170
- except:
171
- pass
172
 
 
173
  print("="*50)
174
  print("Space启动完成 | 准备接收请求")
175
  print(f"索引维度: {index.d if index else '未加载'}")
176
  print(f"元数据记录: {len(metadata) if metadata is not None else 0}")
177
  print("="*50)
178
 
179
- # 使用 Gradio 接口暴露 API 端点(自动生成 /api/predict)
180
- # demo = gr.Interface(
181
- # fn=respond,
182
- # inputs="text",
183
- # outputs="json",
184
- # api_name="predict",
185
- # live=False
186
- # )
187
-
188
- with gr.Blocks() as app:
189
- input_text = gr.Textbox(label="Input")
190
- output_text = gr.JSON(label="Output")
191
- input_text.change(
192
- fn=respond,
193
- inputs=input_text,
194
- outputs=output_text,
195
- api_name="predict" # 显式声明 API 名称
196
- )
197
-
198
  demo.launch(
199
  server_name="0.0.0.0",
200
  server_port=7860,
 
14
  os.makedirs(CACHE_DIR, exist_ok=True)
15
 
16
  # 减少内存占用
 
 
17
  os.environ["OMP_NUM_THREADS"] = "2"
18
  os.environ["TOKENIZERS_PARALLELISM"] = "false" # 防止tokenizer内存泄漏
19
 
20
+ # 全局变量
21
  index = None
22
  metadata = None
23
 
24
+ # 加载资源函数(保持不变)
 
 
25
  def load_resources():
26
  """加载所有必要资源(768维专用)"""
27
  # 清理残留锁文件
 
124
  print(error_msg)
125
  return "处理错误,请重试或联系管理员"
126
 
127
+ # **合并后的 Blocks 实例**
128
  with gr.Blocks() as demo:
129
  gr.Markdown("## 🛍 电商智能客服系统 (768维专用)")
130
  gr.Markdown("**使用CLIP-vit-large-patch14模型 | 向量维度: 768**")
 
144
  inputs=vector_input,
145
  outputs=output
146
  )
147
+
148
+ # 显式暴露 API 端点
149
+ gr.Interface(
150
+ fn=predict,
151
+ inputs=vector_input,
152
+ outputs=output,
153
+ api_name="predict" # 显式声明 API 名称
154
+ )
155
 
156
  # 启动应用
157
  if __name__ == "__main__":
 
158
  if index is None or metadata is None:
159
+ load_resources()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160
 
161
+ # 验证 API 是否生成
162
  print("="*50)
163
  print("Space启动完成 | 准备接收请求")
164
  print(f"索引维度: {index.d if index else '未加载'}")
165
  print(f"元数据记录: {len(metadata) if metadata is not None else 0}")
166
  print("="*50)
167
 
168
+ # 启动应用(确保 API 暴露)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
169
  demo.launch(
170
  server_name="0.0.0.0",
171
  server_port=7860,