Spaces:
Sleeping
Sleeping
import json | |
from openai_utils import get_ai_response | |
from cv_prompt import get_spelling_grammar_prompt | |
# Load the error scoring data | |
with open('error_scoring.json', 'r') as f: | |
error_scoring = json.load(f) | |
def check_spelling_and_grammar(text): | |
prompt = get_spelling_grammar_prompt(text) | |
messages = [ | |
{"role": "user", "content": prompt} | |
] | |
response = get_ai_response(messages) | |
if not response: | |
print("Unexpected response from OpenAI API") | |
return 100, -10 # Assume 100% errors if we can't get a response | |
try: | |
result = json.loads(response) | |
error_percentage = result.get('error_percentage', 100) | |
return min(max(float(error_percentage), 0), 100) # Ensure the percentage is between 0 and 100 | |
except (json.JSONDecodeError, ValueError): | |
print(f"Unable to parse error percentage from API response: {response}") | |
return 100, -10 # Assume 100% errors if we can't parse the response | |
def get_error_score(error_percentage): | |
for error_score in error_scoring['error_scores']: | |
if error_score['min'] <= error_percentage <= error_score['max']: | |
return error_score['score'] | |
return -10 # Default score if no matching range is found | |
def evaluate_cv_text(text): | |
error_percentage = check_spelling_and_grammar(text) | |
error_score = get_error_score(error_percentage) | |
return error_percentage, error_score |