# llm-web2api **Repository Path**: it-wind/llm-web2api ## Basic Information - **Project Name**: llm-web2api - **Description**: 把大语言模型的web端转位api可以调用的接口。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-18 - **Last Updated**: 2025-09-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🤖 LLM Web2API > 一个将大语言模型Web端转换为可调用API接口的智能工具,让您无需API密钥也能享受AI服务。 [](https://golang.org) [](LICENSE) [](https://goreportcard.com/report/github.com/your-username/llm-web2api) ## ✨ 项目特色 - 🚀 **零配置启动** - 开箱即用,无需复杂配置 - 🔐 **无需API密钥** - 直接使用Web端,绕过API限制 - 🌐 **多模型支持** - ChatGPT、DeepSeek、Gemini等主流模型 - ⚡ **高性能处理** - 基于Go语言,支持高并发任务处理 - 🎯 **智能自动化** - 自动注入脚本,智能提取AI回复 - 🔄 **任务队列管理** - 支持任务超时、重试等高级功能 ## 🎯 核心目标 - **ChatGPT、DeepSeek、Gemini等大模型的Web端转API接口** - **避免因缺少API密钥而无法使用AI服务的困扰** - **让购买了OpenAI Plus等会员的用户能够通过程序调用AI服务** ## 🔧 核心原理 ```mermaid graph LR A[API请求] --> B[任务队列] B --> C[浏览器自动化] C --> D[JS脚本注入] D --> E[AI模型处理] E --> F[结果提取] F --> G[API响应] ``` 1. **浏览器自动化**:通过浏览器打开大语言模型的问答窗口 2. **JavaScript注入**:自动注入JS脚本,将API获取的问题输入到浏览器中 3. **结果提取**:等待AI输出完成后,通过JS获取结果并投送到API端 ## 📋 系统要求 | 组件 | 要求 | 说明 | |------|------|------| | **浏览器** | Chrome 90+ / Firefox 88+ / Edge 90+ | 支持现代Web标准 | | **扩展** | Tampermonkey | JavaScript注入支持 | | **服务端** | Go 1.21+ | 高性能任务处理 | | **内存** | 2GB+ | 推荐4GB以上 | ## 🚀 快速开始 ### 1. 📦 安装Tampermonkey | 浏览器 | 安装方式 | 链接 | |--------|----------|------| | **Chrome** | Chrome Web Store | [安装Tampermonkey](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo) | | **Firefox** | Firefox Add-ons | [安装Tampermonkey](https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/) | | **Edge** | Microsoft Edge Add-ons | [安装Tampermonkey](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd) | ### 2. ⚙️ 配置脚本 1. 点击Tampermonkey图标,选择"创建新脚本" 2. 复制对应模型厂商的JavaScript代码 3. 配置您的API域名和端口: ```javascript const SERVER_URL = 'http://127.0.0.1:8123'; ``` 4. 保存并启用脚本 ### 3. 🖥️ 服务端配置 (Go版) #### 实现API接口 | 接口 | 方法 | 路径 | 说明 | |------|------|------|------| | **任务列表** | `GET` | `/job/list` | 获取待处理任务ID列表 | | **获取问题** | `GET` | `/job/question?taskId=xxx` | 根据任务ID获取问题内容 | | **设置答案** | `POST` | `/job/answer?taskId=xxx` | 提交AI回复的答案 | #### 接口映射 ```go // 接口内部可以直接调用对应的方法 /job/list -> GetJobList() /job/question -> GetQuestion(taskID) /job/answer -> SetAnswer(taskID, answer) ``` ### 4. 🧪 API接口测试 #### 🔍 获取任务列表 ```bash curl http://localhost:8000/job/list ``` **响应示例:** ```json { "after_time": 1703123456789, "list": ["x12", "ysf2", "x13"] } ``` #### ❓ 获取任务问题 ```bash curl "http://localhost:8000/job/question?taskId=x12" ``` **响应示例:** ```json { "question": "请介绍一下人工智能的发展历史", "options": { "quietMs": 1500, "timeoutMs": 180000 } } ``` #### ✅ 设置任务答案 ```bash curl -X POST "http://localhost:8000/job/answer?taskId=x12" \ -H "Content-Type: application/json" \ -d '{"message": "人工智能是计算机科学的一个分支..."}' ``` **响应示例:** ```json { "message": "答案设置成功", "taskId": "x12", "status": "completed" } ``` ### 5. 🎉 使用方式 打开浏览器访问对应模型的域名,并携带激活参数role=master,比如访问: https://chatgpt.com/?model=gpt-5-thinking&role=master 注意当前窗口打开的是哪个模型,后续的任务就会基于这个模型构建。 比如:https://chatgpt.com/?model=gpt-5-thinking&role=master 后续任务用的是gpt-5-thinking 比如:https://chatgpt.com/?model=gpt-4o&role=master 后续任务用的是gpt-4o ## 🔌 支持的模型 | 模型 | 状态 | 特性 | 说明 | |------|------|------|------| | **OpenAI ChatGPT** | ✅ 支持 | Plus会员功能 | 支持GPT-4、GPT-3.5等 | | **DeepSeek** | ✅ 支持 | 最新模型 | 支持DeepSeek Chat等 | | **Google Gemini** | ✅ 支持 | Gemini Pro | 支持多模态输入 | | **Claude** | 🚧 开发中 | 对话能力 | 支持Claude 3等 | | **更多模型** | 🔄 持续添加 | - | 欢迎贡献新模型支持 | ## 📁 项目结构 ``` llm-web2api/ ├── 📄 README.md # 项目说明文档 ├── 📁 Tampermonkey/ # 浏览器脚本目录 │ ├── 🐱 openai.js # ChatGPT脚本 │ ├── 🔍 deepseek.js # DeepSeek脚本 │ └── 🌟 gemini.js # Gemini脚本 ├── 📁 api/ # API服务目录 │ ├── 🖥️ server.js # Node.js API服务器 │ └── 🐹 server.go # Go API服务器 ├── 📁 handlers/ # 处理器目录 │ └── 🎯 handlers.go # Go版本处理器 ├── 📄 go.mod # Go模块文件 ├── 📄 go.sum # Go依赖文件 └── 📄 main.go # Go主程序 ``` ## 🛠️ 高级功能 - **🎯 多模型支持**:同时支持多个AI模型,灵活切换(开发中) - **🔄 错误重试**:自动重试失败的请求,提高成功率 - **📝 日志记录**:详细的请求和响应日志,便于调试 - **🚦 速率限制**:防止API滥用,保护服务稳定性 - **⏰ 任务超时**:智能任务管理,避免资源浪费 - **🔒 并发控制**:支持多窗口并发处理,提升效率 ## 🔒 安全注意事项 ⚠️ **重要提醒:** - 🔐 请确保API服务器仅在内网或受信任的网络中运行 - 🛡️ 建议配置身份验证机制,防止未授权访问 - 🔄 定期更新脚本以适配网站变化 - 📋 严格遵守各AI服务商的使用条款 - 🚫 不得用于商业用途或违反服务条款的行为 ## 🤝 贡献指南 我们欢迎所有形式的贡献!🎉 ### 贡献方式 1. 🍴 **Fork本仓库** 2. 🌿 **创建特性分支** (`git checkout -b feature/AmazingFeature`) 3. 💾 **提交更改** (`git commit -m 'Add some AmazingFeature'`) 4. 🚀 **推送到分支** (`git push origin feature/AmazingFeature`) 5. 🔄 **开启Pull Request** ### 贡献类型 - 🐛 **Bug修复**:发现并修复代码问题 - ✨ **新功能**:添加新的AI模型支持 - 📚 **文档改进**:完善README、API文档等 - 🎨 **代码优化**:改进代码结构、性能优化 - 🌍 **国际化**:添加多语言支持 ## 📄 许可证 本项目采用 **MIT许可证** - 查看 [LICENSE](LICENSE) 文件了解详情 ## ⚠️ 免责声明 > **重要声明:** 本项目仅供学习和研究使用。使用者需要遵守相关AI服务商的服务条款和法律法规。开发者不对因使用本项目而产生的任何后果承担责任。 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 📧 发送邮件至:[guiqiang.g@gmail.com](mailto:guiqiang.g@gmail.com) - 🌟 给项目点个Star支持我们! ## 🙏 致谢 感谢以下开源项目和服务: - [Tampermonkey](https://www.tampermonkey.net/) - 强大的用户脚本管理器 - [Go](https://golang.org/) - 高性能编程语言 - 所有贡献者和用户的支持 ---