api-demo
/
opencompass-my-api
/build
/lib
/opencompass
/summarizers
/subjective
/subjective_post_process.py
import re | |
def post_process_autoj(judgement: str): | |
"""Input a string like below: | |
xxx[[5]]xxx, and extract the score | |
""" | |
pattern = r'\[(\d+)\]' | |
matched_result = re.findall(pattern, judgement) | |
if matched_result: | |
score = int(matched_result[0]) | |
else: | |
return None | |
return {'score': score} | |
def post_process_judgelm(judgement: str): | |
"""Input a string like below: | |
5, reason:xxx and extract the score | |
""" | |
if len(judgement) >= 2: | |
first_two_chars = judgement[:2] | |
if first_two_chars.isdigit() and first_two_chars == '10': | |
score = 10 | |
else: | |
first_char = judgement[0] | |
if first_char.isdigit() and 0 <= int(first_char) <= 9: | |
score = int(first_char) | |
else: | |
return None | |
elif len(judgement) == 1: | |
if judgement.isdigit() and 0 <= int(judgement) <= 9: | |
score = int(judgement) | |
else: | |
return None | |
else: | |
return None | |
return {'score': score} | |