Skip to content

Commit dd033ef

Browse files
tpfzCoda-bot
andcommitted
refactor: [Coda] simplify evaluatorConfiger to single loader with standardized key
(LogID: 202509021957170100911101349068BD9) Co-Authored-By: Coda <[email protected]>
1 parent 705a9c8 commit dd033ef

File tree

2 files changed

+56
-10
lines changed

2 files changed

+56
-10
lines changed

backend/modules/evaluation/pkg/conf/evaluator.go

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,8 @@ func NewEvaluatorConfiger(configFactory conf.IConfigLoaderFactory) IConfiger {
3232
if err != nil {
3333
return nil
3434
}
35-
codeLoader, err := configFactory.NewConfigLoader("code_evaluator_config.json")
36-
if err != nil {
37-
return nil
38-
}
3935
return &evaluatorConfiger{
40-
loader: loader,
41-
codeLoader: codeLoader,
36+
loader: loader,
4237
}
4338
}
4439
func (c *evaluatorConfiger) GetEvaluatorTemplateConf(ctx context.Context) (etf map[string]map[string]*evaluatordto.EvaluatorContent) {
@@ -111,8 +106,8 @@ func DefaultEvaluatorPromptMapping() map[string]string {
111106
return make(map[string]string)
112107
}
113108
func (c *evaluatorConfiger) GetCodeEvaluatorTemplateConf(ctx context.Context) (etf map[string]map[string]*evaluatordto.EvaluatorContent) {
114-
// 直接从根级别读取配置,因为JSON文件的根就是我们需要的结构
115-
if c.codeLoader.UnmarshalKey(ctx, "", &etf) == nil && len(etf) > 0 {
109+
const key = "code_evaluator_template_conf"
110+
if c.loader.UnmarshalKey(ctx, key, &etf) == nil && len(etf) > 0 {
116111
return etf
117112
}
118113
return DefaultCodeEvaluatorTemplateConf()
@@ -123,6 +118,5 @@ func DefaultCodeEvaluatorTemplateConf() map[string]map[string]*evaluatordto.Eval
123118
}
124119

125120
type evaluatorConfiger struct {
126-
loader conf.IConfigLoader
127-
codeLoader conf.IConfigLoader
121+
loader conf.IConfigLoader
128122
}

release/deployment/docker-compose/conf/evaluation.yaml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2140,4 +2140,56 @@ evaluator_template_conf_en-US:
21402140
prompt_source_type: 1
21412141
prompt_template_key: builtin_template_detail
21422142
prompt_template_name: "Detail"
2143+
receive_chat_history: false
2144+
2145+
code_evaluator_template_conf:
2146+
equals_checker:
2147+
Python:
2148+
receive_chat_history: false
2149+
code_evaluator:
2150+
language_type: "Python"
2151+
code_content: "def exec_evaluation(turn_data):\n try:\n # 获取实际输出和参考输出\n actual_text = turn_data[\"turn\"][\"eval_target\"][\"actual_output\"][\"text\"]\n reference_text = turn_data[\"turn\"][\"eval_set\"][\"reference_output\"][\"text\"]\n \n # 比较文本相似性或相等性\n is_equal = actual_text.strip() == reference_text.strip()\n score = 1.0 if is_equal else 0.0\n \n if is_equal:\n status = \"匹配\"\n else:\n status = \"不匹配\"\n reason = f\"实际输出与参考输出{status}。实际输出: '{actual_text}', 参考输出: '{reference_text}'\"\n \n return EvalOutput(score=score, reason=reason, err_msg=\"\")\n \n except KeyError as e:\n return EvalOutput(score=0.0, reason=f\"字段路径未找到: {e}\", err_msg=str(e))\n except Exception as e:\n return EvalOutput(score=0.0, reason=f\"评估失败: {e}\", err_msg=str(e))"
2152+
code_template_key: "equals_checker"
2153+
code_template_name: "相等性检查器"
2154+
Python3:
2155+
receive_chat_history: false
2156+
code_evaluator:
2157+
language_type: "Python3"
2158+
code_content: "def exec_evaluation(turn_data):\n try:\n # 获取实际输出和参考输出\n actual_text = turn_data[\"turn\"][\"eval_target\"][\"actual_output\"][\"text\"]\n reference_text = turn_data[\"turn\"][\"eval_set\"][\"reference_output\"][\"text\"]\n \n # 比较文本相似性或相等性\n is_equal = actual_text.strip() == reference_text.strip()\n score = 1.0 if is_equal else 0.0\n \n if is_equal:\n status = \"匹配\"\n else:\n status = \"不匹配\"\n reason = f\"实际输出与参考输出{status}。实际输出: '{actual_text}', 参考输出: '{reference_text}'\"\n \n return EvalOutput(score=score, reason=reason, err_msg=\"\")\n \n except KeyError as e:\n return EvalOutput(score=0.0, reason=f\"字段路径未找到: {e}\", err_msg=str(e))\n except Exception as e:\n return EvalOutput(score=0.0, reason=f\"评估失败: {e}\", err_msg=str(e))"
2159+
code_template_key: "equals_checker"
2160+
code_template_name: "相等性检查器"
2161+
contains_checker:
2162+
JavaScript:
2163+
receive_chat_history: false
2164+
input_schemas:
2165+
- name: "input"
2166+
type: "string"
2167+
description: "评估输入内容"
2168+
- name: "reference_output"
2169+
type: "string"
2170+
description: "参考输出内容"
2171+
- name: "actual_output"
2172+
type: "string"
2173+
description: "实际输出内容"
2174+
code_evaluator:
2175+
language_type: "JavaScript"
2176+
code_content: "function execEvaluation(turnData) {\n try {\n // 获取实际输出和参考输出\n const actualText = turnData.turn.eval_target.actual_output.text;\n const referenceText = turnData.turn.eval_set.reference_output.text;\n \n // 检查实际输出是否包含参考输出\n const contains = actualText.includes(referenceText);\n const score = contains ? 1.0 : 0.0;\n \n const status = contains ? \"包含\" : \"不包含\";\n const reason = `实际输出${status}参考输出。实际输出: '${actualText}', 参考输出: '${referenceText}'`;\n \n return { score: score, reason: reason, err_msg: \"\" };\n \n } catch (e) {\n return { score: 0.0, reason: `评估失败: ${e.message}`, err_msg: e.message };\n }\n}"
2177+
code_template_key: "contains_checker"
2178+
code_template_name: "包含性检查器"
2179+
JS:
21432180
receive_chat_history: false
2181+
input_schemas:
2182+
- name: "input"
2183+
type: "string"
2184+
description: "评估输入内容"
2185+
- name: "reference_output"
2186+
type: "string"
2187+
description: "参考输出内容"
2188+
- name: "actual_output"
2189+
type: "string"
2190+
description: "实际输出内容"
2191+
code_evaluator:
2192+
language_type: "JS"
2193+
code_content: "function execEvaluation(turnData) {\n try {\n // 获取实际输出和参考输出\n const actualText = turnData.turn.eval_target.actual_output.text;\n const referenceText = turnData.turn.eval_set.reference_output.text;\n \n // 检查实际输出是否包含参考输出\n const contains = actualText.includes(referenceText);\n const score = contains ? 1.0 : 0.0;\n \n const status = contains ? \"包含\" : \"不包含\";\n const reason = `实际输出${status}参考输出。实际输出: '${actualText}', 参考输出: '${referenceText}'`;\n \n return { score: score, reason: reason, err_msg: \"\" };\n \n } catch (e) {\n return { score: 0.0, reason: `评估失败: ${e.message}`, err_msg: e.message };\n }\n}"
2194+
code_template_key: "contains_checker"
2195+
code_template_name: "包含性检查器"e

0 commit comments

Comments
 (0)