Spaces:
Running
Running
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 |