zhang commited on
Commit
a11774e
·
verified ·
1 Parent(s): cb215a3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -26
app.py CHANGED
@@ -3,57 +3,44 @@ import gradio as gr
3
  import spaces
4
  from huggingface_hub import InferenceClient
5
 
6
- # 1. 自动读取你在 Settings 里面设置的保险箱密钥
7
  hf_token = os.getenv("HF_TOKEN")
8
-
9
- # 2. 初始化客户端,指向 DeepSeek-R1-32B 满血版
10
- # 如果没有设置 HF_TOKEN,这里会报错,所以我们在下面加了异常处理
11
  client = InferenceClient("deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", token=hf_token)
12
 
13
- # 3. 定义核心推理逻辑
14
  @spaces.GPU
15
  def chat_fn(message, history):
16
- # 构建对话历史上下文
17
  messages = []
18
  for turn in history:
19
- # 兼容不同版本的 Gradio 历史记录格式
20
  if isinstance(turn, dict):
21
  messages.append({"role": turn["role"], "content": turn["content"]})
22
  else:
23
  messages.append({"role": "user", "content": turn[0]})
24
  messages.append({"role": "assistant", "content": turn[1]})
25
-
26
  messages.append({"role": "user", "content": message})
27
 
28
  response = ""
29
- # 开启流式输出 (Stream),让字一个一个跳出来
30
  try:
31
- for msg in client.chat_completion(
32
- messages,
33
- max_tokens=4096, # 调大 token,支持长文本专利分析
34
- stream=True,
35
- ):
36
- token = msg.choices[0].delta.content
37
- if token:
38
- response += token
39
- yield response
40
  except Exception as e:
41
- yield f"⚠️ OpenIPOS 算力调度异常: {str(e)}。请确保已在 Settings 中设置 HF_TOKEN。"
42
 
43
- # 4. 构建 OpenIPOS 品牌演示界面
44
  with gr.Blocks(fill_height=True, theme=gr.themes.Soft()) as demo:
45
  gr.Markdown("# 🚀 OpenIPOS Global 算力节点")
46
  gr.Markdown("### ⚖️ DeepSeek-R1 32B 法律级满血演示站")
47
- gr.Markdown("本节点由 **OpenIPOS** 部署于全球高算力数据中心,支持完整 R1 思考链路,专为专利分析与法律逻辑设计。")
48
 
49
- # 核心聊天界面
50
  gr.ChatInterface(
51
  chat_fn,
52
- examples=["请分析这篇专利要求书的逻辑漏洞...", "对比香港与内地的发明专利申请流程", "帮我写一段专利侵权判定的法律意见书"],
53
  )
54
-
55
  gr.Markdown("---")
56
- gr.Markdown("© 2026 OpenIPOS Global Limited. All Rights Reserved. 算力驱动:Hugging Face ZeroGPU")
57
 
58
- # 5. 启动程序
59
  demo.launch()
 
3
  import spaces
4
  from huggingface_hub import InferenceClient
5
 
6
+ # 1. 读取密钥
7
  hf_token = os.getenv("HF_TOKEN")
 
 
 
8
  client = InferenceClient("deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", token=hf_token)
9
 
 
10
  @spaces.GPU
11
  def chat_fn(message, history):
 
12
  messages = []
13
  for turn in history:
 
14
  if isinstance(turn, dict):
15
  messages.append({"role": turn["role"], "content": turn["content"]})
16
  else:
17
  messages.append({"role": "user", "content": turn[0]})
18
  messages.append({"role": "assistant", "content": turn[1]})
 
19
  messages.append({"role": "user", "content": message})
20
 
21
  response = ""
 
22
  try:
23
+ # 这里是核心优化:增加对异常块的过滤
24
+ for msg in client.chat_completion(messages, max_tokens=4096, stream=True):
25
+ # 只有当返回结构完整且有内容时才处理
26
+ if len(msg.choices) > 0:
27
+ token = msg.choices[0].delta.content
28
+ if token:
29
+ response += token
30
+ yield response
 
31
  except Exception as e:
32
+ yield f"⚠️ OpenIPOS 调度提醒: {str(e)}"
33
 
34
+ # UI 部分保持你的 OpenIPOS 品牌风格
35
  with gr.Blocks(fill_height=True, theme=gr.themes.Soft()) as demo:
36
  gr.Markdown("# 🚀 OpenIPOS Global 算力节点")
37
  gr.Markdown("### ⚖️ DeepSeek-R1 32B 法律级满血演示站")
 
38
 
 
39
  gr.ChatInterface(
40
  chat_fn,
41
+ examples=["请分析这篇专利要求书的逻辑漏洞...", "对比香港与内地的发明专利申请流程"],
42
  )
 
43
  gr.Markdown("---")
44
+ gr.Markdown("© 2026 OpenIPOS Global Limited. 算力驱动:Hugging Face ZeroGPU")
45
 
 
46
  demo.launch()