Enhance simulation functionality and frontend components for improved user experience

- Updated the simulation API to include a new 'force' parameter, allowing users to restart simulations while cleaning up previous logs.
- Enhanced the simulation status detail retrieval to include all actions and platform-specific actions for better monitoring.
- Introduced a new SimulationRunView component to manage the simulation process, providing a clear interface for users to start and monitor simulations.
- Improved the Step3Simulation component with detailed logging and progress indicators, ensuring users receive real-time updates during the simulation.
- Added new API endpoints for retrieving simulation posts and actions, enhancing the overall functionality and user engagement.
This commit is contained in:
666ghj
2025-12-12 14:44:10 +08:00
parent aad01f0252
commit f8a58819fa
8 changed files with 2024 additions and 74 deletions

View File

@@ -108,3 +108,47 @@ export const getRunStatusDetail = (simulationId) => {
return service.get(`/api/simulation/${simulationId}/run-status/detail`)
}
/**
* 获取模拟中的帖子
* @param {string} simulationId
* @param {string} platform - 'reddit' | 'twitter'
* @param {number} limit - 返回数量
* @param {number} offset - 偏移量
*/
export const getSimulationPosts = (simulationId, platform = 'reddit', limit = 50, offset = 0) => {
return service.get(`/api/simulation/${simulationId}/posts`, {
params: { platform, limit, offset }
})
}
/**
* 获取模拟时间线(按轮次汇总)
* @param {string} simulationId
* @param {number} startRound - 起始轮次
* @param {number} endRound - 结束轮次
*/
export const getSimulationTimeline = (simulationId, startRound = 0, endRound = null) => {
const params = { start_round: startRound }
if (endRound !== null) {
params.end_round = endRound
}
return service.get(`/api/simulation/${simulationId}/timeline`, { params })
}
/**
* 获取Agent统计信息
* @param {string} simulationId
*/
export const getAgentStats = (simulationId) => {
return service.get(`/api/simulation/${simulationId}/agent-stats`)
}
/**
* 获取模拟动作历史
* @param {string} simulationId
* @param {Object} params - { limit, offset, platform, agent_id, round_num }
*/
export const getSimulationActions = (simulationId, params = {}) => {
return service.get(`/api/simulation/${simulationId}/actions`, { params })
}