Spaces:
Running
Running
Download LLM/index.html from static-files/files: direct link, hf CLI and curl.
- Browser
- Download file 17.8 kB
-
https://huggingface.co/spaces/static-files/files/resolve/main/LLM/index.html
- Command line
-
hf download hf://spaces/static-files/files/LLM/index.html
-
curl -L -o index.html https://huggingface.co/spaces/static-files/files/resolve/main/LLM/index.html
17.8 kB
| <html lang="zh-CN"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>统一大模型接口网关 | Next-Gen AI Gateway</title> | |
| <style> | |
| /* --- 基础设置 --- */ | |
| :root { | |
| --primary-color: #2563eb; | |
| --primary-hover: #1d4ed8; | |
| --bg-gradient: radial-gradient(circle at 50% 0%, #e0e7ff 0%, #f8fafc 50%, #ffffff 100%); | |
| --text-main: #1f2937; | |
| --text-sub: #6b7280; | |
| --card-bg: rgba(255, 255, 255, 0.8); | |
| } | |
| * { margin: 0; padding: 0; box-sizing: border-box; } | |
| body { | |
| font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; | |
| background: var(--bg-gradient); | |
| color: var(--text-main); | |
| min-height: 100vh; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| overflow-x: hidden; | |
| } | |
| /* 主容器 */ | |
| .container { | |
| text-align: center; | |
| max-width: 1000px; | |
| padding: 100px 20px 40px; | |
| width: 100%; | |
| position: relative; | |
| z-index: 1; | |
| } | |
| /* --- 标题样式 --- */ | |
| h1 { | |
| font-size: 4rem; | |
| font-weight: 800; | |
| line-height: 1.1; | |
| margin-bottom: 24px; | |
| letter-spacing: -2px; | |
| background: linear-gradient(135deg, #1a1a1a 30%, #2563eb 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| } | |
| @media (max-width: 768px) { h1 { font-size: 2.8rem; } } | |
| .subtitle { | |
| font-size: 1.25rem; | |
| color: var(--text-sub); | |
| margin-bottom: 50px; | |
| font-weight: 400; | |
| max-width: 600px; | |
| margin-left: auto; | |
| margin-right: auto; | |
| } | |
| /* --- API 地址框 --- */ | |
| .api-box { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| position: relative; | |
| background: rgba(255, 255, 255, 0.9); | |
| backdrop-filter: blur(10px); | |
| border: 1px solid rgba(0,0,0,0.08); | |
| padding: 16px 60px; | |
| border-radius: 16px; | |
| font-family: 'Consolas', 'Monaco', monospace; | |
| font-size: 1.1rem; | |
| color: #333; | |
| margin-bottom: 20px; /* 稍微减小底部间距,为下方链接留位置 */ | |
| width: 100%; | |
| max-width: 680px; | |
| margin-left: auto; | |
| margin-right: auto; | |
| box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.01); | |
| transition: transform 0.2s; | |
| /* 防止内容换行 */ | |
| white-space: nowrap; | |
| } | |
| .api-box:hover { transform: translateY(-2px); } | |
| /* 新增:地址前的说明文字样式 */ | |
| .url-label { | |
| color: #6b7280; | |
| font-weight: 500; | |
| margin-right: 12px; | |
| font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; | |
| user-select: none; /* 防止用户复制时选中这个标签 */ | |
| } | |
| .api-endpoint { color: var(--primary-color); font-weight: 600; } | |
| /* 移动端隐藏说明文字,防止地址显示不全 */ | |
| @media (max-width: 600px) { | |
| .url-label { display: none; } | |
| .api-box { padding: 16px 45px; font-size: 0.95rem; } | |
| } | |
| .copy-btn { | |
| cursor: pointer; | |
| position: absolute; | |
| right: 20px; | |
| top: 50%; | |
| transform: translateY(-50%); | |
| color: #9ca3af; | |
| background: none; | |
| border: none; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| transition: color 0.2s; | |
| padding: 5px; | |
| } | |
| .copy-btn:hover { color: var(--primary-color); } | |
| .copy-btn svg { width: 20px; height: 20px; fill: currentColor; } | |
| /* Tooltip */ | |
| #copy-tooltip { | |
| position: absolute; | |
| right: -10px; | |
| top: -40px; | |
| background-color: #1f2937; | |
| color: #fff; | |
| padding: 6px 12px; | |
| border-radius: 6px; | |
| font-size: 12px; | |
| opacity: 0; | |
| transition: opacity 0.2s, transform 0.2s; | |
| pointer-events: none; | |
| transform: translateY(5px); | |
| } | |
| #copy-tooltip.show { opacity: 1; transform: translateY(0); } | |
| /* --- 新增:文本链接区域 --- */ | |
| .link-area { | |
| margin-bottom: 40px; | |
| font-size: 0.95rem; | |
| } | |
| .text-link { | |
| color: var(--text-sub); | |
| text-decoration: none; | |
| transition: color 0.2s; | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 4px; | |
| } | |
| .text-link:hover { | |
| color: var(--primary-color); | |
| text-decoration: underline; | |
| } | |
| /* --- 按钮组 --- */ | |
| .button-group { | |
| display: flex; | |
| justify-content: center; | |
| gap: 20px; | |
| margin-bottom: 80px; | |
| flex-wrap: wrap; /* 允许移动端换行 */ | |
| } | |
| .btn { | |
| display: inline-flex; | |
| align-items: center; | |
| padding: 14px 32px; | |
| border-radius: 100px; | |
| font-weight: 600; | |
| font-size: 1.05rem; | |
| cursor: pointer; | |
| text-decoration: none; | |
| transition: all 0.3s ease; | |
| } | |
| .btn-primary { | |
| background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%); | |
| color: white; | |
| box-shadow: 0 4px 6px -1px rgba(37, 99, 235, 0.1), 0 2px 4px -1px rgba(37, 99, 235, 0.06); | |
| } | |
| .btn-primary:hover { box-shadow: 0 10px 15px -3px rgba(37, 99, 235, 0.3); transform: translateY(-1px); } | |
| .btn-secondary { | |
| background: linear-gradient(135deg, rgb(255,230,15) 0%, rgb(245,200,0) 100%); | |
| color: #374151; | |
| border: none; | |
| box-shadow: 0 4px 6px -1px rgba(255, 200, 0, 0.3), 0 2px 4px -1px rgba(255, 200, 0, 0.2); | |
| transition: all 0.3s ease; | |
| } | |
| .btn-secondary:hover { | |
| box-shadow: 0 10px 15px -3px rgba(255, 200, 0, 0.5); | |
| transform: translateY(-1px); | |
| } | |
| .btn-draw { | |
| background: linear-gradient(135deg, #9333ea 0%, #7e22ce 100%); | |
| color: white; | |
| box-shadow: 0 4px 6px -1px rgba(147, 51, 234, 0.2), 0 2px 4px -1px rgba(147, 51, 234, 0.1); | |
| } | |
| .btn-draw:hover { | |
| box-shadow: 0 10px 15px -3px rgba(147, 51, 234, 0.4); | |
| transform: translateY(-1px); | |
| } | |
| /* --- 代码演示终端 --- */ | |
| .code-showcase { | |
| text-align: left; | |
| background: #1e1e1e; | |
| border-radius: 12px; | |
| box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.2); | |
| max-width: 700px; | |
| margin: 0 auto 60px; | |
| overflow: hidden; | |
| position: relative; | |
| } | |
| .terminal-header { | |
| background: #2d2d2d; | |
| padding: 10px 15px; | |
| display: flex; | |
| gap: 8px; | |
| } | |
| .dot { width: 12px; height: 12px; border-radius: 50%; } | |
| .dot.red { background: #ff5f56; } | |
| .dot.yellow { background: #ffbd2e; } | |
| .dot.green { background: #27c93f; } | |
| .code-content { | |
| padding: 20px; | |
| color: #d4d4d4; | |
| font-family: 'Consolas', monospace; | |
| font-size: 0.9rem; | |
| line-height: 1.6; | |
| overflow-x: auto; | |
| } | |
| .c-keyword { color: #c586c0; } | |
| .c-func { color: #dcdcaa; } | |
| .c-string { color: #ce9178; } | |
| .c-var { color: #9cdcfe; } | |
| .c-comment { color: #6a9955; } | |
| /* --- 特性卡片 --- */ | |
| .features-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); | |
| gap: 20px; | |
| max-width: 900px; | |
| margin: 0 auto; | |
| } | |
| .feature-card { | |
| background: #fff; | |
| padding: 25px; | |
| border-radius: 16px; | |
| border: 1px solid #f3f4f6; | |
| text-align: left; | |
| transition: all 0.3s ease; | |
| } | |
| .feature-card:hover { | |
| transform: translateY(-5px); | |
| box-shadow: 0 10px 30px rgba(0,0,0,0.05); | |
| border-color: #e0e7ff; | |
| } | |
| .feature-icon { | |
| width: 40px; | |
| height: 40px; | |
| background: #eff6ff; | |
| color: #2563eb; | |
| border-radius: 10px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| margin-bottom: 15px; | |
| } | |
| .feature-title { font-weight: 700; margin-bottom: 8px; color: #1f2937; } | |
| .feature-desc { font-size: 0.9rem; color: #6b7280; line-height: 1.5; } | |
| /* 背景动态光晕 */ | |
| .bg-blob { | |
| position: absolute; | |
| filter: blur(80px); | |
| z-index: -1; | |
| opacity: 0.4; | |
| animation: float 10s infinite ease-in-out; | |
| } | |
| .blob-1 { top: -10%; left: -10%; width: 500px; height: 500px; background: #e0e7ff; } | |
| .blob-2 { bottom: -10%; right: -10%; width: 400px; height: 400px; background: #fae8ff; animation-delay: -5s; } | |
| @keyframes float { | |
| 0%, 100% { transform: translate(0, 0); } | |
| 50% { transform: translate(30px, 50px); } | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="bg-blob blob-1"></div> | |
| <div class="bg-blob blob-2"></div> | |
| <div class="container"> | |
| <h1>统一的<br>大模型接口网关</h1> | |
| <p class="subtitle"> | |
| 兼容 OpenAI 协议的一站式 API 服务。<br> | |
| 更低的 | |
| <a href="https://api.cloudapp.ink/pricing" target="_blank" class="text-link" style="font-weight: bold;color: #1d4ed8;"> | |
| 价格 | |
| </a> | |
| ,企业级稳定性,支持 Gemini, Claude, Grok 等模型。<br> | |
| <a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=scIRP0jX5M_qE5Pyxwa0JQw3zK40AdDF&jump_from=webapi&authKey=ft+mFi+uAh311LkfOtx0ERBLGA65JuCaqFRF0qDFOJVGs8AOOHXI8iC9DptDI4K9" style="font-weight: bold;color: #1d4ed8; text-decoration: none; cursor: pointer;"><img border="0" src="" alt="" title="">点击加入售后QQ群: 762703673 | |
| </a> | |
| </p> | |
| <div class="api-box" style="text-align: center;"> | |
| <div id="full-url"> | |
| <span class="url-label">接口地址 (Base URL):</span> | |
| <span class="api-endpoint">https://api.cloudapp.ink/v1</span> | |
| </div> | |
| <button class="copy-btn" onclick="copyText()" title="复制 Base URL"> | |
| <div id="copy-tooltip">已复制!</div> | |
| <svg viewBox="0 0 24 24"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg> | |
| </button> | |
| </div> | |
| <div class="link-area"> | |
| <a href="https://docs.qq.com/doc/DSG5md25qQW9OSW1a" target="_blank" class="text-link"> | |
| <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-key transition-colors duration-200" aria-hidden="true"><path d="m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4"></path><path d="m21 2-9.6 9.6"></path><circle cx="7.5" cy="15.5" r="5.5"></circle></svg> | |
| 如何获取 API 密钥 (Secret Key)? | |
| </a> | |
| </div> | |
| <div class="button-group"> | |
| <a href="https://www.qianxun1688.com/links/79E87CC4" target="_blank" class="btn btn-primary"> | |
| 自助购买兑换码 | |
| </a> | |
| <a href="https://imagen.cloudapp.ink/" target="_blank" class="btn btn-draw"> | |
| <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 8px;"> | |
| <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect> | |
| <circle cx="8.5" cy="8.5" r="1.5"></circle> | |
| <polyline points="21 15 16 10 5 21"></polyline> | |
| </svg> | |
| AI 在线绘图 | |
| </a> | |
| <a href="https://m.tb.cn/h.iLay9ZR?tk=9QvW5gcYVsU MF278" target="_blank" class="btn btn-secondary"> | |
| 咸鱼商品链接 | |
| </a> | |
| </div> | |
| <div class="code-showcase"> | |
| <div class="terminal-header"> | |
| <div class="dot red"></div> | |
| <div class="dot yellow"></div> | |
| <div class="dot green"></div> | |
| </div> | |
| <div class="code-content"> | |
| <span class="c-comment"># 🐍 Python 示例:无缝迁移 OpenAI SDK</span><br> | |
| <span class="c-keyword">from</span> openai <span class="c-keyword">import</span> OpenAI<br><br> | |
| client = OpenAI(<br> | |
| api_key=<span class="c-string">"sk-xxxxxxxx"</span>, <span class="c-comment"># 您的密钥</span><br> | |
| base_url=<span class="c-string">"https://api.cloudapp.ink/v1"</span> <span class="c-comment"># 只需修改此处</span><br> | |
| )<br><br> | |
| response = client.chat.completions.<span class="c-func">create</span>(<br> | |
| model=<span class="c-string">"gemini-3-pro-preview"</span>,<br> | |
| messages=[{<span class="c-string">"role"</span>: <span class="c-string">"user"</span>, <span class="c-string">"content"</span>: <span class="c-string">"Hello World!"</span>}]<br> | |
| ) | |
| </div> | |
| </div> | |
| <div class="features-grid"> | |
| <div class="feature-card"> | |
| <div class="feature-icon"> | |
| <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M2 12h20"/></svg> | |
| </div> | |
| <div class="feature-title">全模型支持</div> | |
| <div class="feature-desc">一个接口聚合 Gemini, Claude, Grok 等数十种主流模型,无需切换。</div> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon"> | |
| <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/></svg> | |
| </div> | |
| <div class="feature-title">高并发 & 低延迟</div> | |
| <div class="feature-desc">全球多节点 CDN 加速,企业级 QPS 支持,平均响应速度提升 50%。</div> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon"> | |
| <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5zM16 8L2 22M17.5 15H9"/></svg> | |
| </div> | |
| <div class="feature-title">极致性价比</div> | |
| <div class="feature-desc">相比官方直连,成本大幅降低。按次计费,无隐形消费,每一分钱都花在刀刃上。</div> | |
| </div> | |
| </div> | |
| </div> | |
| <script> | |
| function copyText() { | |
| const textToCopy = "https://api.cloudapp.ink/v1"; // 直接硬编码或从DOM获取 | |
| const tooltip = document.getElementById('copy-tooltip'); | |
| // --- 方案 A: 尝试现代 API (电脑端/有权限时有效) --- | |
| if (navigator.clipboard && navigator.clipboard.writeText) { | |
| navigator.clipboard.writeText(textToCopy) | |
| .then(() => showTooltip('已复制!')) | |
| .catch(() => tryLegacyCopy(textToCopy)); // 失败则尝试方案 B | |
| } else { | |
| tryLegacyCopy(textToCopy); // 不支持则直接尝试方案 B | |
| } | |
| } | |
| // --- 方案 B: 尝试 document.execCommand (旧版浏览器/部分Webview) --- | |
| function tryLegacyCopy(text) { | |
| const textArea = document.createElement("textarea"); | |
| textArea.value = text; | |
| // 确保元素在视口内但不可见,防止移动端页面跳动 | |
| textArea.style.position = "fixed"; | |
| textArea.style.left = "-9999px"; | |
| textArea.style.top = "0"; | |
| document.body.appendChild(textArea); | |
| textArea.focus(); | |
| textArea.select(); | |
| textArea.setSelectionRange(0, 99999); // iOS 关键兼容代码 | |
| try { | |
| const successful = document.execCommand('copy'); | |
| if (successful) { | |
| showTooltip('已复制!'); | |
| } else { | |
| // 如果方案 B 也失败,执行最终方案 C | |
| manualCopyFallback(text); | |
| } | |
| } catch (err) { | |
| manualCopyFallback(text); | |
| } | |
| document.body.removeChild(textArea); | |
| } | |
| // --- 方案 C: 终极降级 (针对手机端无权限 iframe) --- | |
| function manualCopyFallback(text) { | |
| // 使用 window.prompt 弹窗 | |
| // 这是一个系统级弹窗,浏览器无法拦截用户从中复制内容 | |
| window.prompt("请复制以下接口地址:", text); | |
| } | |
| // 显示提示气泡的辅助函数 | |
| function showTooltip(message) { | |
| const tooltip = document.getElementById('copy-tooltip'); | |
| tooltip.innerText = message; | |
| tooltip.classList.add('show'); | |
| setTimeout(() => tooltip.classList.remove('show'), 2000); | |
| } | |
| </script> | |
| </body> | |
| </html> | |