# Magician助手pro **Repository Path**: magicianswand/Magicianpro ## Basic Information - **Project Name**: Magician助手pro - **Description**: 这是一个AI - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-10-11 - **Last Updated**: 2026-10-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: AI ## README ![Python](https://img.shields.io/badge/Python-3.10%2B-blue) ![PySide6](https://img.shields.io/badge/PySide6-6.5%2B-green) ![License](https://img.shields.io/badge/License-Apache--2.0-orange) --- ## ✨ 特性一览 ### 💬 聊天核心 - **流式输出** —— 打字机效果,AI 逐字回复 - **Markdown 渲染** —— 代码块 / 粗体 / 斜体 / 列表 / 引用 / 链接 / 标题 - **思维链显示** —— 支持 DeepSeek-R1 的思考过程 - **多轮上下文** —— 自动携带历史 - **停止 / 重新生成** —— 完整的操作控制 - **消息编辑** —— 改后从该条重发 ### 🖼 多模态 - **图片上传** —— 粘贴 / 拖拽 / 按钮选择 - **支持视觉模型** —— GPT-4o / Qwen-VL 等 - **图片自动压缩** —— 最大边 1024,节省 token ### 📁 会话管理 - **多会话** —— 左侧列表一键切换 - **多标签页** —— `Ctrl+T` 新开,独立会话 - **自动标题** —— 首条消息作为会话名 - **本地持久化** —— JSON 文件存储 - **对话分支** —— 从任意消息分叉 - **消息固定** —— 钉住重要消息 ### 🎨 界面 - **明暗双主题** —— 带渐变过渡动画 - **自定义字体 / 字号** - **圆角气泡** + 头像 + 阴影 - **程序化图标** —— 零外部图片文件 - **窗口位置记忆** - **启动画面** —— MagicianAI Logo + 真实检测进度条 ### 🔍 搜索与导出 - **全局搜索** —— 跨所有会话,高亮跳转 - **多格式导出** —— TXT / Markdown / JSON ### 🌐 服务商 - **预置 6 家** —— OpenAI / DeepSeek / 通义千问 / Moonshot / Ollama / 自定义 - **HTTP 代理** 支持 - **Ollama 本地检测** —— 自动发现本地模型 - **一键测试连接** ### 🖥 系统集成 - **系统托盘** —— 关闭窗口最小化到托盘 - **全局快捷键** —— `Ctrl+Alt+Space` 任何程序呼出 - **系统通知** —— 回复完成时提醒 - **打字机音效** —— Windows 蜂鸣 ### 🚀 高级功能 - **AI 角色卡** —— 8 种人格一键切换 - **多模型对比** —— 一个 prompt 并发问多个模型 - **工作流编排** —— 多步 prompt 顺序执行,支持变量 - **云同步 (WebDAV)** —— 上传 / 下载会话 - **加密存储** —— AES 加密会话文件 - **Agent 模式** —— 多步推理 + 自我检查 - **插件系统** —— `ai_plugins/` 自动加载 ### 🛡 AI 沙箱控制 **让 AI 安全地操作你的电脑** —— 12 个受限工具,全部有安全机制 - **只读类**(自动执行):列目录 / 读文件 / 截图 / 读剪贴板 / 系统信息 / 打开网页 - **中危类**(弹窗确认):写文件(自动备份)/ 删文件(进回收站)/ 启动程序 / 写剪贴板 / 调音量 - **逃生舱**(默认禁用):执行任意命令(需输入 `I UNDERSTAND` 开启) **安全保障**: - ✅ 文件操作强制限制在 `ai_sandbox/` 目录 - ✅ 拒绝路径遍历(`../`) - ✅ 写文件自动备份到 `backups/` - ✅ 删除 = 移入 `trash/` 回收站 - ✅ 所有操作记录到 `logs/operations.log` - ✅ 程序白名单仅 4 个 - ✅ URL 只允许 http/https --- ## 🚀 快速开始 ### 1. 安装依赖 ```bash pip install PySide6 cryptography ``` **可选**: ```bash pip install psutil # 系统信息更详细 pip install pycaw comtypes # Windows 音量控制 ``` ### 2. 运行 ```bash python script1.py ``` 首次启动会看到 **MagicianAI** 启动画面,显示系统检测进度。 ### 3. 配置 API Key 1. 点击左下角 **⚙ 设置** 2. 选择 **服务商**(如 DeepSeek) 3. 填入 **API Key** 4. 点 **测试连接** 验证 5. 点 **保存** **获取 API Key**: | 服务商 | 网址 | |--------|------| | DeepSeek | https://platform.deepseek.com | | OpenAI | https://platform.openai.com | | 通义千问 | https://dashscope.console.aliyun.com | | Moonshot | https://platform.moonshot.cn | ### 4. 开始聊天 在输入框打字,按 **Enter** 发送。 --- ## ⌨️ 快捷键 | 键 | 功能 | |----|------| | `Enter` | 发送 | | `Shift + Enter` | 换行 | | `/` | 命令面板 | | `Ctrl + F` | 全局搜索 | | `Ctrl + N` / `Ctrl + T` | 新建会话 | | `Ctrl + W` | 关闭当前标签 | | `Ctrl + Shift + M` | 多模型对比 | | `Ctrl + Shift + W` | 工作流 | | `Ctrl + Alt + Space` | 全局呼出(需开启)| --- ## 📋 命令列表 输入 `/` 唤起命令面板: | 命令 | 功能 | |------|------| | `/new` | 新建会话 | | `/clear` | 清空当前会话 | | `/export` | 导出 | | `/theme` | 切换主题 | | `/model` | 打开设置 | | `/help` | 帮助 | | `/pin` | 固定最后一条 | | `/branch` | 创建分支 | | `/tab` | 新建标签 | | `/compare` | 多模型对比 | | `/role` | 切换角色 | | `/agent` | 开关 Agent 模式 | | `/sync` | 云同步 | | `/encrypt` | 开关加密 | | `/workflow` | 工作流 | | `/sandbox` | 开关沙箱 | | `/logs` | 查看沙箱日志 | --- ## 🖼 界面预览 ``` ┌────────────────────────────────────────────────────────────┐ │ AI 助手 Pro [沙箱已启用] [🔍] 就绪 │ ├──────────────┬─────────────────────────────────────────────┤ │ + 新对话 │ deepseek-chat │ │ 🤖 默认助手 ├─────────────────────────────────────────────┤ │ │ 会话1 × │ 会话2 × │ │ │ 会话列表 ├─────────────────────────────────────────────┤ │ 你好 │ │ │ 天气 │ [你] ─────────────────────┐ │ │ 代码 │ │ 消息内容 │ │ │ └── [你] │ │ │ │ │ │ [AI] ┌─────────────────── │ │ │ │ AI 回复内容 │ │ │ │ 【工具调用】write_file │ │ │ └── [AI] │ │ │ │ │ 🗑 删除会话 ├─────────────────────────────────────────────┤ │ 📊 Tokens │ 模板: [翻译] [总结] [解释] [改写] [续写] [🖼]│ │ 📊 多模型对比 │ ┌─────────────────────────────────────────┐ │ │ 🔀 工作流编排 │ │ 输入消息... │ │ │ ☁️ 云同步 │ └─────────────────────────────────────────┘ │ │ 🌓 切换主题 │ Enter 发送 [🔄][导出▾][⏹][发送▸] │ │ ⚙ 设置 │ │ └──────────────┴─────────────────────────────────────────────┘ ``` --- ## 📁 项目结构 ``` project/ ├── script1.py ← 主程序(单文件) ├── README.md ← 本文件 ├── BUILD.md ← 编译打包说明 ├── LICENSE ← Apache-2.0 ├── requirements.txt ← 依赖 └── .gitignore ``` 运行后自动生成: ``` ai_config_qt.json ← 配置(含 API Key) ai_sessions_qt/ ← 会话历史 ├── _index.json └── 20261012...json ai_workflows.json ← 工作流 ai_plugins/ ← 插件目录 .ai_key ← 加密密钥(如启用) ai_sandbox/ ← AI 沙箱工作区 ├── logs/operations.log ├── backups/ └── trash/ ``` --- ## 📦 依赖 **必需**: - Python 3.10+ - PySide6 6.5+ **可选**: - cryptography(加密存储) - psutil(系统信息) - pycaw + comtypes(Windows 音量控制) --- ## 🏗 编译打包 详见 [BUILD.md](BUILD.md)。 **一句话版**: ```bash pip install pyinstaller pyinstaller --noconfirm --windowed --onedir --collect-all PySide6 --collect-all cryptography --name MagicianAI script1.py ``` 输出在 `dist/MagicianAI/`。 --- ## 🔒 隐私说明 - **API Key** 和 **所有会话** 保存在本地 - 只在发消息时通过 **HTTPS 直连** 你配置的 API - **不经过任何第三方服务器** - **不上传** 任何数据 **注意**:分享项目时**不要提交**以下文件: - `ai_config_qt.json`(含真实 API Key) - `ai_sessions_qt/`(你的私人对话) - `.ai_key`(加密密钥) `.gitignore` 已配置忽略。 --- ## 🤝 贡献 欢迎提交 Issue 和 PR。 **插件开发**: 在 `ai_plugins/` 里放一个 `.py` 文件,定义 `register(main_window)` 函数: ```python def register(main_window): def hello(): from PySide6.QtWidgets import QMessageBox QMessageBox.information(main_window, "插件", "Hello!") main_window.register_plugin_command("/hello", "示例命令", hello) ``` 重启后自动加载。 --- ## 📄 License [Apache-2.0](LICENSE) —— 商用、修改、分发都行,保留版权声明。 --- ## 🙏 致谢 - [PySide6](https://www.qt.io/qt-for-python) —— Qt 官方 Python 绑定 - [DeepSeek](https://www.deepseek.com/) —— 优秀的国产大模型 - 所有开源贡献者 --- ## ⭐ 如果觉得有用 给个 Star ⭐ 支持一下! --- **Made with ❤️ by [Duck](https://gitee.com/magicianswand)** ``` ---