OmniVerse 万物聚合体 – v2.2

之前我做过一个简单的 Chat 网站,可以调用多家的大模型进行对话。为了图省事,我当时直接把 API 密钥和请求地址写在前端代码里,让用户的浏览器直接调用 AI 接口。虽然当时就知道这样存在安全风险,但侥幸心理让我没有去改。结果没过多久,有人通过前端拿到了我的密钥,盗刷 API 额度,让我损失了 10 元,这也算是一次“花钱买来的教训”。

这次我对整个网站进行了大幅升级和安全优化,推出 OmniVerse万物聚合体 v2.2

1. 网站的优化与更新

核心变化:

  • API 后端代理化:所有 AI 接口都通过服务器转发,前端不再暴露任何密钥,从根本上解决安全问题。
  • 管理后台:新增后台面板,可以动态管理 AI 模型、API 地址和密钥;支持访问日志统计和系统状态监控。
  • 用户体验:全面升级 UI,支持深色/浅色主题切换,优化了对 Markdown 和 LaTeX 数学公式的渲染,增强了上下文对话功能。

架构概览:

用户浏览器 → Node.js + Express 后端 → 多家 AI API

后端使用 Express.js 搭建 RESTful API,配合 JWT Token 认证确保管理操作的安全性。

2. 开发工具与技术栈

在这次重构中,我依旧大量借助 AI 编程助手完成了代码生成和调试工作。
这次主要使用了 Claude Code 来辅助开发,它与 Cursor 这样的 IDE 插件不同,而是直接在终端中交互式生成代码。Claude Code 支持按 Token 计费,这意味着我可以提交更多上下文而不用担心调用次数的问题。

最近我在找免费的 AI 中转服务时,尝试了很多网站,最终发现了一个不错的平台:https://anyrouter.top/register?aff=Nyt3。 注册后即可获得100 美元额度,而且每天登录还会额外赠送 25 美元额度,实际使用下来几乎用不完,非常划算。

在开发环境上,我更推荐使用 Linux和Mac 来运行 Claude Code。 虽然 Windows 也能安装,但需要先开启 WSL,步骤相对繁琐,不如 Linux 直接高效。

关于该平台的安装和使用,这里就不做过多介绍,大家可以参考官方的详细文档:AnyRouter | Claude Code 共享平台

技术栈:

  • 前端:HTML5 + CSS3 + 原生 JavaScript + Marked.js(Markdown 渲染) + KaTeX(数学公式)。
  • 后端:Node.js 16+ + Express.js 4.x,使用 Axios 调用外部 AI 服务,API Key 存储在 .env 文件中。
  • 部署:Ubuntu 20.04 服务器,Nginx 反向代理 + PM2 守护进程,支持自动化部署脚本。

3. 安全性与 API 保护

过去最大的教训就是 API 密钥暴露。在 v2.2 中,我设计了完整的后端代理机制:

用户 → 我的服务器(隐藏密钥) → AI 服务商

安全措施:

  • 所有 API Key 都存储在后端 .env 文件中。
  • 管理后台受密码和 Token 保护,支持在线密码修改。
  • 浏览器开发者工具中不会看到任何密钥。

验证方法:即便打开浏览器的 F12 面板,用户也只能看到请求指向我的服务器,而非真实的 AI 服务 API。

4. Bug 管理与开发习惯

AI 辅助编程虽然高效,但生成的代码难免有问题。我习惯在项目根目录下放置一个 bug.txt 文件,把所有待办 Bug 和功能列出,让 AI 按照清单一项项修复,并同步更新 Todo。
这种方式让我能清楚看到项目的迭代过程,也避免了 AI 乱改代码。

5. 新版本亮点

和上一个版本相比,OmniVerse v2.2 增加了许多新特性:

  • 上下文记忆:支持连续对话,自动维护最近 20 轮记录。
  • 管理后台:新增动态添加/删除模型、日志查看和统计信息。
  • UI 优化:重新设计了模型选择器和滚动条,支持响应式布局和移动端访问。
  • 数学公式支持:Markdown 中可以直接写 $$公式$$,渲染更精美。

6. 部署与快速体验

git clone https://github.com/ayuancloud/OmniVerse.git
cd OmniVerse
npm install
cp .env.example .env   # 填写你的 API Key
npm start

访问:

  • 主页http://localhost:3000
  • 管理后台http://localhost:3000/admin

如果要生产部署,推荐配合 Nginx 和 PM2:

pm2 start server.js --name omniverse

7. 未来计划

目前网站已解决大部分安全问题,但仍有一些优化方向:

  1. Gemini-2.5-pro 在跨境请求时偶尔会出现 token 丢失,考虑加重试和超时处理。
  2. 后台管理面板 还需优化模型排序、默认模型选择和 API 地址验证逻辑。
  3. 更多模型接入:后续计划接入 ChatGPT、Claude 等新模型。

8. 开源与贡献

OmniVerse 已经开源:
GitHub: https://github.com/ayuancloud/OmniVerse

如果你发现了 Bug 或有改进建议,欢迎提交 Issue 或 PR,一起完善这个项目。
如果这个项目对你有帮助,请给一个 Star ⭐!

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部