# AI划词补写小工具 **Repository Path**: fiagainster/ai_write_helper ## Basic Information - **Project Name**: AI划词补写小工具 - **Description**: 专注于AI辅助写作的开源项目,提供高效的文字生成与编辑工具,支持多场景应用,助力创作者提升效率。 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-11-26 - **Last Updated**: 2026-01-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI写作助手 - AI划词补写小工具 ![Python](https://img.shields.io/badge/Python-3.8%2B-blue.svg) ![License](https://img.shields.io/badge/License-MIT-green.svg) 一款简洁易用的桌面应用程序,让您可以在任意位置划选文本,通过AI智能分析划词和文档内容,对整个文档进行智能重写和优化。 ## 📋 项目概述 AI写作助手是一款轻量级跨平台桌面应用,旨在通过智能辅助写作,提升您的文档创作效率。只需在任意应用中划选文本内容并按下Enter键,系统将自动读取选中内容和目标文档,调用AI进行综合分析和全局优化,无需切换应用程序,实现无缝创作体验。 ### 核心功能 - **智能文本补写**:划选任意文本,一键触发AI补写,AI将综合分析划词和文档内容进行智能生成 - **多种AI服务支持**:支持DeepSeek、豆包、Kimi、通义千问和Ollama本地模型,可根据需求选择 - **上下文感知**:AI会同时读取划词信息和目标文档内容,进行综合判断和生成 - **主题定制**:支持自定义主题提示词,引导AI生成符合特定风格或方向的内容 - **全局监听**:支持跨应用程序的文本捕获与处理 - **多种文档格式支持**:兼容TXT、MD、DOCX等常用文档格式 - **灵活写入模式**:支持三种写入模式 - 增量写入:追加到文档末尾 - 全量重写:替换整个文档 - 光标补写:在指定位置插入内容,不改变上下文 - **实时状态反馈**:操作过程中显示清晰的处理状态,让您随时了解进度 - **最小化球功能**:可将应用最小化为悬浮球,实时显示处理进度,带有动态效果 - **安全加密存储**:使用AES加密保护API密钥等敏感信息 - **简洁直观界面**:单窗口设计,核心功能一目了然,包含帮助标签页 - **完善的错误处理**:详细日志记录与友好错误提示 ## 🖥️ 系统要求 ### 硬件要求 - CPU: 2核及以上 - 内存: 4GB及以上 - 存储空间: 100MB及以上 ### 软件要求 - 操作系统: Windows 10/11 或 macOS 10.15+ - Python: 3.8 或更高版本 - AI服务配置:支持多种AI服务,需根据选择的服务配置相应的API密钥或模型 - DeepSeek API 密钥(需自行注册获取) - 豆包API 密钥(需自行注册获取) - Kimi API 密钥(需自行注册获取) - 通义千问API 密钥(需自行注册获取) - Ollama本地模型(需自行安装Ollama并下载模型) ## 🚀 安装指南 ### 1. 下载项目 将项目代码下载到本地计算机的任意目录。 ### 2. 安装依赖 打开命令行工具(Windows:cmd或PowerShell;macOS/Linux:Terminal),导航到项目目录,执行以下命令安装所需依赖: ```bash pip install -r requirements.txt ``` ### 3. 运行应用 ```bash python main.py ``` ## 📝 使用说明 ### 首次使用配置 1. 启动应用后,将直接显示主配置窗口 2. 在配置界面中完成以下设置: - **AI服务选择**:从下拉菜单中选择您要使用的AI服务(DeepSeek、豆包、Kimi、通义千问或Ollama本地模型) - **API设置**:根据选择的AI服务,输入相应的API密钥或模型名称并验证 - 对于Ollama,输入您已下载的模型名称(如llama3、gemma等) - **文档设置**:选择或创建目标文档,选择写入模式 - 增量写入:生成的内容会追加到文档末尾 - 全量重写:生成的内容会替换整个文档 - 光标补写:在文档中指定位置插入内容,不改变上下文 - **主题提示词**:设置AI生成的主题方向指导(可选) 3. 点击「保存配置」按钮完成设置 ### 日常使用 #### 增量写入/全量重写模式 1. 在任意应用程序中划选需要重点关注或修改的文本内容 2. 按下Enter键触发AI处理 3. 观察应用窗口底部的状态栏或最小化球,了解处理进度: - 「处理中」:AI正在分析和生成内容 - 「生成中」:AI正在生成补写内容 - 「写入中」:AI正在写入文档 - 「已完成」:处理完成 - 「已失败」:处理过程中出现问题 4. AI进行综合分析后,根据选择的写入模式处理文档 5. 处理完成后,可直接查看文档内容 #### 光标补写模式 1. **添加光标标记**:在目标文档中,在您希望AI插入内容的位置手动输入`[CURSOR]`(大写,带方括号) 2. **保存文档**:确保标记已保存到文档中 3. 在任意应用程序中划选需要重点关注或修改的文本内容 4. 按下Enter键触发AI处理 5. 观察应用窗口底部的状态栏或最小化球,了解处理进度 6. 处理完成后,查看文档: - AI会将生成的内容插入到`[CURSOR]`标记位置 - 标记会自动移除,不会留在文档中 ### 最小化球功能 1. 点击「最小化」按钮将应用最小化为悬浮球 2. 悬浮球会实时显示处理进度,带有动态波纹效果 3. 点击悬浮球可恢复应用窗口 4. 悬浮球始终显示在屏幕最上层,不会被其他窗口遮挡 5. 支持拖拽移动位置 ### 主题提示词使用指南 主题提示词用于指导AI生成内容的方向和风格,例如: - 输入"科技论文风格,注重数据分析和逻辑推理"将使文档更具学术性 - 输入"商业报告风格,突出结论和行动建议"将使文档更专业简洁 - 输入"创意写作,使用生动的描述和比喻"将使文档更富有表现力 如果不设置主题提示词,AI将保持原文档的专业风格和内容方向 ## 🔄 功能更新说明 ### 最新更新 - **多种AI服务支持**:新增支持DeepSeek、豆包、Kimi、通义千问和Ollama本地模型,可根据需求选择 - **光标补写功能**:新增光标补写模式,支持在文档指定位置插入内容,不改变上下文 - **多种文档格式支持**:新增对Word(DOCX)和Markdown(MD)文档的支持 - **灵活写入模式**:支持增量写入、全量重写和光标补写三种模式,可根据需求选择 - **最小化球功能**:可将应用最小化为悬浮球,实时显示处理进度,带有动态波纹效果 - **优化的UI布局**:调整界面布局,将帮助功能与其他功能并列,提升美观度 - **实时进度显示**:在最小化球上实时显示处理状态,响应及时,最多显示3个字符 - **改进的文档处理**:优化了文档读取和写入逻辑,提高了稳定性和兼容性 - **简洁UI设计**:全新的单窗口布局,核心功能一目了然,操作更加便捷 - **实时状态反馈**:新增状态栏,实时显示处理进度和结果,提升用户体验 - **主题提示词系统**:专注于主题方向指导,让用户更直观地控制生成内容的风格 - **增强的内容清理机制**:确保生成文档纯净,无额外说明文本 - **原子写入保障**:采用临时文件+原子替换的方式,确保文档写入的安全性和完整性 ## 📝 技术说明 ### 工作原理 1. **监听系统事件**:应用通过全局键盘和鼠标监听划选文本和Enter键事件 2. **内容收集**:同时读取选中的文本内容和目标文档的全部内容 3. **AI处理**:调用配置的AI服务(DeepSeek、豆包、Kimi、通义千问或Ollama本地模型),结合内置优化提示词和用户自定义主题提示词,进行综合分析和生成 4. **智能清理**:对AI生成的内容进行智能清理,移除不必要的标记和说明文本 5. **写入模式处理**:根据配置的写入模式(增量、全量或光标补写)处理生成的内容 6. **原子写入**:使用临时文件+原子替换的方式,安全地将处理后的内容写回目标文档 7. **状态反馈**:实时更新处理状态到状态栏和最小化球,让用户随时了解进度 ### 原子写入机制 系统采用了先进的原子写入技术,确保文档更新的安全性: 1. 首先将新内容写入临时文件 2. 验证临时文件写入成功 3. 执行原子替换操作,用临时文件替换原文件 4. 成功后删除临时文件 这种机制避免了在写入过程中因程序崩溃或系统故障导致的文件损坏问题 ## 🛠️ 项目结构 ``` ai_write_helper/ ├── __init__.py # 包初始化文件 ├── core/ # 核心模块 │ ├── __init__.py │ ├── config_manager.py # 配置管理,处理配置加载、保存和加密 │ ├── exceptions.py # 自定义异常类 │ ├── log_manager.py # 日志管理系统 │ └── app.py # 应用核心逻辑 ├── services/ # 服务模块 │ ├── __init__.py │ ├── api.py # 多种AI服务通信服务(DeepSeek、豆包、Kimi、通义千问、Ollama) │ ├── document.py # 文档读写服务,支持TXT、MD、DOCX等格式 │ └── monitor.py # 全局文本监听服务 ├── ui/ # 用户界面模块 │ ├── __init__.py │ └── main_window.py # 主配置窗口和最小化球组件 ├── config/ # 配置相关 │ └── __init__.py └── utils/ # 工具模块 └── __init__.py ``` ## 🔧 技术栈 - **Python 3.8+**: 核心开发语言 - **PyQt6**: GUI界面开发 - **pynput**: 全局键盘和鼠标监听 - **requests**: API通信 - **python-docx**: DOCX文档处理 - **cryptography**: 安全加密存储 - **zipfile**: DOCX文件备用处理方案 ## 📁 模块说明 ### 核心模块 (core/) - **config_manager.py**: 负责应用配置的加载、保存、验证和加密管理,确保API密钥等敏感信息安全存储。 - **log_manager.py**: 实现应用的日志系统,支持不同级别日志记录和文件轮转。 - **exceptions.py**: 定义应用特有的异常类,用于统一错误处理。 - **app.py**: 应用核心类,协调各模块间的交互。 ### 服务模块 (services/) - **monitor.py**: 实现全局文本划选监听和Enter键触发机制,负责捕获用户选中的文本,支持防抖处理和进度更新。 - **api.py**: 封装多种AI服务调用,包括DeepSeek、豆包、Kimi、通义千问和Ollama本地模型,处理请求构造、响应解析和错误重试。 - **document.py**: 提供文档读写服务,支持TXT、MD、DOCX等多种格式,实现增量、全量和光标补写三种写入模式。 ### UI模块 (ui/) - **main_window.py**: 实现应用的主配置窗口,包含API设置、文档设置、主题提示词编辑和帮助功能。实现了最小化球组件,支持实时进度显示和动态效果。 ## 🛡️ 安全特性 - **AES加密存储**: 敏感信息如API密钥使用AES加密存储 - **权限验证**: 文档操作前进行文件路径和权限验证 - **日志脱敏**: 关键信息在日志中脱敏处理 ## 📋 开发指南 ### 添加新功能 1. 在相应模块目录下实现新功能 2. 更新配置管理器以支持新配置项 3. 在UI中添加对应的配置界面 4. 更新README文档 ### 测试 项目包含单元测试,位于 `tests/`目录: ```bash python -m tests.run_tests ``` ### 打包应用 使用PyInstaller打包应用: ```bash pyinstaller ai_write_helper.spec ``` 打包后的可执行文件将位于 `dist/`目录下。 ## 🤝 贡献指南 欢迎提交Issue和Pull Request!请确保您的代码遵循项目的编码规范。 ## 📄 许可证 本项目采用MIT许可证。详见LICENSE文件。 ## 📧 联系信息 如有问题或建议,请通过以下方式联系: - 项目邮箱: 508125305@qq.com --- > 💡 提示:请确保在使用前正确配置API密钥,以获得最佳使用体验。