"""在研判之前,由宿主完成全部监测取数、预处理及报告接口查询。""" import json from extensions.main_fan import exploration, history, report_archive from extensions.main_fan.batch_context import scope_for from runtime.python_sandbox import digest, workspace_file async def assessment(identifier, user, session): scope = scope_for(user, session) reports = await report_archive.fetch(identifier, user, session) historical = await history.query(identifier, user, session) workflow = exploration._load(identifier, user, session) path = historical['agent_data_path'] local = workspace_file(user, session, path) data = json.loads(local.read_text()) report_fields = ('path', 'mode', 'sha256', 'page_count', 'archive_path', 'is_mock', 'binding') if reports['reports']: data['reports'] = [{key: row[key] for key in report_fields if row.get(key)} for row in reports['reports']] exploration._write(local, data) workflow['context']['query_exports'][path] = digest(local) receipt = {'mode': 'fixed_code', 'agent_data_path': path, 'agent_python_path': path.removeprefix('/workspace/'), 'history': historical, 'reports': reports} workflow['context']['prepared_data'] = receipt exploration._persist(workflow, user, session, '固定代码准备Agent输入', receipt) exploration._write(scope.output / scope.shaft.shaft_id / '给Agent的数据.json', data) return receipt