Wind-xixi commited on
Commit
83061f6
·
verified ·
1 Parent(s): 6dcfc9d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -1
app.py CHANGED
@@ -17,6 +17,24 @@ extractor = SentenceExtractor(
17
  async def root():
18
  return {"message": "API is running. Use POST /evaluate to upload files."}
19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  @app.post("/evaluate")
21
  async def evaluate_file(file: UploadFile = File(...)):
22
  try:
@@ -36,8 +54,16 @@ async def evaluate_file(file: UploadFile = File(...)):
36
  "句子评分": []
37
  }
38
  for i, item in enumerate(result["scored_sentences"], 1):
 
 
 
 
 
 
 
 
39
  formatted_result["句子评分"].append({
40
- f"句子{i}": f"{item['sentence']} - {item['grade']} ({item.get('source','?')})"
41
  })
42
 
43
  # 附加调试信息便于客户端确认
 
17
  async def root():
18
  return {"message": "API is running. Use POST /evaluate to upload files."}
19
 
20
+ @app.get("/health")
21
+ async def health():
22
+ try:
23
+ # 暴露关键运行状态,便于部署环境自检
24
+ return JSONResponse(content={
25
+ "model_loaded": getattr(extractor, "model_loaded", False),
26
+ "model_path_abs": getattr(extractor, "model_path_abs", None),
27
+ "model_sha256": getattr(extractor, "model_sha256", None),
28
+ "providers": getattr(extractor, "providers", None),
29
+ "tokenizer_loaded": getattr(extractor, "tokenizer_loaded", None),
30
+ "last_tokenizer_error": getattr(extractor, "last_tokenizer_error", None),
31
+ "aggregation_mode": extractor.aggregation_mode,
32
+ "min_sentence_char_len": extractor.min_sentence_char_len,
33
+ "merge_leading_punct": extractor.merge_leading_punct,
34
+ })
35
+ except Exception as e:
36
+ return JSONResponse(content={"error": str(e)}, status_code=500)
37
+
38
  @app.post("/evaluate")
39
  async def evaluate_file(file: UploadFile = File(...)):
40
  try:
 
54
  "句子评分": []
55
  }
56
  for i, item in enumerate(result["scored_sentences"], 1):
57
+ source = item.get('source', '?')
58
+ reason = item.get('reason') or item.get('last_tokenizer_error')
59
+ suffix = f" ({source})"
60
+ if source == 'rule' and reason:
61
+ # 将回退原因直接拼接到可见文本,便于客户端看到具体错误
62
+ if len(reason) > 120:
63
+ reason = reason[:120] + '...'
64
+ suffix += f" - reason: {reason}"
65
  formatted_result["句子评分"].append({
66
+ f"句子{i}": f"{item['sentence']} - {item['grade']}{suffix}"
67
  })
68
 
69
  # 附加调试信息便于客户端确认