File size: 1,119 Bytes
4cccee3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# parser.py
import json
import google.generativeai as genai
import os
from dotenv import load_dotenv

load_dotenv()
genai.configure(api_key=os.getenv("GEMINI_API_KEY"))

def parse_query_with_gemini(query: str):
    model = genai.GenerativeModel("models/gemini-1.5-flash-latest")
    prompt = f"""

You are an intelligent insurance assistant.

Given a natural language query, extract the following fields as JSON. Do not include any explanation or extra text — just valid JSON:



- age (integer)

- gender (male/female/unknown)

- procedure (string)

- location (string)

- policy_duration_months (integer)



Query:

"{query}"

"""
    try:
        response = model.generate_content(prompt)
        response_text = response.text.strip()
        if response_text.startswith("```"):
            response_text = response_text.strip("`").replace("json", "").strip()
        return json.loads(response_text)
    except Exception as e:
        return {
            "error": "Failed to parse Gemini response",
            "raw_response": response.text if 'response' in locals() else str(e)
        }