VerdictAI / post_processing.py
brandonmusic's picture
Update post_processing.py
3371117 verified
# 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