mirror of
https://github.com/Zippland/Snap-Solver.git
synced 2026-02-13 02:39:38 +08:00
Initial commit
This commit is contained in:
197
README.md
197
README.md
@@ -1,105 +1,154 @@
|
||||
# Snap Solver II
|
||||
[English](README_EN.md) | 中文
|
||||
|
||||
## 项目概述
|
||||
# 📚 Snap-Solver - AI笔试测评工具
|
||||
|
||||
Snap Solver II 是基于 Snap Solver 进化而来的强大的截图分析工具,可以帮助用户捕获屏幕内容,提取文本,并使用多种先进的AI模型进行智能分析。该应用程序使用Flask作为后端,提供网页界面,同时在系统托盘中运行,方便快速访问。
|
||||
> 🔍 一键识别,自动解答
|
||||
|
||||
## 主要功能
|
||||
## ✨ 项目简介
|
||||
|
||||
- **屏幕捕获**:快速截取屏幕图像
|
||||
- **文本提取**:从图像中自动识别和提取文本(通过 mathpix 模型)
|
||||
- **AI分析**:使用多种AI模型(包括GPT-4o、Claude、DeepSeek等)对提取的内容进行智能分析
|
||||
- **实时响应**:通过WebSocket技术实现实时交互和响应
|
||||
- **系统托盘集成**:应用在后台运行,通过系统托盘图标轻松访问
|
||||
Snap-Solver 是一个强大的AI笔试测评工具,只需**按下快捷键**,即可自动截取您电脑屏幕上的题目,通过 AI 进行识别并给出详细解答。无论是数学题、物理题、化学题、编程问题还是其他学术问题,Snap-Solver 都能为您提供专业的解答。
|
||||
|
||||
## 技术栈
|
||||
**本项目已完全开源,所有功能完全免费使用,无需付费!**
|
||||
> 如需**代部署服务**,可联系:[zylanjian@outlook.com](mailto:zylanjian@outlook.com)
|
||||
|
||||
- **后端**:Flask, Flask-SocketIO
|
||||
- **前端**:HTML5, CSS3, JavaScript
|
||||
- **AI模型集成**:
|
||||
- GPT-4o
|
||||
- Claude
|
||||
- DeepSeek (尚在优化中)
|
||||
- **图像处理**:Pillow, Mathpix
|
||||
- **系统集成**:pyautogui, pystray
|
||||
<img src="pic.jpg" alt="Snap-Solver 截图" width="400" />
|
||||
|
||||
## 安装指南
|
||||
## 🌟 核心功能
|
||||
|
||||
### 环境要求
|
||||
- 🖼️ **一键截图**:使用快捷键(Alt+Ctrl+S,可自定义)即可远程监控电脑屏幕
|
||||
- 🌐 **局域网共享**:一处部署,多处使用,同一网络下**所有设备**均可访问
|
||||
- 🔍 **OCR 文字识别**:支持 Mathpix API 识别数学公式和图片中的文字
|
||||
- 🧠 **多模型支持**:同时支持 GPT-4o、Claude-3.7 和 DeepSeek 等多种 AI 模型
|
||||
- 🔐 **VPN 代理支持**:可自定义 VPN 代理,支持国内用户通过代理访问 AI 模型
|
||||
- 🌓 **主题切换**:支持明暗主题切换,保护您的眼睛
|
||||
- 💻 **全平台支持**:Windows、MacOS、Linux 系统可用,手机端可通过浏览器访问
|
||||
|
||||
- Python 3.8+
|
||||
- pip(Python包管理器)
|
||||
## 🛠️ 技术架构
|
||||
|
||||
### 安装步骤
|
||||
- **后端**:Flask + SocketIO,提供 Web 服务和 WebSocket 实时通信
|
||||
- **前端**:HTML + CSS + JavaScript,提供直观的用户界面
|
||||
- **AI 接口**:
|
||||
- GPT-4o:OpenAI 最的图文理解模型(无推理)
|
||||
- Claude-3.7:Anthropic 的高级思考型模型(默认包含推理)
|
||||
- DeepSeek:国产大模型支持
|
||||
- Mathpix:专业的数学公式和文字识别服务
|
||||
|
||||
1. **克隆仓库**
|
||||
## 📋 使用前准备
|
||||
|
||||
```bash
|
||||
git clone https://github.com/yourusername/Snap-Solver-II.git
|
||||
cd Snap-Solver-II
|
||||
```
|
||||
1. **API Keys**:
|
||||
- [OpenAI API Key](https://openai.com)(用于 GPT-4o)
|
||||
- [Anthropic API Key](https://anthropic.com)(用于 Claude-3.7,可选)
|
||||
- [Mathpix API Key](https://mathpix.com)(用于 OCR 文字识别,可选)
|
||||
|
||||
2. **创建并激活虚拟环境**(推荐)
|
||||
2. **运行环境**:
|
||||
- [Python](https://www.python.org/downloads/) 3.x 版本
|
||||
- 必要的 Python 依赖包
|
||||
|
||||
```bash
|
||||
python -m venv .venv
|
||||
# Windows
|
||||
.venv\Scripts\activate
|
||||
# Linux/Mac
|
||||
source .venv/bin/activate
|
||||
```
|
||||
## 🚀 快速开始
|
||||
|
||||
3. **安装依赖**
|
||||
1. **克隆项目**:
|
||||
```bash
|
||||
git clone https://github.com/your-username/Snap-Solver.git
|
||||
cd Snap-Solver
|
||||
```
|
||||
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
2. **进入虚拟环境**:
|
||||
```bash
|
||||
py -m venv .venv
|
||||
.venv/Scripts/activate
|
||||
```
|
||||
|
||||
4. **启动应用**
|
||||
3. **安装依赖**:
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
```bash
|
||||
python app.py
|
||||
```
|
||||
4. **启动应用**:
|
||||
```bash
|
||||
python app.py
|
||||
```
|
||||
|
||||
应用启动后,会在系统托盘中显示一个图标,同时在同一局域网下的浏览器中访问 `http://XXX.XXX.XXX.XXX:5000` 即可打开Web界面。
|
||||
5. **访问服务**:
|
||||
- 本机访问:打开浏览器,访问 http://localhost:5000
|
||||
- 移动设备访问:使用同一局域网内的手机、平板等设备访问 http://[服务器IP]:5000
|
||||
|
||||
## 使用说明
|
||||
## 💡 使用指南
|
||||
|
||||
1. **截图分析**:
|
||||
- 点击"截图"按钮捕获屏幕内容
|
||||
- 系统自动提取图像中的文本
|
||||
- 选择AI模型进行智能分析
|
||||
### 1. 首次配置
|
||||
|
||||
2. **文本分析**:
|
||||
- 直接输入或粘贴文本内容
|
||||
- 选择合适的AI模型进行分析
|
||||
- 获取实时智能响应
|
||||
首次使用时,点击右上角的⚙️设置图标,配置:
|
||||
- AI 模型 API 密钥(至少需要一个)
|
||||
- OCR 识别设置(可选)
|
||||
- 代理设置(如需)
|
||||
- 系统提示词(可自定义)
|
||||
|
||||
## API密钥配置
|
||||
### 2. 截图解题
|
||||
|
||||
本应用集成了多种AI模型,需要相应的API密钥才能正常工作:
|
||||
1. 按下手机或平板上的 `截屏` 按钮键
|
||||
2. 在手机或平板上,会自动显示您的电脑屏幕截图
|
||||
3. 在移动设备上裁剪您想解答的题目区域
|
||||
4. 选择"发送图片至 AI"(直接分析图片)或"提取图中文本"(先识别文字再分析)
|
||||
5. 等待系统处理并查看详细解答
|
||||
|
||||
- OpenAI (GPT-4o)
|
||||
- Anthropic (Claude)
|
||||
- DeepSeek
|
||||
- Mathpix
|
||||
### 3. 文本解题
|
||||
|
||||
请确保在使用相应功能前配置正确的API密钥。
|
||||
如果已有题目文本,或者想要修改识别出的文字:
|
||||
1. 使用"提取图中文本"功能
|
||||
2. 编辑文本框中的内容
|
||||
3. 点击"发送文本至 AI"获取解答
|
||||
|
||||
## 注意事项
|
||||
## ⚙️ 高级配置
|
||||
|
||||
- 应用默认在端口5000上运行
|
||||
- 首次使用时可能需要授予屏幕截图权限
|
||||
- 所有分析都在本地处理,但AI请求会发送到相应的服务提供商
|
||||
您可以在设置面板中自定义多项参数:
|
||||
|
||||
## 贡献指南
|
||||
- **AI 模型**:选择不同的 AI 模型(GPT-4o、Claude-3.7、DeepSeek 等)
|
||||
- **语言**:设置 AI 回答的首选语言
|
||||
- **温度**:调整 AI 回答的随机性(较低值更精确,较高值更创意)
|
||||
- **系统提示词**:自定义 AI 的基础行为指令
|
||||
- **代理设置**:配置 HTTP 代理,便于国内用户访问
|
||||
|
||||
欢迎贡献代码、报告问题或提出功能建议!请通过以下方式参与项目:
|
||||
1. Fork仓库
|
||||
2. 创建功能分支 (git checkout -b feature/amazing-feature)
|
||||
3. 提交更改 (git commit -m 'Add some amazing feature')
|
||||
4. 推送到分支 (git push origin feature/amazing-feature)
|
||||
5. 创建Pull Request
|
||||
## 📞 获取帮助
|
||||
|
||||
## 许可证
|
||||
[Apache License](LICENCE.md)
|
||||
- 如有 bug 问题:请在本仓库提交 Issue
|
||||
- 如需**部署帮助**,可联系:[zylanjian@outlook.com](mailto:zylanjian@outlook.com)
|
||||
|
||||
## 🔧 常见问题
|
||||
|
||||
### 1. 截图功能无响应?
|
||||
- 确保以管理员权限运行应用
|
||||
- 检查是否授予了屏幕录制权限
|
||||
- 确认 Python 进程正在运行
|
||||
|
||||
### 2. 无法连接服务?
|
||||
- 检查防火墙设置
|
||||
- 确认移动设备与电脑在同一局域网
|
||||
- 验证服务器 IP 地址是否正确
|
||||
|
||||
### 3. API 调用失败?
|
||||
- 检查 API Key 是否正确设置
|
||||
- 确认网络连接是否正常
|
||||
- 如使用代理,检查代理设置是否正确
|
||||
|
||||
## 🔐 安全提示
|
||||
|
||||
- 您的 API 密钥存储在本地,不会上传到任何服务器
|
||||
- 建议只在可信任的局域网中使用本服务
|
||||
- 定期更新系统和依赖包以保障安全
|
||||
|
||||
## 🤝 参与贡献
|
||||
|
||||
欢迎提交 Issue 和 Pull Request!
|
||||
|
||||
1. Fork 本仓库
|
||||
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
|
||||
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
|
||||
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
||||
5. 提交 Pull Request
|
||||
|
||||
## 📜 开源协议
|
||||
|
||||
本项目采用 [Apache](LICENSE) 协议。
|
||||
|
||||
---
|
||||
|
||||
⭐ 如果这个项目对您有帮助,请给个 Star!感谢支持!
|
||||
|
||||
Reference in New Issue
Block a user