SGTY 3 dagar sedan
förälder
incheckning
3db6803a15
1 ändrade filer med 30 tillägg och 3 borttagningar
  1. 30 3
      src/knowledge/main.py

+ 30 - 3
src/knowledge/main.py

@@ -1,6 +1,8 @@
 # 导入FastAPI及相关模块
+import json
+
 import uvicorn
-from fastapi import FastAPI
+from fastapi import FastAPI,Query
 from fastapi_mcp import FastApiMCP
 from py_tools.logging import logger
 
@@ -109,12 +111,37 @@ class DiseaseInfoRequest(BaseModel):
           response_description="""返回疾病名称的字符串列表,格式为:
          ["疾病名称1", "疾病名称2", ...]""")
 async def get_symptom_diseases(
-        request: SymptomDiseasesRequest
+        symptoms: List[str] = Query(...,
+                  description="""症状名称列表,应为标准医学术语。
+                 该参数用于查询与输入症状相关的疾病列表。
+                 示例值:["头痛", "发热", "咳嗽"]""",
+                  examples=["头痛", "发热", "咳嗽"],
+                  min_length=1)
 ):
+    """
+    根据症状列表获取相关疾病
+    
+    Args:
+        symptoms: 症状名称列表,每个症状应为标准医学术语
+                示例: ["头痛", "发热", "咳嗽"]
+                
+    Returns:
+        StandardResponse: 包含相关疾病列表的标准响应
+        
+    Raises:
+        HTTPException: 当查询过程中发生错误时抛出500异常
+        
+    Notes:
+        - 症状名称建议使用标准医学术语,避免口语化表达
+        - 多个症状同时查询时,返回的是这些症状共同相关的疾病
+        - 空列表将返回空结果
+    """
     try:
+        #打印request
+        logger.info(f"symptoms: {symptoms}")
         # 实现获取症状相关疾病的逻辑
         search = SearchBusiness()
-        results = search.get_symptom_diseases(request.symptoms)
+        results = search.get_symptom_diseases(symptoms)
         return StandardResponse(success=True, data=results)
     except Exception as e:
         logger.exception(f"获取症状相关疾病失败: {str(e)}")