garvitcpp commited on
Commit
57b9c2a
·
verified ·
1 Parent(s): c72b368

Update app/core/analyzer.py

Browse files
Files changed (1) hide show
  1. app/core/analyzer.py +52 -52
app/core/analyzer.py CHANGED
@@ -1,53 +1,53 @@
1
- from typing import Dict, List
2
- import json
3
- import google.generativeai as genai
4
- from fastapi import HTTPException
5
- from ..utils.prompt_templates import generate_traditional_prompt, generate_body_based_prompt
6
-
7
- class SymptomAnalyzer:
8
- def __init__(self):
9
- self.model = genai.GenerativeModel('gemini-1.5-flash')
10
-
11
- async def analyze_traditional(self, symptoms: List[str], age: int, gender: str, duration: str) -> Dict:
12
- try:
13
- prompt = generate_traditional_prompt(symptoms, age, gender, duration)
14
- response = self.model.generate_content(prompt)
15
-
16
- try:
17
- parsed_response = json.loads(response.text)
18
- return parsed_response
19
- except json.JSONDecodeError as e:
20
- cleaned_response = response.text.strip().strip('`').strip('json')
21
- try:
22
- parsed_response = json.loads(cleaned_response)
23
- return parsed_response
24
- except json.JSONDecodeError:
25
- raise HTTPException(
26
- status_code=500,
27
- detail="Failed to parse response into valid JSON"
28
- )
29
-
30
- except Exception as e:
31
- raise HTTPException(status_code=500, detail=f"Analysis error: {str(e)}")
32
-
33
- async def analyze_body_based(self, data: Dict) -> Dict:
34
- try:
35
- prompt = generate_body_based_prompt(data)
36
- response = self.model.generate_content(prompt)
37
-
38
- try:
39
- parsed_response = json.loads(response.text)
40
- return parsed_response
41
- except json.JSONDecodeError as e:
42
- cleaned_response = response.text.strip().strip('`').strip('json')
43
- try:
44
- parsed_response = json.loads(cleaned_response)
45
- return parsed_response
46
- except json.JSONDecodeError:
47
- raise HTTPException(
48
- status_code=500,
49
- detail="Failed to parse response into valid JSON"
50
- )
51
-
52
- except Exception as e:
53
  raise HTTPException(status_code=500, detail=f"Analysis error: {str(e)}")
 
1
+ from typing import Dict, List
2
+ import json
3
+ import google.generativeai as genai
4
+ from fastapi import HTTPException
5
+ from ..utils.prompt_templates import generate_traditional_prompt, generate_body_based_prompt
6
+
7
+ class SymptomAnalyzer:
8
+ def __init__(self):
9
+ self.model = genai.GenerativeModel('gemini-2.5-flash')
10
+
11
+ async def analyze_traditional(self, symptoms: List[str], age: int, gender: str, duration: str) -> Dict:
12
+ try:
13
+ prompt = generate_traditional_prompt(symptoms, age, gender, duration)
14
+ response = self.model.generate_content(prompt)
15
+
16
+ try:
17
+ parsed_response = json.loads(response.text)
18
+ return parsed_response
19
+ except json.JSONDecodeError as e:
20
+ cleaned_response = response.text.strip().strip('`').strip('json')
21
+ try:
22
+ parsed_response = json.loads(cleaned_response)
23
+ return parsed_response
24
+ except json.JSONDecodeError:
25
+ raise HTTPException(
26
+ status_code=500,
27
+ detail="Failed to parse response into valid JSON"
28
+ )
29
+
30
+ except Exception as e:
31
+ raise HTTPException(status_code=500, detail=f"Analysis error: {str(e)}")
32
+
33
+ async def analyze_body_based(self, data: Dict) -> Dict:
34
+ try:
35
+ prompt = generate_body_based_prompt(data)
36
+ response = self.model.generate_content(prompt)
37
+
38
+ try:
39
+ parsed_response = json.loads(response.text)
40
+ return parsed_response
41
+ except json.JSONDecodeError as e:
42
+ cleaned_response = response.text.strip().strip('`').strip('json')
43
+ try:
44
+ parsed_response = json.loads(cleaned_response)
45
+ return parsed_response
46
+ except json.JSONDecodeError:
47
+ raise HTTPException(
48
+ status_code=500,
49
+ detail="Failed to parse response into valid JSON"
50
+ )
51
+
52
+ except Exception as e:
53
  raise HTTPException(status_code=500, detail=f"Analysis error: {str(e)}")