weiwei1392 commited on
Commit
c05d486
·
1 Parent(s): 44ec37f

增加加载本地评价功能

Browse files
Files changed (1) hide show
  1. mock_data.py +0 -108
mock_data.py DELETED
@@ -1,108 +0,0 @@
1
- import random
2
- import math
3
- import pandas as pd
4
- import gradio as gr
5
- import numpy as np
6
- from typing import List
7
- from llm import OpenAI3
8
-
9
-
10
- llm = OpenAI3()
11
-
12
-
13
- def _scores_recalculate(scores: List):
14
- scores_array = np.array(scores)
15
- scores_dis = abs(scores_array - scores_array.mean())
16
- scores_count = np.ceil(1 / (scores_dis + scores_dis.mean()) * len(scores)).astype(int)
17
- new_scores = []
18
- for i in range(len(scores)):
19
- new_scores.extend([scores[i]] * scores_count[i])
20
- return new_scores
21
-
22
-
23
- def generate_scores_and_comments(standard_file_path, rewrite_prompt, topic, num=10):
24
- df = pd.read_excel(standard_file_path)
25
- pd.set_option('display.max_colwidth', None)
26
- standard_index = df.columns.to_list()
27
- standard_index.pop(standard_index.index('得分'))
28
- standard_scores = list(tuple(df['得分'].to_list()))
29
- scores_choice = _scores_recalculate(standard_scores)
30
- assessments = []
31
- for i in range(num):
32
- assessment = dict()
33
- scores = dict()
34
- stand_comment = []
35
- for index in standard_index:
36
- score = random.choice(scores_choice)
37
- scores[index] = score
38
- content = df[df['得分'] == score][index].to_string(index=False)
39
- stand_comment.append(content)
40
- mean_score = np.array(list(scores.values()))
41
- # scores['mean_score'] = mean_score
42
-
43
- assessment['scores'] = scores
44
- stand_comment = ';'.join(stand_comment)
45
- prompt = 'f"""' + rewrite_prompt + '"""'
46
- r_comment = llm(eval(prompt))
47
- r_comment = r_comment.split('\n')[-1]
48
- assessment['comment'] = r_comment
49
- assessments.append(assessment)
50
- return assessments, df
51
-
52
-
53
- def medium_score_rewrite(standard_file, rewrite_prompt, topic, assessments):
54
- scores = [i['scores'] for i in assessments]
55
- scores = pd.DataFrame(scores)
56
- try:
57
- medium = scores.quantile(0.5)
58
- except Exception as e: # incase that the values in one column are all None
59
- scores = scores.fillna(0)
60
- medium = scores.quantile(0.5)
61
- medium = medium.astype(int)
62
-
63
- stand_comment = []
64
- df = standard_file
65
- for index in medium.index:
66
- score = math.ceil(medium[index])
67
- content = df[df['得分'] == score][index].to_string(index=False)
68
- stand_comment.append(content)
69
-
70
- s_comment = ';'.join(stand_comment)
71
- prompt = 'f"""' + rewrite_prompt + '"""'
72
- r_comment = llm(eval(prompt))
73
- return r_comment
74
-
75
-
76
- def quantile_summary(summary_prompt, assessments):
77
- if not isinstance(assessments[0], dict):
78
- comment = '\n'.join(assessments)
79
- else:
80
- comments = [i['comment'] for i in assessments]
81
- comments = pd.Series(comments)
82
- scores = [i['scores'] for i in assessments]
83
- scores = pd.DataFrame(scores)
84
-
85
- try:
86
- quartiles = scores.quantile([0.25, 0.75])
87
- except Exception as e: # incase that the values in one column are all None
88
- scores = scores.fillna(0)
89
- quartiles = scores.quantile([0.25, 0.75])
90
- quartiles = quartiles.astype(int)
91
- up = (scores - quartiles.loc[0.75]) < 0
92
- down = (scores - quartiles.loc[0.25]) > 0
93
- select_index = (up & down).all(axis=1)
94
- if not select_index.any():
95
- select_index = (up & down).any(axis=1)
96
-
97
- if select_index.any():
98
- select_comments = comments[select_index].to_list()
99
- else:
100
- select_comments = comments.to_list()
101
-
102
- comment = '\n'.join(select_comments)
103
-
104
- prompt = 'f"""' + summary_prompt + '"""'
105
- s_comment = llm(eval(prompt))
106
- return s_comment
107
-
108
-