File size: 1,312 Bytes
dc6f3b4
3371117
dc6f3b4
 
3371117
dc6f3b4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# post_processing.py
# No changes needed, but ensured absolute imports.

import re
from retrieval import google_search  # Absolute import

def ground_statutes(response, jurisdiction, GOOGLE_CUSTOM_SEARCH_API_KEY, GOOGLE_SEARCH_API, ask_gpt4o):
    # Extract cited statutes from response (e.g., KRS 403.270)
    statute_pattern = r'KRS\s(\d+\.\d+)'
    cited_statutes = re.findall(statute_pattern, response)
    
    for statute_code in cited_statutes:
        # Search web for the statute text
        query = f"{jurisdiction} {statute_code} statute text"
        search_result = google_search(query, GOOGLE_CUSTOM_SEARCH_API_KEY, GOOGLE_SEARCH_API)
        
        # Use GPT to verify if the cited description matches the search result
        verification_prompt = f"Does the following statute description match the searched text?\nDescription in response: {response}\nSearched text: {search_result}"
        verification = ask_gpt4o(verification_prompt)
        
        if "no" in verification.lower() or "does not match" in verification.lower():
            # Correct the response
            correction_prompt = f"Correct the following response based on the accurate statute text: {search_result}\nOriginal response: {response}"
            response = ask_gpt4o(correction_prompt)
    
    return response