diff --git a/frontend/src/api/simulation.js b/frontend/src/api/simulation.js new file mode 100644 index 0000000..2b32fa8 --- /dev/null +++ b/frontend/src/api/simulation.js @@ -0,0 +1,100 @@ +import service, { requestWithRetry } from './index' + +/** + * 创建模拟 + * @param {Object} data - { project_id, graph_id?, enable_twitter?, enable_reddit? } + */ +export const createSimulation = (data) => { + return requestWithRetry(() => service.post('/api/simulation/create', data), 3, 1000) +} + +/** + * 准备模拟环境(异步任务) + * @param {Object} data - { simulation_id, entity_types?, use_llm_for_profiles?, parallel_profile_count?, force_regenerate? } + */ +export const prepareSimulation = (data) => { + return requestWithRetry(() => service.post('/api/simulation/prepare', data), 3, 1000) +} + +/** + * 查询准备任务进度 + * @param {Object} data - { task_id?, simulation_id? } + */ +export const getPrepareStatus = (data) => { + return service.post('/api/simulation/prepare/status', data) +} + +/** + * 获取模拟状态 + * @param {string} simulationId + */ +export const getSimulation = (simulationId) => { + return service.get(`/api/simulation/${simulationId}`) +} + +/** + * 获取模拟的 Agent Profiles + * @param {string} simulationId + * @param {string} platform - 'reddit' | 'twitter' + */ +export const getSimulationProfiles = (simulationId, platform = 'reddit') => { + return service.get(`/api/simulation/${simulationId}/profiles`, { params: { platform } }) +} + +/** + * 实时获取生成中的 Agent Profiles + * @param {string} simulationId + * @param {string} platform - 'reddit' | 'twitter' + */ +export const getSimulationProfilesRealtime = (simulationId, platform = 'reddit') => { + return service.get(`/api/simulation/${simulationId}/profiles/realtime`, { params: { platform } }) +} + +/** + * 获取模拟配置 + * @param {string} simulationId + */ +export const getSimulationConfig = (simulationId) => { + return service.get(`/api/simulation/${simulationId}/config`) +} + +/** + * 列出所有模拟 + * @param {string} projectId - 可选,按项目ID过滤 + */ +export const listSimulations = (projectId) => { + const params = projectId ? { project_id: projectId } : {} + return service.get('/api/simulation/list', { params }) +} + +/** + * 启动模拟 + * @param {Object} data - { simulation_id, platform?, max_rounds?, enable_graph_memory_update? } + */ +export const startSimulation = (data) => { + return requestWithRetry(() => service.post('/api/simulation/start', data), 3, 1000) +} + +/** + * 停止模拟 + * @param {Object} data - { simulation_id } + */ +export const stopSimulation = (data) => { + return service.post('/api/simulation/stop', data) +} + +/** + * 获取模拟运行实时状态 + * @param {string} simulationId + */ +export const getRunStatus = (simulationId) => { + return service.get(`/api/simulation/${simulationId}/run-status`) +} + +/** + * 获取模拟运行详细状态(包含最近动作) + * @param {string} simulationId + */ +export const getRunStatusDetail = (simulationId) => { + return service.get(`/api/simulation/${simulationId}/run-status/detail`) +} diff --git a/frontend/src/components/WorkbenchPanel.vue b/frontend/src/components/Step1GraphBuild.vue similarity index 91% rename from frontend/src/components/WorkbenchPanel.vue rename to frontend/src/components/Step1GraphBuild.vue index a316140..9629410 100644 --- a/frontend/src/components/WorkbenchPanel.vue +++ b/frontend/src/components/Step1GraphBuild.vue @@ -159,10 +159,11 @@
图谱构建已完成,请进入下一步进行模拟环境搭建
@@ -186,6 +187,10 @@ + + diff --git a/frontend/src/router/index.js b/frontend/src/router/index.js index 4bae635..f8a7a02 100644 --- a/frontend/src/router/index.js +++ b/frontend/src/router/index.js @@ -1,6 +1,7 @@ import { createRouter, createWebHistory } from 'vue-router' import Home from '../views/Home.vue' import Process from '../views/MainView.vue' +import SimulationView from '../views/SimulationView.vue' const routes = [ { @@ -13,6 +14,12 @@ const routes = [ name: 'Process', component: Process, props: true + }, + { + path: '/simulation/:simulationId', + name: 'Simulation', + component: SimulationView, + props: true } ] diff --git a/frontend/src/views/MainView.vue b/frontend/src/views/MainView.vue index 7aef973..333efe9 100644 --- a/frontend/src/views/MainView.vue +++ b/frontend/src/views/MainView.vue @@ -22,8 +22,8 @@