# TeXGenius **Repository Path**: fiagainster/tex-genius ## Basic Information - **Project Name**: TeXGenius - **Description**: 集成了AI和LaTeX能力的网站架构 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-01 - **Last Updated**: 2026-03-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TeXGenius - LaTeX智能写作助手 一个基于 AI 的 LaTeX 文档自动生成系统,支持多种文档模板,智能内容生成,表格和公式自动生成,以及 PDF 导出功能。 ## 📋 项目概述 TeXGenius 是一个基于人工智能的 LaTeX 文档自动生成系统,旨在帮助用户快速生成符合学术规范的 LaTeX 文档。系统通过 AI 技术自动填充内容,支持多种文档类型,并提供直观的前端界面。系统能够根据用户需求自动生成表格、公式和流程图,无需用户手动编辑这些元素。 ## ✨ 核心功能 ### 1. 多模板支持 - **公大毕业论文**:中国人民公安大学毕业论文模板,包含封面、独创性声明、使用授权书、摘要、目录、正文、结论、致谢、参考文献和附录 - **PUC Minas 学术论文**:PUC Minas 大学学术论文模板,符合巴西标准,包含摘要、关键词、引言、文献综述、研究方法、结果、结论等完整章节 - **清华大学学位论文**:清华大学学位论文模板,包含中英文摘要、目录、图表目录、完整章节结构、文献综述、参考文献和多个附录 - **可访问论文(IEEE格式)**:可访问性论文模板,使用IEEE引用格式,适合有视觉障碍的作者使用,包含高对比度颜色和易读字体 - **CCL-2023 会议论文**:第二十二届中国计算语言学大会(CCL-2023)论文模板,符合会议要求的格式规范 ### 2. AI 内容生成 - **智能填充**:根据模板结构自动生成符合学术规范的内容 - **自定义要求**:支持用户输入详细要求,AI 会根据要求生成针对性内容 - **语法优化**:确保生成的 LaTeX 代码语法完全正确 - **无 Markdown**:生成纯 LaTeX 代码,避免 Markdown 格式干扰 - **提示词优化**:智能分析用户要求,提取关键信息,提升 AI 理解准确性 - **编译前检查**:实现编译前格式预检查机制,对不符合要求的内容进行标记,减少误报 - **多API支持**:支持 DeepSeek API 和自定义 API 配置,灵活适配不同 AI 服务提供商 ### 3. 智能元素生成 - **表格自动生成**:AI 根据用户需求自动生成格式规范的 LaTeX 表格 - **公式自动生成**:AI 根据用户描述自动生成准确的 LaTeX 公式 - **流程图生成**:根据用户需求自动生成 TikZ 流程图 - **图片插入**:支持用户上传图片并自动处理路径 - **位置标签插入**:实现基于位置标签的图片插入机制,仅当用户指定明确位置标签时才插入图片 ### 4. 提示词模板库 - **专业模板**:提供通用提示词模板,包含表格和公式生成要求 - **一键导入**:用户可以直接导入模板并修改占位符,快速生成符合要求的内容 ### 5. PDF 导出 - **一键导出**:直接将生成的 LaTeX 代码编译为 PDF 文件 - **中文支持**:内置 xeCJK 包,完美支持中文内容 - **错误处理**:自动处理常见的编译错误 - **自动清理机制**:PDF生成成功后立即删除所有编译中间文件、临时缓存及过程数据 - **清理日志记录**:添加清理日志记录,确保操作可追溯,同时严格保护用户隐私数据 ### 6. 实时预览 - **PDF 实时预览**:将编辑区拆分为左右两部分,左侧编辑 LaTeX 代码,右侧实时显示 PDF 预览 - **智能编译**:当 LaTeX 代码一定时间(1秒)不变时自动编译,以最新代码为准 - **错误反馈**:编译失败时显示详细的错误信息,包括错误位置和原因 - **性能优化**:使用防抖技术,避免频繁编译导致性能问题 - **编译结果复用**:一旦预览成功,导出 PDF 时直接使用编译结果,避免重复编译 ### 7. 自定义模板 - **AI 生成**:根据用户描述自动生成符合要求的模板 - **本地管理**:支持用户保存和管理自定义模板 ### 8. 历史记录与回溯 - **自动记录**:完整记录用户每次操作的内容版本 - **快捷键回溯**:支持 "Ctrl+Z" 回溯功能,允许用户一键返回到上一个内容版本 - **版本管理**:支持至少10个版本的回溯能力 - **重做功能**:支持 "Ctrl+Y" 重做功能,回到下一个内容版本 ### 9. 项目管理 - **项目创建与管理**:支持创建、编辑、删除和导出项目 - **项目导入**:支持导入之前导出的项目文件,快速恢复工作进度 - **自动保存**:每30秒自动保存项目状态,避免数据丢失 - **项目详情**:包含项目名称、描述、创建时间、更新时间等信息 ### 10. 参考文献管理 - **文献上传**:支持上传 PDF 和 Word 文档格式的参考文献 - **文献列表**:管理已添加的参考文献 - **文献删除**:支持删除不需要的参考文献 - **Arxiv 集成**:支持直接从 Arxiv 搜索和导入文献 ### 11. 操作说明文档 - **详细指南**:提供完整的操作说明文档,包含系统概述、快速开始、功能介绍等 - **醒目的访问入口**:在前端界面添加操作说明文档入口 - **结构化内容**:采用清晰的章节结构,覆盖所有主要功能操作流程 - **常见问题解答**:包含常见问题及解决方案,帮助用户快速解决问题 ## 🛠 技术栈 ### 后端 - **Node.js** + **Express**:构建 RESTful API - **Deepseek API**:默认提供 AI 内容生成能力 - **自定义 API**:支持配置其他 AI 服务提供商 - **Multer**:处理文件上传 - **Docker**:容器化编译环境,确保 LaTeX 编译的一致性 - **Docker 容器池**:管理多个 LaTeX 编译容器,提高编译效率 ### Docker - **基础镜像**:使用 blang/latex:ubuntu 作为基础镜像 - **容器管理**:实现容器池机制,支持多并发编译 - **挂载卷**:通过挂载卷实现文件在容器与主机间的共享 ### 前端 - **Vue 3** + **Vite**:现代化前端框架 - **JavaScript**:主要开发语言 - **IndexedDB**:本地数据存储,用于保存项目、模板和配置 - **响应式设计**:适配不同设备 ## 🚀 快速开始 ### 环境要求 - **Node.js**:v16.0 或更高版本 - **npm**:v8.0 或更高版本 - **Docker**:安装 Docker 引擎(无需本地安装 LaTeX 环境,使用 Docker 容器编译) - **Docker Compose**:用于容器编排(可选) ### 安装与运行 #### 1. 克隆仓库 ```bash git clone https://gitee.com/fiagainster/latex-ai.git cd latex-ai ``` #### 2. 方式一:使用Docker运行(推荐) ##### 2.1 构建Docker镜像 ```bash # 构建LaTeX编译镜像 docker build -t latex-chinese . ``` ##### 2.2 启动服务 ```bash # 启动后端服务(会自动管理Docker容器池) cd backend npm install npm start ``` 后端服务会在 `http://localhost:3001` 启动 ##### 2.3 启动前端 ```bash cd ../frontend npm install npm run dev ``` 前端服务会在 `http://localhost:5173` 启动 #### 3. 方式二:使用Docker Compose运行 ```bash # 在项目根目录运行 docker-compose up --build ``` 服务会在 `http://localhost:3001`(后端)和 `http://localhost:5173`(前端)启动 #### 4. 方式三:本地运行(传统方式) ##### 4.1 后端配置 ```bash cd backend npm install # 启动服务器 npm start ``` 后端服务会在 `http://localhost:3001` 启动 ##### 4.2 前端配置 ```bash cd ../frontend npm install # 启动开发服务器 npm run dev ``` 前端服务会在 `http://localhost:5173` 启动 ## 🔧 使用指南 ### 1. 项目管理 - **创建项目**:点击 "新建项目" 按钮,填写项目名称和描述,选择模板类型 - **打开项目**:在项目列表中选择要打开的项目 - **编辑项目**:点击项目卡片上的 "编辑" 按钮修改项目信息 - **删除项目**:点击项目卡片上的 "删除" 按钮删除项目 - **导出项目**:点击项目卡片上的 "导出" 按钮,将项目导出为 JSON 文件 - **导入项目**:在首页的导入项目区域选择之前导出的 JSON 文件 ### 2. 选择模板 - 在前端界面选择所需的文档模板类型 - 输入文档主题和详细要求 - 点击 "生成内容" 按钮 ### 3. 配置 API Key #### DeepSeek API 配置 1. **获取 API Key**: - 访问 [DeepSeek 官方网站](https://www.deepseek.com/) - 注册或登录账号 - 进入控制台,创建或查看您的 API Key - 确保您的 API Key 有足够的配额用于生成内容 2. **配置步骤**: - 在前端界面顶部的"API配置"下拉菜单中选择"DeepSeek API" - 在输入框中粘贴您的 DeepSeek API Key - 系统会自动保存配置到浏览器本地存储 #### 自定义 API 配置 1. **准备 API 服务**: - 确保您有可用的 AI API 服务(如 OpenAI、Anthropic 等) - 获取 API URL 和 API Key - 了解该 API 的请求格式和参数要求 2. **配置步骤**: - 在前端界面顶部的"API配置"下拉菜单中选择"自定义API" - 输入 API URL(如 `https://api.openai.com/v1/chat/completions`) - 输入您的 API Key - 系统会自动保存配置到浏览器本地存储 #### API Key 安全说明 - **本地存储**:所有API配置仅保存在浏览器本地存储中,不会上传到服务器 - **加密存储**:API Key 会在本地进行加密存储,提高安全性 - **隐私保护**:您的 API Key 不会被分享给任何第三方 - **配额管理**:请留意您的 API 服务提供商的配额限制,避免超出使用限额 ### 4. 生成内容 - AI 会根据模板结构和用户要求生成内容 - 生成的内容会显示在右侧编辑区 - 用户可以手动编辑和调整内容 ### 5. 插入图片 - 在文档中添加位置标签,如 `[IMAGE]` - 点击 "插入图片" 按钮 - 上传图片文件并查看预览 - 填写图片信息并指定插入标记 - 系统会在指定位置插入图片代码 ### 6. 参考文献管理 - 点击 "管理文献" 按钮 - 上传 PDF 或 Word 格式的参考文献 - 查看和管理已添加的文献 - **Arxiv 文献搜索**:点击 "Arxiv搜索" 按钮,输入关键词搜索文献 - **导入 Arxiv 文献**:在搜索结果中选择文献并点击 "导入" 按钮 ### 7. 导出 PDF - 点击 "导出 PDF" 按钮 - 系统会自动编译 LaTeX 代码并下载 PDF 文件 ## 📁 项目结构 ``` latex-ai/ ├── backend/ # 后端代码 │ ├── services/ # 服务模块 │ │ ├── aiService.js # AI 服务 │ │ ├── pdfService.js # PDF 导出服务 │ │ ├── templateService.js # 模板服务 │ │ ├── arxivService.js # Arxiv 服务 │ │ ├── referenceService.js # 参考文献服务 │ │ ├── statsService.js # 统计服务 │ │ └── dockerPoolService.js # Docker容器池服务 │ ├── templates/ # 内置模板 │ ├── temp/ # 临时文件 │ ├── logs/ # 日志文件 │ ├── index.js # 主服务器文件 │ └── package.json # 依赖配置 ├── frontend/ # 前端代码 │ ├── src/ # 源代码 │ │ ├── App.vue # 主组件 │ │ ├── main.js # 入口文件 │ │ ├── style.css # 全局样式 │ │ ├── assets/ # 静态资源 │ │ └── components/ # 组件目录 │ │ ├── Documentation.vue # 操作说明文档组件 │ │ └── Stats.vue # 统计组件 │ ├── index.html # 前端入口 │ ├── package.json # 依赖配置 │ └── vite.config.js # Vite配置文件 ├── .gitignore # Git 忽略文件 ├── README.md # 项目说明 ├── Dockerfile # Docker构建文件 ├── docker-compose.yml # Docker Compose配置 └── build-and-push.sh # 构建和推送脚本 ``` ## 🎯 核心 API ### 后端 API - `GET /api/health` - 健康检查 - `GET /api/templates` - 获取模板列表 - `POST /api/template/preview` - 预览模板 - `POST /api/upload/reference` - 上传参考文献 - `POST /api/export/pdf` - 导出 PDF - `POST /api/compile/check` - 编译检查(用于实时预览) - `GET /api/preview/pdf/:fileName` - 获取预览 PDF 文件 - `DELETE /api/preview/cleanup` - 清理预览文件 - `POST /api/arxiv/search` - Arxiv 文献搜索 - `GET /api/arxiv/download/:arxivId` - 下载 Arxiv 文献 - `GET /api/stats` - 获取统计数据 ### 前端 API - 与后端 API 对接,提供直观的用户界面 ## 🔒 数据隐私 - **本地存储**:API Key 仅保存在浏览器本地存储中 - **临时文件**:上传的图片和生成的临时文件会定期清理 - **无数据上传**:用户输入的内容不会上传到任何第三方服务器 - **加密存储**:敏感数据在本地进行加密存储 ## 📝 注意事项 1. **API Key**:需要有效的 DeepSeek API Key 或其他 AI 服务提供商的 API Key 才能使用 AI 生成功能 2. **自定义 API 配置**:使用自定义 API 时,需要确保 API URL 格式正确,并且模型名称与 API 提供商兼容(默认使用 "gpt-3.5-turbo" 作为通用模型名称) 3. **Docker 环境**:使用 Docker 运行时,确保 Docker 服务正在运行,并且当前用户有权限执行 Docker 命令 4. **容器资源**:Docker 容器池默认最大容器数量为 5,可根据系统资源调整 5. **图片上传**:支持 JPG、PNG、GIF、WebP 等格式,最大大小为 5MB 6. **流程图**:需要用户在详细要求中明确提及,才会生成流程图 7. **位置标签**:插入图片时需要在文档中添加明确的位置标签,如 `[IMAGE]` 8. **Arxiv 集成**:使用 Arxiv 搜索功能需要网络连接,搜索结果可能受到 Arxiv API 限制 9. **编译时间**:首次运行时需要下载 Docker 镜像,可能需要较长时间 10. **项目数据**:项目数据存储在浏览器本地的 IndexedDB 中,建议定期导出备份 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request 来改进这个项目! ## 📄 许可证 本项目采用 MIT 许可证。 ## 📞 联系方式 如有问题或建议,欢迎在 Gitee 仓库中提交 Issue。 --- **享受 AI 带来的 LaTeX 文档生成便利!** 🎉