|
11 | 11 | import logging |
12 | 12 | import os |
13 | 13 | import time |
| 14 | +from pathlib import Path |
14 | 15 |
|
15 | 16 | from dingo.config.input_args import EvaluatorLLMArgs |
16 | 17 | from dingo.io.input import Data |
|
50 | 51 | EMBEDDING_MODEL = os.getenv("EMBEDDING_MODEL", "text-embedding-3-large") |
51 | 52 |
|
52 | 53 | # 输入文件路径配置 |
53 | | -CSV_FILE_PATH = "ragflow_eval_data_50.jsonl" # 支持CSV和JSONL格式 |
| 54 | +CSV_FILE_PATH = Path("test/data/ragflow_eval_data_50.jsonl") # 支持CSV和JSONL格式 |
54 | 55 |
|
55 | 56 |
|
56 | 57 | def evaluate_from_jsonl(jsonl_path): |
@@ -126,34 +127,34 @@ def evaluate_from_jsonl(jsonl_path): |
126 | 127 | # # 进行各项指标评测 |
127 | 128 | print("\n1. 忠实度 (Faithfulness):") |
128 | 129 | faithfulness_result = LLMRAGFaithfulness.eval(data) |
129 | | - print(f" 状态: {'✅ 通过' if not faithfulness_result.eval_status else '❌ 未通过'}") |
| 130 | + print(f" 状态: {'✅ 通过' if not faithfulness_result.status else '❌ 未通过'}") |
130 | 131 | print(f" 分数: {faithfulness_result.score}/10") |
131 | 132 | total_faithfulness += faithfulness_result.score |
132 | 133 |
|
133 | 134 | logger.info("\n2. 上下文精度 (Context Precision):") |
134 | 135 | print("\n2. 上下文精度 (Context Precision):") |
135 | 136 | precision_result = LLMRAGContextPrecision.eval(data) |
136 | | - logger.info(f" 状态: {'✅ 通过' if not precision_result.eval_status else '❌ 未通过'}") |
| 137 | + logger.info(f" 状态: {'✅ 通过' if not precision_result.status else '❌ 未通过'}") |
137 | 138 | logger.info(f" 分数: {precision_result.score}/10") |
138 | | - print(f" 状态: {'✅ 通过' if not precision_result.eval_status else '❌ 未通过'}") |
| 139 | + print(f" 状态: {'✅ 通过' if not precision_result.status else '❌ 未通过'}") |
139 | 140 | print(f" 分数: {precision_result.score}/10") |
140 | 141 | total_precision += precision_result.score |
141 | 142 |
|
142 | 143 | print("\n3. 上下文召回 (Context Recall):") |
143 | 144 | recall_result = LLMRAGContextRecall.eval(data) |
144 | | - print(f" 状态: {'✅ 通过' if not recall_result.eval_status else '❌ 未通过'}") |
| 145 | + print(f" 状态: {'✅ 通过' if not recall_result.status else '❌ 未通过'}") |
145 | 146 | print(f" 分数: {recall_result.score}/10") |
146 | 147 | total_recall += recall_result.score |
147 | 148 |
|
148 | 149 | print("\n4. 上下文相关性 (Context Relevancy):") |
149 | 150 | relevancy_result = LLMRAGContextRelevancy.eval(data) |
150 | | - print(f" 状态: {'✅ 通过' if not relevancy_result.eval_status else '❌ 未通过'}") |
| 151 | + print(f" 状态: {'✅ 通过' if not relevancy_result.status else '❌ 未通过'}") |
151 | 152 | print(f" 分数: {relevancy_result.score}/10") |
152 | 153 | total_relevancy += relevancy_result.score |
153 | 154 | # |
154 | 155 | print("\n5. 答案相关性 (Answer Relevancy):") |
155 | 156 | answer_relevancy_result = LLMRAGAnswerRelevancy.eval(data) |
156 | | - print(f" 状态: {'✅ 通过' if not answer_relevancy_result.eval_status else '❌ 未通过'}") |
| 157 | + print(f" 状态: {'✅ 通过' if not answer_relevancy_result.status else '❌ 未通过'}") |
157 | 158 | print(f" 分数: {answer_relevancy_result.score}/10") |
158 | 159 | total_answer_relevancy += answer_relevancy_result.score |
159 | 160 |
|
@@ -269,34 +270,34 @@ def evaluate_from_csv(csv_path): |
269 | 270 | # # # # 进行各项指标评测 |
270 | 271 | print("\n1. 忠实度 (Faithfulness):") |
271 | 272 | faithfulness_result = LLMRAGFaithfulness.eval(data) |
272 | | - print(f" 状态: {'✅ 通过' if not faithfulness_result.eval_status else '❌ 未通过'}") |
| 273 | + print(f" 状态: {'✅ 通过' if not faithfulness_result.status else '❌ 未通过'}") |
273 | 274 | print(f" 分数: {faithfulness_result.score}/10") |
274 | 275 | total_faithfulness += faithfulness_result.score |
275 | 276 |
|
276 | 277 | logger.info("\n2. 上下文精度 (Context Precision):") |
277 | 278 | print("\n2. 上下文精度 (Context Precision):") |
278 | 279 | precision_result = LLMRAGContextPrecision.eval(data) |
279 | | - logger.info(f" 状态: {'✅ 通过' if not precision_result.eval_status else '❌ 未通过'}") |
| 280 | + logger.info(f" 状态: {'✅ 通过' if not precision_result.status else '❌ 未通过'}") |
280 | 281 | logger.info(f" 分数: {precision_result.score}/10") |
281 | | - print(f" 状态: {'✅ 通过' if not precision_result.eval_status else '❌ 未通过'}") |
| 282 | + print(f" 状态: {'✅ 通过' if not precision_result.status else '❌ 未通过'}") |
282 | 283 | print(f" 分数: {precision_result.score}/10") |
283 | 284 | total_precision += precision_result.score |
284 | 285 |
|
285 | 286 | print("\n3. 上下文召回 (Context Recall):") |
286 | 287 | recall_result = LLMRAGContextRecall.eval(data) |
287 | | - print(f" 状态: {'✅ 通过' if not recall_result.eval_status else '❌ 未通过'}") |
| 288 | + print(f" 状态: {'✅ 通过' if not recall_result.status else '❌ 未通过'}") |
288 | 289 | print(f" 分数: {recall_result.score}/10") |
289 | 290 | total_recall += recall_result.score |
290 | 291 |
|
291 | 292 | print("\n4. 上下文相关性 (Context Relevancy):") |
292 | 293 | relevancy_result = LLMRAGContextRelevancy.eval(data) |
293 | | - print(f" 状态: {'✅ 通过' if not relevancy_result.eval_status else '❌ 未通过'}") |
| 294 | + print(f" 状态: {'✅ 通过' if not relevancy_result.status else '❌ 未通过'}") |
294 | 295 | print(f" 分数: {relevancy_result.score}/10") |
295 | 296 | total_relevancy += relevancy_result.score |
296 | 297 |
|
297 | 298 | print("\n5. 答案相关性 (Answer Relevancy):") |
298 | 299 | answer_relevancy_result = LLMRAGAnswerRelevancy.eval(data) |
299 | | - print(f" 状态: {'✅ 通过' if not answer_relevancy_result.eval_status else '❌ 未通过'}") |
| 300 | + print(f" 状态: {'✅ 通过' if not answer_relevancy_result.status else '❌ 未通过'}") |
300 | 301 | print(f" 分数: {answer_relevancy_result.score}/10") |
301 | 302 | total_answer_relevancy += answer_relevancy_result.score |
302 | 303 |
|
|
0 commit comments