logo
5
6
WeChat Login

DiffusionPro

🚀 智能文档差异对比工具

基于 Myers 差分算法的专业文档版本对比分析平台

React TypeScript Vite TailwindCSS

✨ 产品特性

🎯 核心功能

  • 多格式支持: 支持 Word (.docx)、PDF (.pdf)、文本 (.txt) 文件对比
  • 智能差异检测: 基于 Myers 差分算法的精确文档差异分析
  • AI 智能分析: 集成多种 AI 模型,提供专业的差异分析报告
  • 可视化对比: 直观的并排对比视图,差异内容高亮显示
  • 导出功能: 支持导出 HTML 和 PDF 格式的对比报告
  • 历史记录: 完整的对比历史管理和查看功能

🤖 AI 模型支持

  • OpenAI: GPT-3.5, GPT-4, GPT-4o 等模型
  • Anthropic: Claude-3 系列模型
  • 通义千问: 阿里云大模型服务
  • DeepSeek: DeepSeek 系列模型
  • Ollama: 本地部署的开源模型
  • 自定义: 支持任何 OpenAI 兼容的 API 接口

📊 分析模板

  • 通用分析: 适用于各类文档的通用差异分析
  • 法律文档: 专门针对合同、协议等法律文件
  • 财务报告: 适用于财务报表、发票等财务文档
  • 业务方案: 针对商业计划、项目方案等业务文档
  • 自定义模板: 支持用户自定义分析提示词

🚀 快速开始

环境要求

  • Node.js 16.13.1 或更高版本
  • npm 或 pnpm 包管理器

安装步骤

  1. 克隆项目
git clone <repository-url> cd doc-diff
  1. 安装依赖
# 使用 pnpm (推荐) pnpm install # 或使用 npm npm install
  1. 启动开发服务器
# 使用 pnpm pnpm dev # 或使用 npm npm run dev
  1. 访问应用 打开浏览器访问 http://localhost:5173

生产构建

# 构建生产版本 pnpm build # 预览生产版本 pnpm preview

🔧 配置说明

AI 模型配置

  1. 进入设置页面: 点击左侧导航栏的"设置"选项
  2. 选择 AI 提供商: 从下拉菜单中选择您要使用的 AI 服务
  3. 配置 API 信息:
    • API Key: 输入您的 API 密钥
    • Base URL: 自定义 API 端点(可选)
    • 模型名称: 选择或输入模型名称
    • 温度值: 调整 AI 输出的创造性(0-1)

支持的 AI 提供商配置

OpenAI

API Key: sk-xxxxxxxxxxxxxxxx Base URL: https://api.openai.com/v1 (默认) 模型: gpt-4, gpt-3.5-turbo 等

通义千问

API Key: sk-xxxxxxxxxxxxxxxx Base URL: https://dashscope.aliyuncs.com/compatible-mode/v1 模型: qwen-turbo, qwen-plus, qwen-max

DeepSeek

API Key: sk-xxxxxxxxxxxxxxxx Base URL: https://api.deepseek.com/v1 模型: deepseek-chat, deepseek-coder

Ollama (本地部署)

API Key: 无需配置 Base URL: http://localhost:11434/v1 模型: llama2, codellama, mistral 等

📖 使用指南

基本操作流程

  1. 上传文档

    • 在首页点击上传区域或拖拽文件
    • 支持 .docx、.pdf、.txt 格式
    • 可同时上传两个文档进行对比
  2. 查看差异

    • 系统自动分析文档差异
    • 并排显示两个文档内容
    • 不同颜色标识增加、删除、修改的内容
  3. AI 分析

    • 配置 AI 模型后,系统自动生成分析报告
    • 支持选择不同的分析模板
    • 分析结果支持 Markdown 格式显示
  4. 导出结果

    • 点击导出按钮选择格式
    • 支持 HTML 和 PDF 两种格式
    • 导出内容包含差异对比和 AI 分析
  5. 历史记录

    • 所有对比记录自动保存
    • 可随时查看历史对比结果
    • 支持删除和重新分析

高级功能

  • 自定义提示词: 在设置页面创建专属的 AI 分析模板
  • 拖拽调整: AI 分析面板支持拖拽调整大小
  • 侧边栏折叠: 点击底部按钮折叠/展开左侧导航
  • 深色模式: 支持系统主题自动切换

🛠️ 技术栈

前端技术

  • React 18.3.1: 现代化的用户界面框架
  • TypeScript 5.8.3: 类型安全的 JavaScript 超集
  • Vite 4.5.14: 快速的前端构建工具
  • TailwindCSS 3.4.17: 实用优先的 CSS 框架
  • React Router 7.7.0: 客户端路由管理
  • Zustand 5.0.6: 轻量级状态管理

核心依赖

  • LangChain: AI 模型集成和调用
  • Mammoth.js: Word 文档解析
  • PDF-Parse: PDF 文档解析
  • Diff: 文档差异算法实现
  • React-Markdown: Markdown 内容渲染
  • Lucide-React: 现代化图标库

开发工具

  • ESLint: 代码质量检查
  • TypeScript ESLint: TypeScript 代码规范
  • PostCSS: CSS 后处理器
  • Autoprefixer: CSS 自动前缀

📁 项目结构

doc-diff/ ├── public/ # 静态资源 ├── src/ │ ├── components/ # 可复用组件 │ │ ├── DiffViewer.tsx # 差异对比组件 │ │ ├── Empty.tsx # 空状态组件 │ │ └── Layout.tsx # 布局组件 │ ├── pages/ # 页面组件 │ │ ├── Home.tsx # 首页 │ │ ├── Compare.tsx # 对比页面 │ │ ├── Settings.tsx # 设置页面 │ │ └── History.tsx # 历史记录 │ ├── utils/ # 工具函数 │ │ ├── aiAnalyzer.ts # AI 分析工具 │ │ ├── diffAlgorithm.ts # 差异算法 │ │ ├── documentParser.ts # 文档解析 │ │ └── exportUtils.ts # 导出功能 │ ├── stores/ # 状态管理 │ │ └── documentStore.ts # 文档状态 │ ├── hooks/ # 自定义 Hooks │ │ └── useTheme.ts # 主题管理 │ └── lib/ # 库文件 │ └── utils.ts # 通用工具 ├── .trae/ # 项目文档 └── package.json # 项目配置

🤝 贡献指南

我们欢迎所有形式的贡献!请遵循以下步骤:

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

开发规范

  • 使用 TypeScript 进行类型安全开发
  • 遵循 ESLint 代码规范
  • 组件大小控制在 300 行以内
  • 使用 Tailwind CSS 进行样式开发
  • 编写清晰的提交信息

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢

感谢以下开源项目的支持:

📞 联系我们

如果您有任何问题或建议,请通过以下方式联系我们:


⭐ 如果这个项目对您有帮助,请给我们一个 Star!

Made with ❤️ by DiffusionPro Team

About

No description, topics, or website provided.
Language
TypeScript81.7%
Markdown10.8%
HTML1.9%
JavaScript1.1%
Others4.5%