Commit Graph

9 Commits

Author SHA1 Message Date
46a60fe00b refactor: 实现Agent节点抽离架构,支持可配置化交互
## 主要改进

### 节点抽离架构
- 创建独立的节点基类 (BaseNode, NodeContext)
- 将TocGenerator的5个节点抽离为独立模块
- 支持节点间的松耦合和可重用设计

### Agent构建器模式
- 实现AgentBuilder基类支持灵活的工作流组装
- 提供TocAgentBuilder用于构建目录生成Agent
- 支持条件边和无条件边的配置

### 多模式交互管理
- 实现InteractionHandler支持三种模式:
  - INTERACTIVE: CLI交互模式
  - SILENT: 静默模式(使用默认值)
  - PROGRAMMATIC: 程序化模式(使用预设值)
- 通过NodeContext实现交互与业务逻辑解耦

### 测试验证
- 所有测试通过,验证架构设计正确性
- 支持AI智能生成和模板生成两种模式
- 完整的错误处理和日志记录

## 技术细节

### 新增文件
- `nodes/base.py`: 节点基础接口
- `nodes/toc/*`: TocGenerator各节点实现
- `agents/base.py`: Agent构建器基类
- `agents/builders/toc_builder.py`: Toc构建器
- `agents/interaction.py`: 交互管理器

### 架构优势
- 节点可独立测试和复用
- 支持不同交互模式的无缝切换
- 遵循开闭原则,易于扩展新节点
- 符合PROJECT_SPEC.md的模块化规范

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-28 17:20:15 +08:00
24880dcb71 refactor: 使用Word原生编号功能替代手动编号
- 删除WordProcessor中的手动编号逻辑
- 添加_extract_title_text提取纯文本标题
- 修改TocGeneratorAgent生成不含编号的标题
- 让Word通过Heading样式自动管理编号
- 支持Word原生目录功能

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-27 10:39:53 +08:00
2ff96ea544 refactor: 将目录生成功能抽取为独立的TocGeneratorAgent
- 创建独立的TocGeneratorAgent,专门负责目录生成
- 从AnalysisAgent中移除700+行冗余代码
- 添加统一的LLM服务层,避免重复创建客户端实例
- 修复所有违反PROJECT_SPEC.md规范的代码:
  - 移除防御编程(copy()方法)
  - 实现立即失败原则(异常直接抛出)
  - 统一常量定义(CATEGORY_NAMES)
  - 规范import语句位置
  - 修复私有方法调用问题
- 保持向后兼容性,不改变原有接口

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-27 10:12:44 +08:00
e6103c711f refactor: 按照PROJECT_SPEC.md规范重构代码
修复架构和代码规范违规问题:

架构修复:
- 创建internal目录(内部模块,禁止外部import)
- 恢复ARCHITECTURE.md文档
- 移除未定义的utils目录
- 清理临时测试目录

代码规范修复(严格遵循核心哲学):
- 移除所有try-except,让错误立即暴露
- 移除所有防护编程(不返回bool/错误字符串)
- 简化为MVP版本(每个命令组只保留核心功能)
- 移除所有美化输出,使用简单print

功能实现:
- 实现generate命令(只保留task子命令)
- 实现assemble命令(只保留tables子命令)
- 修复bidmaster/__init__.py导出
- 添加缺失的TableGenerator类

文件精简:
- generate.py: 262行 → 66行
- assemble.py: 293行 → 64行
- 移除所有延迟导入和内部import

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 20:02:59 +08:00
a01fa47a00 fix: 修复章节编号错乱问题并优化子标题生成
## 主要修复
- 修复子标题编号与父章节编号不匹配的问题
- 从Agent层移除编号处理逻辑,改为在Word生成时动态计算编号
- 优化编号识别算法,支持多级编号格式(1.、1.1、1.1.1等)

## 技术改进
- 在WordProcessor中实现动态章节编号功能
- 使用正则表达式准确提取编号和内容
- 简化Agent工作流,专注于内容生成而非格式化
- 添加original_index字段到ScoringCriteria模型

## 工作流优化
- 调整LangGraph节点执行顺序:生成章节→映射→生成子标题→AI审核→最终确定
- 章节顺序严格遵循招标文件评分表原始顺序
- 职责分离:Agent专注内容,Word处理器专注格式

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 09:52:38 +08:00
43f56eeffa feat: 实现Word标书模板生成功能
- 新增WordProcessor类,支持从三级章节结构生成专业Word模板
- 集成Word生成功能到project new命令,实现完整工作流
- 自动生成标题层级结构,支持1-3级标题格式
- 为评分项添加占位符和评分提示,指导用户编写
- 添加目录占位符提示,支持Word自动更新功能
- 项目创建现在输出:JSON解析结果 + 任务清单 + Word模板
- 符合开发规范:解析招标文件,生成任务清单和Word框架

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 15:25:00 +08:00
835f4b604c feat: 实现交互式project new命令
- 简化project new命令为交互式体验,移除复杂参数
- 添加友好的文件路径输入引导和验证
- 自动生成带日期的默认项目名称
- 添加目录冲突检测和确认机制
- 创建完整的项目结构(analysis_result.json + tasks.json)
- 生成结构化任务清单,支持后续内容生成
- 显示详细的创建结果和三级目录结构
- 符合开发规范要求的简洁易用设计

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 15:17:01 +08:00
f48971cf67 feat: 实现完整三级标题生成功能
- 扩展DocumentChapter模型支持嵌套结构和评分值
- 新增智能分组算法,按关键词和前缀对评分项进行分类
- 重写章节生成逻辑,支持一级、二级、三级标题完整结构
- 优化显示系统,支持递归显示和颜色区分
- 增强表格解析能力,处理复杂的合并单元格结构
- 改进AI识别逻辑,更好地识别评分表格类型
- 完善.gitignore文件,添加项目相关忽略规则

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 14:33:30 +08:00
47fc26f3f0 feat: 初始化BidMaster-CLI项目
- 实现三层架构(CLI/Agent/Tools)
- 完成招标文件解析器(支持Excel/CSV/Word)
- 实现AI智能表格识别和分类
- 支持商务/技术评分项智能分离
- 实现RAG知识库管理
- 完成专业目录结构生成
- 修复编码规范违规问题

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 13:50:13 +08:00