AIClient-2-API/static/components/section-guide.html
hex2077 fa19bae517 refactor(potluck): 简化 API 大锅饭系统并增强安全性和 UI
- 移除凭证管理和资源包系统,简化为基于每日限额的 Key 管理
- 新增登录安全防护(频率限制、账户锁定、IP 追踪)
- 重构日志系统使用 AsyncLocalStorage 替代全局状态
- 全面升级 UI 界面(主题切换、使用分布统计、响应式设计)
- 优化安装脚本(PowerShell 支持、手动安装指引)

BREAKING CHANGE: API Potluck 插件不再支持凭证资源包功能,所有 Key 仅基于每日限额进行配额管理。user-data-manager 模块已禁用,相关 API 端点已移除。
2026-03-05 17:21:47 +08:00

210 lines
No EOL
13 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<link rel="stylesheet" href="components/section-guide.css">
<!-- Guide Section -->
<section id="guide" class="section" aria-labelledby="guide-title">
<h2 id="guide-title" data-i18n="guide.title">使用指南</h2>
<!-- 项目简介 -->
<div class="guide-panel">
<h3><i class="fas fa-info-circle"></i> <span data-i18n="guide.intro.title">项目简介</span></h3>
<div class="guide-content">
<p data-i18n="guide.intro.desc">AIClient2API 是一个突破客户端限制的 API 代理服务,将 Gemini、Antigravity、Qwen Code、Kiro 等原本仅限客户端内使用的免费大模型,转换为可供任何应用调用的标准 OpenAI 兼容接口。</p>
<div class="feature-grid">
<div class="feature-card">
<div class="feature-icon"><i class="fas fa-plug"></i></div>
<h4 data-i18n="guide.intro.feature1.title">统一接入</h4>
<p data-i18n="guide.intro.feature1.desc">通过标准 OpenAI 兼容协议,一次配置即可接入多种大模型</p>
</div>
<div class="feature-card">
<div class="feature-icon"><i class="fas fa-rocket"></i></div>
<h4 data-i18n="guide.intro.feature2.title">突破限制</h4>
<p data-i18n="guide.intro.feature2.desc">利用 OAuth 授权机制,有效突破免费 API 速率和配额限制</p>
</div>
<div class="feature-card">
<div class="feature-icon"><i class="fas fa-exchange-alt"></i></div>
<h4 data-i18n="guide.intro.feature3.title">协议转换</h4>
<p data-i18n="guide.intro.feature3.desc">支持 OpenAI、Claude、Gemini 三大协议间的智能转换</p>
</div>
<div class="feature-card">
<div class="feature-icon"><i class="fas fa-server"></i></div>
<h4 data-i18n="guide.intro.feature4.title">账号池管理</h4>
<p data-i18n="guide.intro.feature4.desc">支持多账号轮询、自动故障转移和配置降级</p>
</div>
</div>
</div>
</div>
<!-- 操作流程图 -->
<div class="guide-panel">
<h3><i class="fas fa-project-diagram"></i> <span data-i18n="guide.flow.title">操作流程图</span></h3>
<div class="guide-content">
<div class="process-flow">
<div class="flow-step">
<div class="step-number">1</div>
<div class="step-content">
<h4 data-i18n="guide.flow.step1.title">配置管理</h4>
<p data-i18n="guide.flow.step1.desc">在「配置管理」页面设置基本参数</p>
<ul>
<li data-i18n="guide.flow.step1.item1">设置 API Key</li>
<li data-i18n="guide.flow.step1.item2">选择启动时初始化的模型提供商</li>
<li data-i18n="guide.flow.step1.item3">配置高级选项</li>
</ul>
</div>
</div>
<div class="flow-arrow"></div>
<div class="flow-step flow-step-branch">
<div class="step-number">2</div>
<div class="step-content">
<h4 data-i18n="guide.flow.step2.title">生成授权</h4>
<p data-i18n="guide.flow.step2.desc">在「提供商池管理」页面生成 OAuth 授权</p>
<div class="branch-options">
<div class="branch-option">
<div class="branch-label" data-i18n="guide.flow.step2.method1">方式一OAuth 授权</div>
<ul>
<li data-i18n="guide.flow.step2.method1.item1">点击「生成授权」按钮</li>
<li data-i18n="guide.flow.step2.method1.item2">在弹窗中完成 OAuth 登录</li>
<li data-i18n="guide.flow.step2.method1.item3">凭据自动保存</li>
</ul>
</div>
<div class="branch-divider" data-i18n="guide.flow.step2.or"></div>
<div class="branch-option">
<div class="branch-label" data-i18n="guide.flow.step2.method2">方式二:手动上传</div>
<ul>
<li data-i18n="guide.flow.step2.method2.item1">新增提供商节点</li>
<li data-i18n="guide.flow.step2.method2.item2">上传已有的授权文件</li>
<li data-i18n="guide.flow.step2.method2.item3">手动关联凭据路径</li>
</ul>
</div>
<div class="branch-divider" data-i18n="guide.flow.step2.or"></div>
<div class="branch-option">
<div class="branch-label" data-i18n="guide.flow.step2.method3">方式三:对接提供商 API</div>
<ul>
<li data-i18n="guide.flow.step2.method3.item1">在「配置管理」设置 API Key 和端点</li>
<li data-i18n="guide.flow.step2.method3.item2">系统自动识别并对接</li>
<li data-i18n="guide.flow.step2.method3.item3">无需手动上传凭据</li>
</ul>
</div>
</div>
</div>
</div>
<div class="flow-arrow"></div>
<div class="flow-step">
<div class="step-number">3</div>
<div class="step-content">
<h4 data-i18n="guide.flow.step3.title">管理凭据</h4>
<p data-i18n="guide.flow.step3.desc">在「凭据文件管理」页面查看和管理凭据</p>
<ul>
<li data-i18n="guide.flow.step3.item1">查看已生成的凭据文件</li>
<li data-i18n="guide.flow.step3.item2">自动关联到提供商池</li>
<li data-i18n="guide.flow.step3.item3">删除无效凭据</li>
</ul>
</div>
</div>
<div class="flow-arrow"></div>
<div class="flow-step">
<div class="step-number">4</div>
<div class="step-content">
<h4 data-i18n="guide.flow.step4.title">开始使用</h4>
<p data-i18n="guide.flow.step4.desc">在「仪表盘」查看路由示例并开始调用 API</p>
<ul>
<li data-i18n="guide.flow.step4.item1">查看路由调用示例</li>
<li data-i18n="guide.flow.step4.item2">复制 API 端点地址</li>
<li data-i18n="guide.flow.step4.item3">在客户端中配置使用</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<!-- 客户端配置指南 -->
<div class="guide-panel">
<h3><i class="fas fa-desktop"></i> <span data-i18n="guide.client.title">客户端配置指南</span></h3>
<div class="guide-content">
<p data-i18n="guide.client.desc">以下是常见 AI 客户端的配置方法,将 API 端点设置为本服务地址即可使用:</p>
<div class="client-config-list">
<div class="client-config-item">
<h4><i class="fas fa-cherry"></i> Cherry Studio</h4>
<div class="config-steps">
<ol>
<li data-i18n="guide.client.cherry.step1">打开设置 → 模型服务商</li>
<li data-i18n="guide.client.cherry.step2">添加自定义服务商</li>
<li data-i18n="guide.client.cherry.step3">设置 API 地址为: <code>http://localhost:3000/{provider}/v1</code></li>
<li data-i18n="guide.client.cherry.step4">填入 API Key配置文件中的 REQUIRED_API_KEY</li>
</ol>
</div>
</div>
<div class="client-config-item">
<h4><i class="fas fa-terminal"></i> Cline / Continue</h4>
<div class="config-steps">
<ol>
<li data-i18n="guide.client.cline.step1">打开 VS Code 设置</li>
<li data-i18n="guide.client.cline.step2">搜索 Cline 或 Continue 配置</li>
<li data-i18n="guide.client.cline.step3">设置 API Base URL 为: <code>http://localhost:3000/{provider}/v1</code></li>
<li data-i18n="guide.client.cline.step4">填入 API Key 和模型名称</li>
</ol>
</div>
</div>
<div class="client-config-item">
<h4><i class="fas fa-code"></i> 通用 cURL 调用</h4>
<div class="config-steps">
<pre><code>curl http://localhost:3000/{provider}/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "模型名称",
"messages": [{"role": "user", "content": "Hello!"}],
"max_tokens": 1000
}'</code></pre>
</div>
</div>
</div>
<div class="guide-note">
<i class="fas fa-lightbulb"></i>
<span data-i18n="guide.client.note">提示:将 {provider} 替换为实际的提供商路径,如 gemini-cli-oauth、claude-kiro-oauth 等。可在仪表盘的路由示例中查看完整路径。</span>
</div>
</div>
</div>
<!-- 常见问题 -->
<div class="guide-panel">
<h3><i class="fas fa-question-circle"></i> <span data-i18n="guide.faq.title">常见问题</span></h3>
<div class="guide-content">
<div class="faq-list">
<div class="faq-item">
<div class="faq-question" data-i18n="guide.faq.q1">Q: 请求返回 404 错误怎么办?</div>
<div class="faq-answer" data-i18n="guide.faq.a1">A: 检查接口路径是否正确。某些客户端会自动在 Base URL 后追加路径,导致路径重复。请查看控制台中的实际请求 URL移除多余的路径部分。</div>
</div>
<div class="faq-item">
<div class="faq-question" data-i18n="guide.faq.q2">Q: 请求返回 429 错误怎么办?</div>
<div class="faq-answer" data-i18n="guide.faq.a2">A: 429 表示请求频率过高。建议配置多个账号到提供商池,启用轮询机制;或配置 Fallback 链实现跨类型降级。</div>
</div>
<div class="faq-item">
<div class="faq-question" data-i18n="guide.faq.q3">Q: OAuth 授权失败怎么办?</div>
<div class="faq-answer" data-i18n="guide.faq.a3">A: 确保 OAuth 回调端口可访问Gemini: 8085, Antigravity: 8086, Kiro: 19876-19880。Docker 用户需确保已正确映射这些端口。</div>
</div>
<div class="faq-item">
<div class="faq-question" data-i18n="guide.faq.q5">Q: 流式响应中断怎么办?</div>
<div class="faq-answer" data-i18n="guide.faq.a5">A: 检查网络稳定性,增加客户端请求超时时间。如使用代理,确保代理支持长连接。</div>
</div>
<div class="faq-item">
<div class="faq-question" data-i18n="guide.faq.q6">Q: 请求返回 "No available and healthy providers" 错误怎么办?</div>
<div class="faq-answer" data-i18n="guide.faq.a6">A: 这表示对应类型的提供商都不可用。请在"提供商池"页面检查提供商健康状态,确认 OAuth 凭据未过期,或配置 Fallback 链实现自动切换到备用提供商。</div>
</div>
<div class="faq-item">
<div class="faq-question" data-i18n="guide.faq.q7">Q: 请求返回 403 Forbidden 错误怎么办?</div>
<div class="faq-answer" data-i18n="guide.faq.a7">A: 403 表示访问被拒绝。首先检查"提供商池"页面中节点状态如果节点健康检查正常可以忽略此报错。其他可能原因包括账号权限不足、API Key 权限受限、地区访问限制、凭据已失效等。</div>
</div>
</div>
</div>
</div>
</section>