feat/ 导出开发容器内的数据用于评估
This commit is contained in:
23
api/app/features/evaluation/importers/script_json.py
Normal file
23
api/app/features/evaluation/importers/script_json.py
Normal file
@@ -0,0 +1,23 @@
|
||||
"""JSON 脚本导入评测用例。"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
from typing import Any
|
||||
|
||||
|
||||
def parse_script_json(raw: str | bytes) -> tuple[list[str], dict[str, Any]]:
|
||||
data = json.loads(raw if isinstance(raw, str) else raw.decode("utf-8"))
|
||||
if isinstance(data, list):
|
||||
utterances = [str(x).strip() for x in data if str(x).strip()]
|
||||
return utterances, {}
|
||||
if isinstance(data, dict):
|
||||
u = data.get("utterances") or data.get("user_utterances") or []
|
||||
if not isinstance(u, list):
|
||||
raise ValueError("utterances 必须是数组")
|
||||
utterances = [str(x).strip() for x in u if str(x).strip()]
|
||||
meta = {
|
||||
k: v for k, v in data.items() if k not in ("utterances", "user_utterances")
|
||||
}
|
||||
return utterances, meta
|
||||
raise ValueError("根须为数组或对象")
|
||||
Reference in New Issue
Block a user