yasserrmd commited on
Commit
e0390ef
·
verified ·
1 Parent(s): 7a0da87

Update app/utils/groq_client.py

Browse files
Files changed (1) hide show
  1. app/utils/groq_client.py +12 -7
app/utils/groq_client.py CHANGED
@@ -94,12 +94,8 @@ class GroqClient:
94
 
95
  Example JSON structure (fill with relevant details based on input):
96
  {{
97
- "caseSummary": {{ "caseID": "C-XXXX", "crimeType": "Type of Crime", "status": "Current Status", "briefOverview": "A brief overview of the case." }},
98
- "incidentDetails": {{ "date": "YYYY-MM-DD", "time": "HH:MM", "location": "Location of incident", "narrative": "Detailed narrative of the incident." }},
99
- "personsInvolved": {{ "suspects": [{{ "name": "Suspect Name", "role": "Suspect", "details": "Relevant details" }}], "victims": [{{ "name": "Victim Name", "role": "Victim", "details": "Relevant details" }}], "witnesses": [{{ "name": "Witness Name", "role": "Witness", "details": "Relevant details" }}] }},
100
- "evidenceCollected": {{ "physical": ["Item 1", "Item 2"], "testimonial": ["Statement 1"], "digital": ["File A.jpg"] }},
101
- "interrogationSummary": {{ "subjectName": "Suspect Name", "dateOfInterrogation": "YYYY-MM-DD", "keyStatements": ["Statement A", "Statement B"], "observations": "Behavioral observations during interrogation." }},
102
- "findingsAndInferences": {{ "keyFindings": ["Finding 1", "Finding 2"], "inferences": ["Inference A", "Inference B"], "investigatorAnalysis": "Overall analysis by the investigator." }},
103
  "recommendations": {{ "chargesToBeFiled": ["Charge 1 (Specific to {selected_country_name} law)"], "furtherActions": ["Action A", "Action B (Consider {selected_country_name} procedures)"], "legalConsiderations_{selected_country_name}": "Specific legal points relevant to {selected_country_name}." }}
104
  }}
105
  """
@@ -122,7 +118,9 @@ class GroqClient:
122
  top_p=1,
123
  stop=None,
124
  )
125
- json_output = chat_completion.choices[0].message.content
 
 
126
  # Validate if the output is valid JSON
127
  try:
128
  json.loads(json_output)
@@ -145,6 +143,13 @@ class GroqClient:
145
  "details": str(e)
146
  }}
147
  return json.dumps(error_json)
 
 
 
 
 
 
 
148
 
149
  # Example usage (for testing outside Flask app context):
150
  if __name__ == '__main__':
 
94
 
95
  Example JSON structure (fill with relevant details based on input):
96
  {{
97
+ "caseSummary": {{ "observations": "Behavioral observations during interrogation." }},
98
+
 
 
 
 
99
  "recommendations": {{ "chargesToBeFiled": ["Charge 1 (Specific to {selected_country_name} law)"], "furtherActions": ["Action A", "Action B (Consider {selected_country_name} procedures)"], "legalConsiderations_{selected_country_name}": "Specific legal points relevant to {selected_country_name}." }}
100
  }}
101
  """
 
118
  top_p=1,
119
  stop=None,
120
  )
121
+ text_output = chat_completion.choices[0].message.content
122
+ print(text_output)
123
+ json_output = extract_json(text_output)
124
  # Validate if the output is valid JSON
125
  try:
126
  json.loads(json_output)
 
143
  "details": str(e)
144
  }}
145
  return json.dumps(error_json)
146
+ def extract_json(text):
147
+ start = text.find('{')
148
+ end = text.rfind('}') + 1
149
+ if start != -1 and end != -1:
150
+ json_str = text[start:end]
151
+ return json.loads(json_str)
152
+ raise ValueError("Valid JSON not found in text.")
153
 
154
  # Example usage (for testing outside Flask app context):
155
  if __name__ == '__main__':