javaeeduke commited on
Commit
54787e8
·
verified ·
1 Parent(s): c02b5c1

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +74 -0
main.py CHANGED
@@ -222,7 +222,81 @@ async def health():
222
  "keys": len(API_KEYS),
223
  "providers": list(PROVIDERS.keys()),
224
  }
 
 
 
225
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
226
 
227
  if __name__ == "__main__":
228
  uvicorn.run(app, host="0.0.0.0", port=7860)
 
222
  "keys": len(API_KEYS),
223
  "providers": list(PROVIDERS.keys()),
224
  }
225
+ # ──────────────────────────────────────────
226
+ # 调试路由(排错用)
227
+ # ──────────────────────────────────────────
228
 
229
+ @app.get("/debug")
230
+ async def debug():
231
+ """查看所有配置和路由,排错用"""
232
+
233
+ # 1. 检查环境变量
234
+ env_check = {}
235
+ for env_name in PROVIDER_MAP.keys():
236
+ val = os.getenv(env_name, "")
237
+ env_check[env_name] = "✅ 已设置" if val else "❌ 未设置"
238
+
239
+ api_keys_raw = os.getenv("API_KEYS", "")
240
+
241
+ # 2. 检查所有注册路由
242
+ routes = []
243
+ for route in app.routes:
244
+ if hasattr(route, "methods"):
245
+ routes.append({
246
+ "path": route.path,
247
+ "methods": list(route.methods),
248
+ })
249
+
250
+ # 3. 检查已加载的 Provider
251
+ providers_loaded = {}
252
+ for name, cfg in PROVIDERS.items():
253
+ providers_loaded[name] = {
254
+ "base_url": cfg["base_url"],
255
+ "models": cfg["models"],
256
+ "api_key": cfg["api_key"][:6] + "******", # 只显示前6位
257
+ }
258
+
259
+ return {
260
+ "① 环境变量检查": env_check,
261
+ "② API_KEYS设置": "✅ 已设置" if api_keys_raw else "❌ 未设置(这是导致401的原因)",
262
+ "③ 已加载Provider": providers_loaded,
263
+ "④ 已注册路由": routes,
264
+ "⑤ 内存中Key数量": len(API_KEYS),
265
+ }
266
+
267
+
268
+ @app.get("/debug/test-provider/{provider_name}")
269
+ async def test_provider(provider_name: str):
270
+ """测试某个 Provider 是否能正常请求"""
271
+
272
+ if provider_name not in PROVIDERS:
273
+ return {
274
+ "status": "❌ 失败",
275
+ "reason": f"Provider '{provider_name}' 未加载",
276
+ "已加载的": list(PROVIDERS.keys()),
277
+ }
278
+
279
+ cfg = PROVIDERS[provider_name]
280
+
281
+ try:
282
+ async with httpx.AsyncClient(timeout=10) as client:
283
+ resp = await client.get(
284
+ f"{cfg['base_url']}/models",
285
+ headers={"Authorization": f"Bearer {cfg['api_key']}"},
286
+ )
287
+ return {
288
+ "status": "✅ 成功" if resp.status_code == 200 else f"⚠️ 状态码 {resp.status_code}",
289
+ "provider": provider_name,
290
+ "base_url": cfg["base_url"],
291
+ "status_code": resp.status_code,
292
+ "response": resp.json() if resp.status_code == 200 else resp.text[:200],
293
+ }
294
+ except Exception as e:
295
+ return {
296
+ "status": "❌ 请求失败",
297
+ "provider": provider_name,
298
+ "error": str(e),
299
+ }
300
 
301
  if __name__ == "__main__":
302
  uvicorn.run(app, host="0.0.0.0", port=7860)