fix(ssa): Fix 7 integration bugs and refactor frontend unified state management
Bug fixes: - Fix garbled error messages in chat (TypeWriter rendering issue) - Fix R engine NA crash in descriptive.R (defensive isTRUE/is.na checks) - Fix intent misclassification for statistical significance queries - Fix step 2 results not displayed (accept warning status alongside success) - Fix incomplete R code download (only step 1 included) - Fix multi-task state confusion (clicking old card shows new results) - Add R engine and backend parameter logging for debugging Refactor - Unified Record Architecture: - Replace 12 global singleton fields with AnalysisRecord as single source of truth - Remove isWorkflowMode branching across all components - One Analysis = One Record = N Steps paradigm - selectRecord only sets currentRecordId, all rendering derives from currentRecord - Fix cross-hook-instance issue: executeWorkflow fallback to store currentRecordId Updated files: ssaStore, useWorkflow, useAnalysis, SSAChatPane, SSAWorkspacePane, SSACodeModal, WorkflowTimeline, QueryService, WorkflowExecutorService, descriptive.R Tested: Manual integration test passed - multi-task switching, R code completeness Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -79,7 +79,15 @@ const SSA_INTENT_PROMPT = `你是一个临床统计分析意图理解引擎。
|
||||
{"goal":"regression","outcome_var":"Death","outcome_type":"binary","predictor_vars":["Age","BMI","Smoking","Stage"],"predictor_types":["continuous","continuous","binary","categorical"],"grouping_var":null,"design":"independent","confidence":0.8,"reasoning":"用户想分析影响死亡率的因素,Death是二分类结局,其余变量作为预测因素纳入logistic回归"}
|
||||
\`\`\`
|
||||
|
||||
### 示例 4:模糊表达 — 需要追问
|
||||
### 示例 4:统计学意义/检验
|
||||
用户: "Yqol和bmi是否有统计学意义?"
|
||||
数据画像中有: Yqol [numeric], bmi [numeric], sex [categorical], age [numeric]
|
||||
输出:
|
||||
\`\`\`json
|
||||
{"goal":"correlation","outcome_var":"Yqol","outcome_type":"continuous","predictor_vars":["bmi"],"predictor_types":["continuous"],"grouping_var":null,"design":"independent","confidence":0.85,"reasoning":"用户想了解Yqol和bmi之间是否存在统计学显著关系,两者都是连续变量,适合相关分析或回归分析"}
|
||||
\`\`\`
|
||||
|
||||
### 示例 5:模糊表达 — 需要追问
|
||||
用户: "帮我分析一下这份数据"
|
||||
数据画像中有: 10个变量
|
||||
输出:
|
||||
@@ -87,7 +95,7 @@ const SSA_INTENT_PROMPT = `你是一个临床统计分析意图理解引擎。
|
||||
{"goal":"descriptive","outcome_var":null,"outcome_type":null,"predictor_vars":[],"predictor_types":[],"grouping_var":null,"design":"independent","confidence":0.35,"reasoning":"用户没有指定任何分析目标和变量,只能先做描述性统计,建议追问具体分析目的"}
|
||||
\`\`\`
|
||||
|
||||
### 示例 5:队列研究
|
||||
### 示例 6:队列研究
|
||||
用户: "我想做一个完整的队列研究分析,看看新药对预后的影响"
|
||||
数据画像中有: Drug [categorical, 2个水平], Outcome [categorical, 2个水平: 0/1], Age [numeric], Gender [categorical], BMI [numeric], Comorbidity [categorical]
|
||||
输出:
|
||||
@@ -127,7 +135,7 @@ async function main() {
|
||||
content: SSA_INTENT_PROMPT,
|
||||
model_config: { model: 'deepseek-v3', temperature: 0.3, maxTokens: 2048 },
|
||||
status: 'ACTIVE',
|
||||
changelog: `Phase Q v1.0: 5 组 Few-Shot + Confidence Rubric 客观化`,
|
||||
changelog: `Phase Q v1.1: 6 组 Few-Shot (增加统计学意义示例) + Confidence Rubric 客观化`,
|
||||
created_by: 'system-seed',
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user