fdbw commited on
Commit
0c25ef0
·
verified ·
1 Parent(s): fad0968

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -8
app.py CHANGED
@@ -1,5 +1,6 @@
1
  import gradio as gr
2
  import requests
 
3
  import os
4
 
5
  API_KEY = os.environ.get("PLANTNET_API_KEY", "")
@@ -9,14 +10,11 @@
9
 
10
  def test_connection():
11
  lines = []
12
- # 1. 检查 Key
13
  if API_KEY:
14
  lines.append(f"✅ API Key 已读取,前6位:{API_KEY[:6]}...")
15
  else:
16
  lines.append("❌ API Key 未读取到,请检查 Secrets 配置")
17
  return "\n".join(lines)
18
-
19
- # 2. 测试网络连通性
20
  try:
21
  r = requests.get(
22
  f"https://my-api.plantnet.org/v2/identify/all?api-key={API_KEY}",
@@ -28,7 +26,6 @@ def test_connection():
28
  lines.append("❌ 网络请求超时(30秒)")
29
  except Exception as e:
30
  lines.append(f"❌ 网络错误:{e}")
31
-
32
  return "\n".join(lines)
33
 
34
 
@@ -39,11 +36,20 @@ def identify_plant(image, organ):
39
  return "请先上传一张植物照片"
40
  try:
41
  with open(image, "rb") as f:
42
- files = [("images", ("image.jpg", f, "image/jpeg"))]
43
- data = {"organs": [organ]}
44
- response = requests.post(API_URL, files=files, data=data, timeout=60)
 
 
 
 
 
 
 
 
 
45
  except requests.exceptions.Timeout:
46
- return "请求超时(60秒),请稍后重试"
47
  except requests.exceptions.RequestException as e:
48
  return f"网络请求失败:{e}"
49
 
 
1
  import gradio as gr
2
  import requests
3
+ import base64
4
  import os
5
 
6
  API_KEY = os.environ.get("PLANTNET_API_KEY", "")
 
10
 
11
  def test_connection():
12
  lines = []
 
13
  if API_KEY:
14
  lines.append(f"✅ API Key 已读取,前6位:{API_KEY[:6]}...")
15
  else:
16
  lines.append("❌ API Key 未读取到,请检查 Secrets 配置")
17
  return "\n".join(lines)
 
 
18
  try:
19
  r = requests.get(
20
  f"https://my-api.plantnet.org/v2/identify/all?api-key={API_KEY}",
 
26
  lines.append("❌ 网络请求超时(30秒)")
27
  except Exception as e:
28
  lines.append(f"❌ 网络错误:{e}")
 
29
  return "\n".join(lines)
30
 
31
 
 
36
  return "请先上传一张植物照片"
37
  try:
38
  with open(image, "rb") as f:
39
+ img_data = f.read()
40
+
41
+ b64 = base64.b64encode(img_data).decode()
42
+ payload = {
43
+ "images": [b64],
44
+ "organs": [organ]
45
+ }
46
+ response = requests.post(
47
+ API_URL,
48
+ json=payload,
49
+ timeout=120
50
+ )
51
  except requests.exceptions.Timeout:
52
+ return "请求超时(120秒),HF服务器可能无法访问Pl@ntNet,建议改用魔搭部署"
53
  except requests.exceptions.RequestException as e:
54
  return f"网络请求失败:{e}"
55