Add training and planning eval exports
This commit is contained in:
@@ -34,6 +34,8 @@ from .data_agent_records import (
|
||||
confirm_generation_goal,
|
||||
confirm_generation_plan,
|
||||
export_dataset_records,
|
||||
export_planning_eval_csv,
|
||||
export_training_jsonl,
|
||||
get_generation_plan,
|
||||
normalize_dataset_draft,
|
||||
prepare_generation_goal,
|
||||
@@ -1049,6 +1051,8 @@ def default_tool_registry() -> dict[str, AgentTool]:
|
||||
'data_agent_normalize_dataset_draft': _normalize_dataset_draft_tool,
|
||||
'data_agent_validate_dataset_records': _validate_dataset_records_tool,
|
||||
'data_agent_export_dataset_records': _export_dataset_records_tool,
|
||||
'data_agent_export_training_jsonl': _export_training_jsonl_tool,
|
||||
'data_agent_export_planning_eval_csv': _export_planning_eval_csv_tool,
|
||||
}),
|
||||
]
|
||||
return {tool.name: tool for tool in tools}
|
||||
@@ -1550,6 +1554,70 @@ def _export_dataset_records_tool(arguments: dict[str, Any], context: ToolExecuti
|
||||
return json.dumps(payload, ensure_ascii=False, indent=2)
|
||||
|
||||
|
||||
def _export_training_jsonl_tool(arguments: dict[str, Any], context: ToolExecutionContext) -> str:
|
||||
require_validation_ok = arguments.get('require_validation_ok', True)
|
||||
if not isinstance(require_validation_ok, bool):
|
||||
raise ToolExecutionError('require_validation_ok must be a boolean')
|
||||
overwrite = arguments.get('overwrite', True)
|
||||
if not isinstance(overwrite, bool):
|
||||
raise ToolExecutionError('overwrite must be a boolean')
|
||||
system_prompt = arguments.get('system_prompt', '你是小爱同学,中文智能语音助手。')
|
||||
if not isinstance(system_prompt, str):
|
||||
raise ToolExecutionError('system_prompt must be a string')
|
||||
try:
|
||||
records = _records_from_arguments(arguments, context)
|
||||
payload = export_training_jsonl(
|
||||
records,
|
||||
root=str(context.root),
|
||||
output_path=_data_agent_output_path(
|
||||
_optional_string(arguments, 'output_path') or 'output/training.jsonl',
|
||||
context,
|
||||
canonical_filename='training.jsonl',
|
||||
),
|
||||
session_num=_coerce_int(arguments, 'session_num', 5),
|
||||
session_time_minutes=_coerce_int(arguments, 'session_time_minutes', 5),
|
||||
context_fields=_optional_string_list(arguments, 'context_fields'),
|
||||
system_prompt=system_prompt,
|
||||
require_validation_ok=require_validation_ok,
|
||||
overwrite=overwrite,
|
||||
)
|
||||
except (DataRecordError, json.JSONDecodeError) as exc:
|
||||
raise ToolExecutionError(str(exc)) from exc
|
||||
return json.dumps(payload, ensure_ascii=False, indent=2)
|
||||
|
||||
|
||||
def _export_planning_eval_csv_tool(arguments: dict[str, Any], context: ToolExecutionContext) -> str:
|
||||
require_validation_ok = arguments.get('require_validation_ok', True)
|
||||
if not isinstance(require_validation_ok, bool):
|
||||
raise ToolExecutionError('require_validation_ok must be a boolean')
|
||||
overwrite = arguments.get('overwrite', True)
|
||||
if not isinstance(overwrite, bool):
|
||||
raise ToolExecutionError('overwrite must be a boolean')
|
||||
complex_default = arguments.get('complex_default', False)
|
||||
if not isinstance(complex_default, bool):
|
||||
raise ToolExecutionError('complex_default must be a boolean')
|
||||
try:
|
||||
records = _records_from_arguments(arguments, context)
|
||||
payload = export_planning_eval_csv(
|
||||
records,
|
||||
root=str(context.root),
|
||||
output_path=_data_agent_output_path(
|
||||
_optional_string(arguments, 'output_path') or 'output/eval_planning.csv',
|
||||
context,
|
||||
canonical_filename='eval_planning.csv',
|
||||
),
|
||||
session_num=_coerce_int(arguments, 'session_num', 5),
|
||||
session_time_minutes=_coerce_int(arguments, 'session_time_minutes', 5),
|
||||
context_fields=_optional_string_list(arguments, 'context_fields'),
|
||||
complex_default=complex_default,
|
||||
require_validation_ok=require_validation_ok,
|
||||
overwrite=overwrite,
|
||||
)
|
||||
except (DataRecordError, json.JSONDecodeError) as exc:
|
||||
raise ToolExecutionError(str(exc)) from exc
|
||||
return json.dumps(payload, ensure_ascii=False, indent=2)
|
||||
|
||||
|
||||
def _draft_text_from_arguments(arguments: dict[str, Any], context: ToolExecutionContext) -> str:
|
||||
draft_text = arguments.get('draft_text')
|
||||
draft_path = arguments.get('draft_path')
|
||||
|
||||
Reference in New Issue
Block a user