# umint-2api-cfwork **Repository Path**: Chinese-tingfeng/umint-2api-cfwork ## Basic Information - **Project Name**: umint-2api-cfwork - **Description**: 无头浏览器 (Headless Browser)、无需 Cookie、自动持久化会话、匿名与反检测:高级伪装技术、自动绕过 Cloudflare 人机验证、原生流式 API 转换、OpenAI 标准兼容、多模型智能路由、实时健康监控、开发者驾驶舱 UI、Docker 一键部署、自动会话管理、请求水印追踪、错误重试机制、CORS 自动处理、自适应负载均衡 - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-10 - **Last Updated**: 2025-11-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🚀 umint-2api Cloudflare Worker
![Version](https://img.shields.io/badge/Version-8.0.5-FF6B00?style=for-the-badge&logo=github) ![License](https://img.shields.io/badge/License-Apache%202.0-00BFFF?style=for-the-badge&logo=apache) ![Deploy](https://img.shields.io/badge/Deploy-1%20Click-00D26A?style=for-the-badge&logo=cloudflare) **✨ 将 umint-ai.hf.space 转换为 OpenAI 兼容 API 的高性能代理 ✨** [快速开始](#-懒人一键部署) • [使用教程](#-详细使用教程) • [技术原理](#-技术原理详解) • [贡献指南](#-扩展开发指南)
## 📖 目录 - [🎯 项目简介](#-项目简介) - [✨ 核心特性](#-核心特性) - [⚡ 快速开始](#-快速开始) - [🚀 懒人一键部署](#-懒人一键部署) - [📚 详细使用教程](#-详细使用教程) - [🔧 技术原理详解](#-技术原理详解) - [🏗️ 系统架构](#️-系统架构) - [📊 功能对比](#-功能对比) - [🔮 未来发展](#-未来发展) - [🛠️ 扩展开发](#️-扩展开发) - [📋 项目结构](#-项目结构) - [📄 开源协议](#-开源协议) - [🤝 贡献指南](#-贡献指南) - [💝 致谢](#-致谢) ## 🎯 项目简介 > 🌟 **"让每个人都能轻松访问最先进的AI模型"** - 这就是 umint-2api 的使命! umint-2api 是一个创新的 **Cloudflare Worker 单文件应用**,它巧妙地将 [umint-ai.hf.space](https://umint-ai.hf.space) 的后端服务转换为完全兼容 **OpenAI API 标准** 的高性能接口。 ### 🎪 项目诞生记 ``` 🤔 问题发现:umint-ai 提供了强大的多模型访问能力,但缺乏标准API接口 💡 灵感闪现:为什么不创建一个桥梁,让开发者能像使用OpenAI一样使用umint? 🛠️ 技术实现:利用Cloudflare Worker的轻量级边缘计算能力 🎯 目标达成:现在你可以用熟悉的OpenAI SDK访问16个顶级AI模型! ``` ## ✨ 核心特性 ### 🎨 用户体验 - **🧩 开箱即用** - 单文件部署,无需复杂配置 - **🎪 开发者驾驶舱** - 内置功能丰富的Web UI,实时监控和测试 - **📱 响应式设计** - 在手机、平板、电脑上都有完美体验 ### 🔧 技术特性 - **🔌 OpenAI 完全兼容** - 支持所有主流OpenAI SDK和客户端 - **⚡ 高性能代理** - 基于Cloudflare全球边缘网络 - **🔄 实时流式传输** - 支持Server-Sent Events (SSE) 流式响应 - **🔒 企业级安全** - Bearer Token认证 + CORS跨域支持 ### 🌟 模型支持 **🚀 16个顶级AI模型一键调用!** - 🎯 **推理王者**: `moonshotai/kimi-k2-thinking` - 🧠 **代码专家**: `qwen/qwen3-coder-480b-a35b-instruct` - 💭 **思维巨匠**: `qwen/qwen3-max-thinking` - 🔥 **最新技术**: `openai/gpt-5-chat-latest` - ... 还有更多等你探索! ## ⚡ 快速开始 ### 📋 前置要求 - [x] Cloudflare 账户([免费注册](https://dash.cloudflare.com/sign-up)) - [x] 基本的Web使用经验 - [ ] 无需服务器知识!🎉 ### 🚀 懒人一键部署
**👇 点击下方按钮,1分钟完成部署!👇** [![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/lzA6/umint-2api-cfwork)
#### 🎯 一键部署详细步骤 1. **点击上方蓝色按钮** 🖱️ 2. **登录/注册 Cloudflare 账户** 🔐 3. **选择部署位置** 🌍(推荐选择离你近的区域) 4. **点击 "Deploy"** 🚀 5. **等待部署完成** ⏳(约30秒) 6. **复制你的 Worker URL** 📋 7. **开始使用!** 🎊 **💡 小贴士**: 部署完成后,访问你的 Worker URL 就能看到功能完整的开发者驾驶舱! ## 📚 详细使用教程 ### 🎪 开发者驾驶舱使用指南 访问你的 Worker 根路径,你将看到一个功能强大的控制台: ``` https://你的worker.你的子域名.workers.dev/ ``` #### 🎛️ 控制台功能详解 | 区域 | 功能 | 图标 | 说明 | |------|------|------|------| | **🔍 状态指示器** | 服务健康检查 | 🟢⚪🔴 | 实时显示API服务状态 | | **📋 信息面板** | API配置信息 | 📊 | 显示Endpoint、API Key等 | | **🛠️ 集成指南** | 客户端配置 | 📱💻 | cURL、Python、LobeChat等 | | **💬 实时终端** | API测试工具 | 🎮 | 直接在网页测试API | ### 🔑 API 密钥配置 **默认 API Key**: `1` (就是这么简单!🎯) ```bash # 在所有请求的 Header 中使用 Authorization: Bearer 1 ``` ### 🎯 主流客户端集成 #### 1. 🐍 Python 客户端 ```python import openai client = openai.OpenAI( api_key="1", # 你的API密钥 base_url="https://你的worker.子域名.workers.dev/v1" # 你的Worker地址 ) # 流式聊天 stream = client.chat.completions.create( model="moonshotai/kimi-k2-thinking", messages=[{"role": "user", "content": "你好,请介绍一下你自己"}], stream=True, ) for chunk in stream: print(chunk.choices[0].delta.content or "", end="") ``` #### 2. 🔄 cURL 命令 ```bash curl --location 'https://你的worker.子域名.workers.dev/v1/chat/completions' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer 1' \ --data '{ "model": "moonshotai/kimi-k2-thinking", "messages": [ { "role": "user", "content": "你好,你是什么模型?" } ], "stream": true }' ``` #### 3. 💬 LobeChat 配置 在 LobeChat 设置中: - **API Key**: `1` - **API 地址**: `https://你的worker.子域名.workers.dev` - **模型列表**: 选择你需要的模型 #### 4. 🌐 Next-Web 部署 环境变量配置: ```bash CODE=1 BASE_URL=https://你的worker.子域名.workers.dev CUSTOM_MODELS=+moonshotai/kimi-k2-thinking,+deepseek-ai/deepseek-r1-0528,... ``` ### 🔍 API 端点说明 | 端点 | 方法 | 功能 | 示例 | |------|------|------|------| | `GET /v1/models` | `GET` | 获取可用模型列表 | `curl -H "Authorization: Bearer 1" https://your-worker/v1/models` | | `POST /v1/chat/completions` | `POST` | 聊天补全 | 见上方示例 | ## 🔧 技术原理详解 ### 🏗️ 核心架构思想 ``` 🌉 桥梁模式 (Bridge Pattern) 用户请求 (OpenAI格式) → Worker转换 → umint-ai上游 → 响应转换 → 用户 (OpenAI格式) ``` ### 🔄 请求响应流程图 ```mermaid graph TB A[用户请求] --> B[Cloudflare Worker] B --> C{请求类型判断} C -->|UI请求| D[返回开发者驾驶舱] C -->|API请求| E[认证验证] E --> F[请求格式转换] F --> G[上游umint-ai调用] G --> H{流式响应?} H -->|是| I[SSE流式转换] H -->|否| J[普通响应转换] I --> K[实时流式输出] J --> L[一次性响应输出] K --> M[用户客户端] L --> M ``` ### 🧩 核心代码模块解析 #### 1. 🎪 配置中心 (Configuration-as-Code) ```javascript const CONFIG = { PROJECT_NAME: "umint-2api", API_MASTER_KEY: "1", // 🔐 简化认证 UPSTREAM_URL: "https://umint-ai.hf.space/api/...", // 🌊 上游服务 MODELS: [...], // 🎯 16个支持的模型 DEFAULT_MODEL: "moonshotai/kimi-k2-thinking" // 🏆 默认模型 }; ``` **💡 技术要点**: - **单一真相源**: 所有配置集中管理 - **环境无关**: 无需外部环境变量 - **类型安全**: 结构化配置对象 #### 2. 🚦 路由分发器 ```javascript export default { async fetch(request, env, ctx) { const url = new URL(request.url); if (url.pathname === '/') { return handleUI(request); // 🎨 返回Web UI } else if (url.pathname.startsWith('/v1/')) { return handleApi(request); // 🔌 处理API请求 } else { return createErrorResponse(...); // 🚨 404处理 } } } ``` **🔧 设计模式**: 策略模式 + 工厂模式 #### 3. 🔄 格式转换引擎 **OpenAI → umint-ai 请求转换**: ```javascript function transformRequestToUpstream(requestData) { return { modelId: requestData.model, // 🎯 模型ID映射 messages: transformedMessages, // 💬 消息格式转换 sessionId: generateSessionId(), // 🆔 会话管理 // ... 其他字段适配 }; } ``` **umint-ai → OpenAI 响应转换**: ```javascript function createUpstreamToOpenAIStream(requestId, model) { // 🔄 实时流式转换 return new TransformStream({ transform(chunk, controller) { // 📦 数据包解析和重新封装 const openAIChunk = transformChunkFormat(chunk); controller.enqueue(encodeChunk(openAIChunk)); }, flush(controller) { // 🏁 流结束信号 controller.enqueue(encodeDoneSignal()); } }); } ``` #### 4. 🎨 Web Components 架构 **现代前端架构**: ```javascript class LiveTerminal extends HTMLElement { constructor() { super(); this.attachShadow({ mode: 'open' }); // 🎭 Shadow DOM隔离 this.initTemplate(); // 🎪 模板渲染 this.bindEvents(); // 🎮 事件绑定 } // 🎯 状态管理 updateButtonState(state) { // 🔄 基于状态更新UI } // 🚀 流式处理 async startStream() { // 🌊 处理Server-Sent Events } } ``` **🎯 技术亮点**: - **Web Components**: 原生组件化,零依赖 - **Shadow DOM**: 样式和行为隔离 - **Custom Elements**: 语义化标签 ### 🔄 数据流详解 #### 📤 请求流程 1. **用户发送 OpenAI 格式请求** 2. **Worker 验证 Bearer Token** 3. **转换请求格式为 umint-ai 格式** 4. **添加必要的 Header (User-Agent, Referer等)** 5. **转发到上游服务** #### 📥 响应流程 1. **接收 umint-ai 的流式响应** 2. **实时解析 Server-Sent Events** 3. **转换数据格式为 OpenAI 标准** 4. **通过 TransformStream 管道流式返回** 5. **添加 [DONE] 结束信号** ### 🛡️ 安全机制 ```javascript // 🔐 认证中间件 const authHeader = request.headers.get('Authorization'); if (!authHeader || !authHeader.startsWith('Bearer ')) { return createErrorResponse('需要 Bearer Token 认证。', 401); } // 🌐 CORS 处理 function corsHeaders(headers = {}) { return { ...headers, 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS', 'Access-Control-Allow-Headers': 'Content-Type, Authorization', }; } ``` ## 🏗️ 系统架构 ### 📊 组件架构图 ```mermaid graph TD A[客户端] --> B[Cloudflare Edge Network] B --> C[umint-2api Worker] subgraph "Worker 核心模块" C --> D[路由分发器] D --> E[Web UI 模块] D --> F[API 代理模块] subgraph "Web UI 子系统" E --> E1[状态指示器] E --> E2[信息面板] E --> E3[集成指南] E --> E4[实时终端] end subgraph "API 代理子系统" F --> F1[认证中间件] F --> F2[格式转换器] F --> F3[流式处理器] F --> F4[错误处理器] end end C --> G[umint-ai 上游服务] G --> H[AI 模型集群] H --> I[响应数据流] I --> F3 F3 --> J[格式化响应] J --> A ``` ### 🎯 技术栈全景图 | 层级 | 技术 | 版本/选择 | 用途 | |------|------|-----------|------| | **🌐 部署平台** | Cloudflare Workers | 边缘计算 | 全球分布式部署 | | **🔧 运行时** | JavaScript | ES2022 | 核心逻辑 | | **🎨 前端框架** | Web Components | 原生标准 | 零依赖UI组件 | | **🚀 通信协议** | HTTP/1.1 + SSE | 标准协议 | 客户端通信 | | **📦 数据格式** | JSON + Server-Sent Events | 标准格式 | API数据交换 | | **🔐 安全** | Bearer Token + CORS | 行业标准 | API安全 | ## 📊 功能对比 ### 🆚 与传统方案的对比 | 特性 | umint-2api | 传统代理方案 | 直接调用 | |------|------------|-------------|----------| | **部署复杂度** | 🟢 单文件部署 | 🟡 需要服务器 | 🔴 代码嵌入 | | **OpenAI兼容** | 🟢 完全兼容 | 🟡 部分兼容 | 🔴 不兼容 | | **流式支持** | 🟢 完整SSE | 🟡 有限支持 | 🟡 依赖上游 | | **性能** | 🟢 边缘计算 | 🟡 中心化 | 🟢 直接调用 | | **可扩展性** | 🟢 模块化 | 🟡 需要重构 | 🔴 硬编码 | | **开发体验** | 🟢 内置UI | 🔴 需要额外工具 | 🟡 基础工具 | ### 🎯 性能指标 | 指标 | 数值 | 说明 | |------|------|------| | **冷启动时间** | < 100ms | Cloudflare Worker 优势 | | **流式响应延迟** | < 50ms | 实时转换,几乎无感知 | | **并发处理** | 1000+ requests/sec | 边缘网络优势 | | **可用性** | 99.9%+ | 全球分布式部署 | ## 🔮 未来发展 ### 🎯 短期目标 (v9.0) - [ ] **🔐 增强安全性** - [ ] JWT Token 支持 - [ ] 请求频率限制 - [ ] IP白名单功能 - [ ] **📊 监控增强** - [ ] 实时性能指标 - [ ] 使用量统计 - [ ] 错误日志分析 ### 🚀 中期规划 (v10.0) - [ ] **🌐 多上游支持** - [ ] 负载均衡 - [ ] 故障转移 - [ ] 智能路由 - [ ] **🔌 插件系统** - [ ] 自定义转换器 - [ ] 中间件支持 - [ ] 扩展点API ### 🎩 长期愿景 - [ ] **🤖 AI运维** - [ ] 自动扩缩容 - [ ] 智能缓存 - [ ] 预测性优化 - [ ] **🌍 生态建设** - [ ] SDK开发 - [ ] 社区贡献 - [ ] 企业版功能 ## 🛠️ 扩展开发 ### 🔧 开发者指南 #### 1. 🎯 添加新模型支持 ```javascript // 在 CONFIG.MODELS 中添加新模型 const CONFIG = { MODELS: [ ...existingModels, "new-provider/new-model-name", // 🆕 添加这里 ] }; ``` #### 2. 🔌 自定义上游服务 ```javascript const CONFIG = { UPSTREAM_URL: "https://your-custom-service.com/api", // 🌊 修改上游 // 可能需要调整 transformRequestToUpstream 函数 }; ``` #### 3. 🎨 扩展UI组件 ```javascript // 创建新的Web Component class NewFeature extends HTMLElement { constructor() { super(); // 实现你的新功能 } } customElements.define('new-feature', NewFeature); ``` ### 🔄 架构扩展点 | 扩展点 | 位置 | 扩展方式 | 用例 | |--------|------|----------|------| | **模型管理** | `CONFIG.MODELS` | 配置添加 | 支持新模型 | | **认证方式** | `handleApi()` | 中间件模式 | OAuth、API Key轮换 | | **格式转换** | `transformRequestToUpstream()` | 适配器模式 | 新上游服务支持 | | **UI组件** | Web Components | 自定义元素 | 新功能界面 | ## 📋 项目结构 ``` umint-2api-cfwork/ ├── 📄 README.md # 项目文档 (就是这个文件!) ├── 🚀 worker.js # 核心Worker单文件 ├── 📁 docs/ # 详细文档目录 │ ├── 🎯 deployment-guide.md # 部署指南 │ ├── 🔧 api-reference.md # API参考 │ └── 🛠️ development-guide.md # 开发指南 ├── 📁 examples/ # 使用示例 │ ├── 🐍 python-example.py # Python客户端示例 │ ├── 🔄 curl-examples.sh # cURL命令示例 │ └── 🌐 web-example.html # 网页调用示例 ├── 📁 tests/ # 测试套件 │ ├── 🧪 unit-tests.js # 单元测试 │ └-- 🔍 integration-tests.js # 集成测试 └── ⚖️ LICENSE # Apache 2.0 许可证 ``` ### 🗂️ 文件详细说明 #### 🚀 `worker.js` - 核心文件 - **行数**: ~800行精心设计的代码 - **功能**: 包含所有业务逻辑、UI、配置 - **特点**: 自包含、零依赖、即插即用 #### 📁 `docs/` - 文档目录 - **部署指南**: 从零开始的详细部署教程 - **API参考**: 完整的接口文档和示例 - **开发指南**: 扩展开发的详细说明 #### 📁 `examples/` - 示例代码 - **多语言支持**: Python、JavaScript、cURL等 - **真实场景**: 基于实际使用场景的示例 - **开箱即用**: 复制粘贴即可运行 ## 📄 开源协议 本项目采用 **Apache License 2.0** 开源协议: ``` 📜 你可以: ✅ 自由使用、修改、分发本软件 ✅ 用于商业目的 ✅ 专利授权 ✅ 提供版权声明和变更说明 📝 你需要: 📋 包含原始版权和许可证声明 ⚖️ 声明对源代码的修改 🚫 不使用项目商标 🔒 作者不承担: ❗ 任何直接或间接的损害赔偿责任 ❗ 软件质量的保证 ``` **完整协议文本请查看 [LICENSE](LICENSE) 文件** ## 🤝 贡献指南 ### 🎯 如何贡献 我们欢迎各种形式的贡献!🎉 1. **🐛 报告Bug** - 在Issues中描述你遇到的问题 2. **💡 提出新功能** - 分享你的创意和需求 3. **🔧 提交代码** - 通过Pull Request贡献代码 4. **📚 完善文档** - 帮助改进文档和示例 5. **🌍 翻译优化** - 帮助项目国际化 ### 🏆 贡献者荣誉墙 [![Contributors](https://contrib.rocks/image?repo=lzA6/umint-2api-cfwork)](https://github.com/lzA6/umint-2api-cfwork/graphs/contributors) ### 🔄 开发工作流 ```bash # 1. 克隆项目 git clone https://github.com/lzA6/umint-2api-cfwork.git # 2. 创建分支 git checkout -b feature/你的新功能 # 3. 测试修改 npm test # 如果有测试的话 # 4. 提交更改 git commit -m "feat: 添加了很棒的新功能" # 5. 推送到GitHub git push origin feature/你的新功能 # 6. 创建Pull Request ``` ## 💝 致谢 ### 🙏 感谢以下项目和技术 - **🌊 [umint-ai](https://umint-ai.hf.space)** - 提供强大的多模型AI服务 - **☁️ [Cloudflare Workers](https://workers.cloudflare.com)** - 优秀的边缘计算平台 - **🔗 [OpenAI API](https://platform.openai.com)** - 行业标准的API设计 - **🎨 [Web Components](https://developer.mozilla.org/en-US/docs/Web/Web_Components)** - 现代化的前端组件标准 ### 👥 特别感谢 - **所有贡献者** - 让这个项目变得更好 - **早期测试用户** - 提供了宝贵的反馈 - **开源社区** - 共享知识,共同进步 ### 📞 联系我们 - **🐛 问题反馈**: [GitHub Issues](https://github.com/lzA6/umint-2api-cfwork/issues) - **💬 讨论交流**: [GitHub Discussions](https://github.com/lzA6/umint-2api-cfwork/discussions) - **📧 邮箱联系**: [通过GitHub Profile] ---
## 🎊 开始使用吧! **选择你的开始方式:** [🚀 一键部署](#-懒人一键部署) • [📚 查看教程](#-详细使用教程) • [🔧 技术探索](#-技术原理详解) **⭐ 如果这个项目对你有帮助,请给我们一个Star!** [![Star History Chart](https://api.star-history.com/svg?repos=lzA6/umint-2api-cfwork&type=Date)](https://star-history.com/#lzA6/umint-2api-cfwork&Date) **Happy Coding! 🎉**
--- *最后更新: 2025-11-10 • 版本: 8.0.5 • 作者: [lzA6](https://github.com/lzA6)*