Commit Graph

98 Commits

Author SHA1 Message Date
Sanjin 8e4da5f59e docs: 引用 sci-box 科研图表与流程图仓库
科研绘图和流程图模板已独立到 jihe520/sci-box,在中英文 README 顶部
加入姊妹项目入口,并新增独立小节说明 scibox-figure / scibox-diagram
的内容与安装方式。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 20:41:58 +08:00
Sanjin 13e3995c09 docs: 引导用户下载最新桌面版 (#104)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
v0.0.4 v0.0.5 v0.0.6
2026-08-09 14:28:08 +08:00
EastonJiang 11f38624cd fix+perf: 绘图中文字体修复、进度自动跟踪、未验证配置刷爆日志 (#102)
* fix: 加固 Docker matplotlib 中文字体配置

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: 提前读取路径

* perf: 进度时间线与代码执行区自动跟踪最新消息

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: 未验证模型配置直接启动任务时无限重试刷爆日志

- 前端保存配置时始终推送到后端,不再依赖验证通过
- 后端 workflow 入口预校验四个 Agent 的 model/apiKey
- _validate_config 改抛 LLMConfigError 避免被 JSON 重试捕获
- coordinator/modeler 的 JSON 解析重试加上限 (MAX_JSON_RETRIES=3)

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
v0.0.2 v0.0.3
2026-07-20 10:31:33 +08:00
Sanjin be9c59c1aa Feat/skills (#98)
* add skill

* Add scripts for generating RF TPE surface, Taylor diagram, and urban park cooling combo visualizations

- Implemented `make_rf_tpe_surface.py` to create a 3D surface plot of RMSE based on max depth and number of estimators.
- Developed `make_taylor_diagram.py` to visualize model performance using Taylor diagrams for training, testing, and full datasets.
- Created `make_urban_park_cooling_combo.py` to analyze and visualize urban park cooling effects across various city sizes with raincloud plots and boxplots.

* add readme
2026-06-30 11:02:38 +08:00
mario d489761467 feat(skills): 添加 17 套 LaTeX 模板,支持 Typst/LaTeX 双引擎 (#96) 2026-06-19 15:32:27 +08:00
Sanjin 44ae206eb2 add linux do
add linux do
2026-06-07 11:40:02 +08:00
Sanjin 18de1dc7bf add skill (#94) 2026-06-05 20:47:53 +08:00
Sanjin 4a360cbc7d add mathmodel skill (#93) 2026-06-05 20:18:25 +08:00
Celyn c12903f270 docs(README): 更新项目文档和添加Windows一键启动bat脚本 (#82)
- 更新 README.md 中的项目状态标记
- 重新组织安装说明,分为 step1(安装依赖)和 step2(启动项目)
- 新增 win_start.bat 一键启动脚本,方便Windows用户快速启动Redis+后端+前端服务
- 删除已完成的计划文档 .trae/documents/stop-running-button-plan.md
2026-05-19 14:59:37 +08:00
Celyn e44ac308b6 docs(readme): 修正 README 功能状态标记并优化部署文档结构 (#80)
1. 将 5 个未实现/半成品功能从 [x] 改为准确状态:
  - [~] HIL 人机协作: 数据模型已实现但工作流集成不完整
  - [ ] Feedback 评估器+反馈重跑: 核心逻辑未实现,仅有 TODO 注释
  - [~] Web Search: 原计划 Tavily API 未实现,当前使用 OpenAlex 替代
  - [ ] RAG 知识库: 仅配置项存在,核心检索逻辑未实现
  - [ ] Fallback Hand Off: 配置项和备用模型切换逻辑均未实现

2. 重构本地部署文档:
  - 拆分为清晰的章节结构(下载Redis/启动后端/启动前端)
  - 补充 Redis 官方下载链接(windows/linux/mac)
  - 新增 PowerShell 执行策略配置步骤(Set-ExecutionPolicy)
  - 统一底部启动指南格式,移除硬编码绝对路径
2026-05-19 10:44:25 +08:00
Celyn 9633ee1f7b feat(task): 添加任务停止运行功能 (#79)
- 后端:新增 POST /modeling/{task_id}/cancel 取消接口
- 后端:实现 asyncio.Event 取消机制,支持中断 LLM 调用
- 前端:任务详情页添加"停止运行"按钮
- 修复:取消后避免调用 md_2_docx 的错误
2026-05-18 10:41:32 +08:00
Guobin Zhang e9de237ea7 fix: matplotlib 中文方块——font_manager 旧缓存导致 SimHei 注册失效 (#74)
* fix: 透传 reasoning_content,修复 DeepSeek/MiMo thinking 模式下的 400 错误

API 开启 thinking 模式时,返回的 reasoning_content 必须在下一轮请求中原样
带回。当前代码丢弃了该字段,导致后续调用 100% 返回 400 错误,重试机制陷入
无限循环。修复内容:
- StandardResponse 新增 reasoning_content 字段
- OpenAIChatProvider 从响应中提取该字段
- 各 Agent 构建 assistant 消息时携带 reasoning_content
- agent.py 基类同时补上遗漏的 tool_calls 写入

* fix: matplotlib 中文方块问题——初始化脚本清除字体缓存 + prompt 增加 addfont 注册

- local/e2b interpreter: 注册字体前清除 matplotlib 字体缓存并重建 font_manager,
  回退链加入 macOS 系统中文字体 (Heiti SC, STHeiti, PingFang SC)
- coder prompt: sns.set_theme() 之前增加 font_manager.addfont() 步骤,
  确保 LLM 生成的每段代码主动注册字体,不依赖初始化脚本

* refactor: 精简字体修复——prompt 移除冗余 addfont,补充工程约束意识

- coder prompt 撤回 addfont 注册步骤(内核初始化已处理),避免重复 token 消耗
- modeler/coder prompt 新增:优化类问题的工程约束铁律(变量物理上下界、Q4 绳长限制)
- modeler/coder prompt 新增:EDA 按题型区分——机理题不做描述性统计

---------

Co-authored-by: Grey <grey@Greys-MacBook-Air.local>
2026-05-16 19:14:36 +08:00
Guobin Zhang 0e86335538 fix: 透传 reasoning_content,修复 DeepSeek/MiMo thinking 模式下的 400 错误 (#72)
API 开启 thinking 模式时,返回的 reasoning_content 必须在下一轮请求中原样
带回。当前代码丢弃了该字段,导致后续调用 100% 返回 400 错误,重试机制陷入
无限循环。修复内容:
- StandardResponse 新增 reasoning_content 字段
- OpenAIChatProvider 从响应中提取该字段
- 各 Agent 构建 assistant 消息时携带 reasoning_content
- agent.py 基类同时补上遗漏的 tool_calls 写入

Co-authored-by: Grey <grey@Greys-MacBook-Air.local>
2026-05-16 19:12:13 +08:00
Celyn 12615b6639 chore(config): Update .gitignore and .env.example (#76)
- 简化 .gitignore 中的 DS_Store 规则,移除冗余配置
- 新增 dump.rdb 与 backend/.env.example 忽略规则
- 创建 backend/.env.example 示例配置文件

Co-authored-by: xxxu680 <109032617+xxxu680@users.noreply.github.com>
2026-05-16 19:11:02 +08:00
Celyn 112725fb40 docs(deploy): 优化Windows部署命令,修复PowerShell环境变量与虚拟环境激活错误 (#71)
原README中Windows启动命令错误:
1. 修复Windows环境变量设置方式
2. 修复虚拟环境激活脚本(使用PowerShell专用Activate.ps1)
3. 区分Mac/Linux/PowerShell命令块
4. 让Windows用户可以直接复制运行,不再报错

Co-authored-by: xxxu680 <109032617+xxxu680@users.noreply.github.com>
2026-05-15 23:46:36 +08:00
MuWinds ac57ad0c18 refactor: 重构 LLM Provider 模式、WebSocket 重连、图表字体跨平台兼容 (#70)
LLM 层重构:
- 将 LLM 调用层重构为 Provider 模式,支持多 API 类型
- 新增 Anthropic、OpenAI Chat、OpenAI Responses 三种 Provider
- 新增 LLM 类型定义和工厂类

WebSocket 重连:
- 添加指数退避自动重连机制(初始 1s,最大 30s,最多 10 次)
- 区分手动关闭与意外断开,仅意外断开触发重连
- 在任务页面顶部添加连接状态指示灯(绿/黄/红)

图表字体跨平台兼容:
- 在 backend/fonts/ 存放 SimHei 字体文件
- create_work_dir() 自动复制字体到任务工作目录
- 两个解释器从工作目录动态加载字体
- E2B 移除 apt-get install 依赖,改用上传字体文件
- 统一三处字体优先级配置

其他:
- 重构注释规范、修复类型错误、添加 lint hook
- 更新 CLAUDE.md 项目文档
2026-05-15 10:04:47 +08:00
Jiangming Zhong 7b849c4a8f feat: 默认开启 RAG/HIL、修复类型问题、添加升级教程 (#69)
* feat: 新增 Web Search、RAG 知识库、HIL 人机协作、Feedback 容错机制

- Web Search: Tavily API 搜索互联网获取真实数据,注册为 search_web 工具
- RAG 知识库: ChromaDB + Rerank 检索建模方法、代码模板、论文写作参考
- HIL 人机协作: 关键节点暂停等待用户审批,支持 6 种决策动作
- 统一工具注册: tool_registry 替代 if/elif 硬编码分发
- Fallback Hand Off: 主 LLM 故障时自动切换备用模型,新建实例避免状态污染
- 有限重试: 所有 Agent 有明确重试上限,不再无限循环
- Evaluator Shadow Mode: 独立 LLM 评估输出质量,记录日志
- Feedback Rerun: 评估不通过时注入反馈重跑,先 Writer 后 Coder
- 双向 WebSocket: 客户端可发送决策消息到后端

* docs: 添加升级说明文档并更新 README 功能列表和后期计划

- UPGRADE2.md: Web Search + RAG 知识库 + HIL 人机协作升级说明
- UPGRADE3.md: Feedback Loop + Hand Off 容错机制升级说明
- README.md: 功能特性新增 4 项,后期计划标记 5 项已完成

* feat: 默认开启 RAG/HIL、修复类型问题、添加升级教程

- 默认开启 RAG_ENABLED=True 和 HIL_ENABLED=True,开箱即用
- 修复 response.py pyright 类型问题(msg_type override)
- 修复 knowledge_retriever.py ChromaDB metadata 类型转换
- 添加 升级说明.md 完整教程(Web Search / RAG / HIL / Fallback / Evaluator)
- 更新 README.md 添加新功能配置段落
- 预置所有功能配置到 .env.dev

* feat: 默认开启 RAG 和 HIL 功能

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* feat: 新增 Web Search、RAG 知识库、HIL 人机协作、Feedback 容错机制

- Web Search: Tavily API 搜索互联网获取真实数据,注册为 search_web 工具
- RAG 知识库: ChromaDB + Rerank 检索建模方法、代码模板、论文写作参考
- HIL 人机协作: 关键节点暂停等待用户审批,支持 6 种决策动作
- 统一工具注册: tool_registry 替代 if/elif 硬编码分发
- Fallback Hand Off: 主 LLM 故障时自动切换备用模型,新建实例避免状态污染
- 有限重试: 所有 Agent 有明确重试上限,不再无限循环
- Evaluator Shadow Mode: 独立 LLM 评估输出质量,记录日志
- Feedback Rerun: 评估不通过时注入反馈重跑,先 Writer 后 Coder
- 双向 WebSocket: 客户端可发送决策消息到后端

* docs: 添加升级说明文档并更新 README 功能列表和后期计划

- UPGRADE2.md: Web Search + RAG 知识库 + HIL 人机协作升级说明
- UPGRADE3.md: Feedback Loop + Hand Off 容错机制升级说明
- README.md: 功能特性新增 4 项,后期计划标记 5 项已完成

* feat: 默认开启 RAG/HIL、修复类型问题、添加升级教程

- 默认开启 RAG_ENABLED=True 和 HIL_ENABLED=True,开箱即用
- 修复 response.py pyright 类型问题(msg_type override)
- 修复 knowledge_retriever.py ChromaDB metadata 类型转换
- 添加 升级说明.md 完整教程(Web Search / RAG / HIL / Fallback / Evaluator)
- 更新 README.md 添加新功能配置段落
- 预置所有功能配置到 .env.dev

* Delete UPGRADE2.md

* Delete UPGRADE3.md

* fix: RAG 和 Web Search 改为默认关闭,减少用户配置负担

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 20:31:56 +08:00
Jiangming Zhong d5428a2a2e feat: 新增 Web Search 工具 + 统一 tool_registry 分发 (#68)
主要功能:
- Web Search: Tavily API 搜索互联网获取真实数据,注册为 search_web 工具
- 统一工具注册: tool_registry 替代 if/elif 硬编码分发
- Evidence 数据模型: DataEvidence 结构化搜索结果

编排层(workflow.py)集成:
- Web Search 初始化与动态工具注册
- RAG 知识库检索与注入
- HIL 人机协作检查点
- Fallback Hand Off 容错机制
- Evaluator + Feedback Rerun 质量保障

新增配置:TAVILY_API_KEY / SEARCH_ENABLED / SEARCH_CACHE_TTL
所有功能均有独立开关,未配置时行为与升级前一致。
2026-05-13 14:13:58 +08:00
MuWinds 5305754f0b refactor: 重构注释规范、修复类型错误、添加 lint hook 和 CLAUDE.md (#66)
- 后端按 Google Python Style Guide 重构注释,修复 ruff 和 pyright 错误(161→0)
- 前端按 Vue.js Style Guide 重构注释,修复 biome 错误
- 添加 PostToolUse lint hook(ruff + biome 自动检查)
- 更新 CLAUDE.md 覆盖 Commands/Testing/Structure/CodeStyle/GitWorkflow/Boundaries
- 修复 tsconfig.json 废弃的 baseUrl 配置
2026-05-11 23:02:39 +08:00
Sanjin c013bdae8a chore: 将 MAX_CHAT_TURNS 从 60 增加到 150 2026-05-01 16:51:49 +08:00
Sanjin 8136d30b05 fix: 移除不再使用的 DartNode 赞助链接
feat: 更新 matplotlib 字体设置以支持中文图表
2026-05-01 16:48:37 +08:00
Sanjin 1d80ea1766 Merge branch 'main' of https://github.com/jihe520/MathModelAgent 2026-05-01 16:45:56 +08:00
流年忆倾城 c65a7eb92d fix: 刷新页面后恢复任务状态 (#58)
Co-authored-by: grey <grey@greydeMacBook-Air.local>
2026-04-30 23:18:41 +08:00
Sanjin aac34a1efd feat: 添加 OpenAlex API Key 支持并更新相关配置 2026-04-24 22:32:45 +08:00
Sanjin 64620eb17a 删除: 移除不再使用的环境配置文件 .env.dev
Co-authored-by: Copilot <copilot@github.com>
2026-04-24 22:32:38 +08:00
EastonJiang 3e8a0d6cac enhance: 重构 prompt 架构并注入竞赛级建模/可视化/写作规范 (#54)
* refactor: split prompts.py into prompts/ package

Break the monolithic prompts.py into a modular package with one file per
agent (coordinator, modeler, coder, writer) plus shared utilities.
All existing imports remain backward-compatible via __init__.py re-exports.

* enhance: 注入建模策略和可视化规范到 modeler/coder prompt

Modeler: 注入模型选择决策树、高分组合方案、建模方案质量要求、
可视化方案指南、EDA和敏感性分析规范。

Coder: 注入 O 奖级可视化标准(配色/去框/置信带)、数据预处理规范
(泄露防范/参数记录)、数据特征输出规范(每张图后 print 关键指标
供写作手引用)、结果汇总模板。

* enhance: 注入论文写作规范到 writer prompt

注入 MCM 论文结构规范(章节篇幅占比)、段落式写作要求(禁止正文
分点列表)、各章节写作要点(摘要四段式/假设需Justification/参数
需定量依据/因果vs相关区分)、图表引用规范(每图至少3行分析)、
敏感性分析写作骨架、过渡连接词和学术语态指南。

* fix: 强制 writer 在论文中插入 Markdown 图片标签

之前 writer 只写"如图X所示"文字描述,未插入 ![](filename.png)
导致 docx 转换后无图片。新增图片插入强制规范到 writer prompt,
同时改进 writer_agent 传递图片列表的格式,给出明确的插入模板。

* enhance: 增强鲁棒性并支持 per-agent max_tokens 配置

- modeler_agent: 新增 JSON repair 函数和重试机制,处理 LLM 返回
  的畸形 JSON(未转义引号、markdown 包裹等)
- flows: dict 取值改用 .get() 防止模型输出缺少键时 KeyError
- setting/llm/llm_factory: 新增 *_MAX_TOKENS 配置项,允许为每个
  agent 独立设置最大输出 token 数
- .env.dev: 模板中补充 MAX_TOKENS 注释字段
2026-03-18 23:35:36 +08:00
Sanjin 353b16fdbd 修复: 移除过时的 QQ 群信息和相关图片 2026-02-22 15:34:44 +08:00
Sanjin dcb032bb08 add readme (#52)
add readme
2026-02-20 23:51:04 +08:00
MuWinds 5d676366ad Fix: 重构CoderAgent中的重试逻辑,并在LLM中启用JSON模式验证 (#44)
* Fix: Refactor retry logic in CoderAgent and enable JSON schema validation in LLM

* Fix: Improve error handling in CoderAgent by logging failure messages instead of raising exceptions
2025-10-03 20:41:39 +08:00
Sanjin f212a00b23 update readme (#43)
update readme
2025-09-21 00:04:50 +08:00
MuWinds d8457da78b Feat:将原本前端如果不上传数据就不进行解答的逻辑改成二次确认对话框 (#39)
* Fix:RedisManager to handle connection errors during client initialization

* Update: Enhance error handling and retry logic in CoordinatorAgent's run method

* feat: add file confirmation dialog to prevent submission without uploaded files
2025-09-16 23:30:24 +08:00
Sanjin 7782c0c837 status (#38) 2025-09-14 17:08:55 +08:00
MuWinds 6f8fb0d495 Update:添加CoordinatorAgent运行方法中的错误处理和重试逻辑 (#37)
* Fix:RedisManager to handle connection errors during client initialization

* Update: Enhance error handling and retry logic in CoordinatorAgent's run method
2025-09-14 16:15:32 +08:00
MuWinds ad9f3b3443 Fix:RedisManager to handle connection errors during client initialization (#36) 2025-09-14 10:42:00 +08:00
Sanjin c2845467b3 add claude.md 2025-09-12 22:58:40 +08:00
Sanjin 474c76e5a3 Add caution notice about AI-generated content (#33)
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-09-09 14:29:46 +08:00
Sanjin f388e6ddff Merge pull request #31 from jihe520/config
Config
2025-09-04 20:22:37 +08:00
Sanjin 25afa12a0c update 2025-09-04 16:00:33 +08:00
Sanjin e34b52caf9 update social 2025-09-04 00:03:21 +08:00
Sanjin e65db0cf8a Merge pull request #29 from jihe520/config
update readme
2025-09-03 19:59:29 +08:00
Sanjin b39b78dcee update readme 2025-09-03 19:54:41 +08:00
Sanjin 2c9be41948 Merge pull request #28 from jihe520/config
update readme
2025-09-03 14:32:53 +08:00
Sanjin 9a05fae38d update readme 2025-09-03 14:25:16 +08:00
Sanjin d531031a91 Merge pull request #27 from jihe520/config
Config
2025-09-02 23:21:39 +08:00
Sanjin 49c5d6349a update readme , simplify config 2025-09-02 23:19:47 +08:00
Sanjin 22b46a36e4 简化配置
添加文件夹显示
2025-09-02 00:02:36 +08:00
Sanjin 108551b87f Merge pull request #26 from MgAlNa3PO4/main
避免API验证时有空格导致错误
2025-08-31 23:00:06 +08:00
Fan's Mac 3566a77622 mod ApiDialog.vue file,Add whitespace filtering: trim base URL and model ID, remove all spaces from API key 2025-08-31 22:29:48 +08:00
Sanjin 219dc6a9dd Merge pull request #25 from jihe520/docker
feat: apikeydialog
2025-08-18 14:42:31 +08:00
Sanjin 1921f9da0c feat: apikeydialog
add apikeydialog 在网页配置 apikey
不需要再环境变量
update docker file and github action
change prompt
跳过问题核验导致不非数学建模问题
2025-08-18 14:41:40 +08:00