零成本搭建 LLM 轮询服务

方案概览 为了给 side project 提供稳定的 LLM 接口,可以将三款免费服务拼成一套“轻量后端”——数据库用 Aiven 免费 MySQL,推理服务部署在 Hugging Face Space,API 网关由开源的 gpt-load 负责。最终实现了多密钥轮询和降级控制,不再担心某个 Key 被限速。 整体架构: 客户端请求 │ ├─> Hugging Face Space (gpt-load Docker 容器) │ └─ 读取 Aiven MySQL 中的密钥池 └─< LLM 响应(轮询后的结果) 第一步:申请 Aiven MySQL https://aiven.io/ Aiven可以免费部署一台1核1G内存数据库 注册 Aiven 账号后,新建一个 MySQL 服务,免费套餐即可。 进入 Service 页面,记下主机、端口、用户名等连接信息。 这些连接信息建议整理进 .env 文件中的 DATABASE_DSN,容器启动时即可直接读取。 第二步:在 Hugging Face 部署 gpt-load https://huggingface.co/ https://github.com/tbphp/gpt-load 新建一个 Docker Space,镜像选择公共的 ghcr.io/tbphp/gpt-load:latest。 在仓库中上传自己的 Dockerfile 与启动脚本。 ...

2025年8月3日 · 1 分钟 · 205 字

团队 CI/CD 实战流程

环境与分支映射 我们的流水线围绕两类环境搭建: develop 对应测试与联调环境,合并即自动部署。 master 搭配语义化版本标签,用于生产发布。 这样可以保证开发节奏稳定,同时让发布动作有明确的入口。 一次功能上线的节奏 从 develop 开分支:命名遵循 feat/日期-功能点 的格式,例如 feat/20251010-user-login。 本地提交:保持小步快跑,每次 commit 只包含一个意图。 推送与创建 PR:目标分支为 develop,PR 创建后自动触发 CI。 CI 阶段的检查项: - 构建项目(Build) - 代码质量 / Lint - 单元测试 任何一步失败都会阻断合并,这样评审者能聚焦在业务逻辑上。 合并 develop 后的 CD PR 通过评审并执行 “Rebase and merge” 后,自动化流程会: 构建镜像(例如 my-app:dev)。 推送至镜像仓库。 通过 SSH 或脚本部署到测试服务器。 几分钟后就能在联调环境验证实际效果。如果有多服务联动,可以在这里完成前后端互测。 面向生产的发布流程 当测试环境验收完毕,管理员会: 将 develop 合并入 master,并使用 “Squash and merge” 保持整洁历史。 在最新 commit 上创建语义化标签,比如 v1.2.0。 推送标签到远端,触发生产流水线。 流水线脚本会读取标签并执行: git checkout master git pull origin master git tag -a v1.2.0 -m "Release v1.2.0" git push origin v1.2.0 随后: ...

2024年4月25日 · 1 分钟 · 99 字

使用 Nexus 搭建 Maven 私服

为什么自建私服 当团队规模增大,频繁依赖外部 Maven 中央仓库会导致构建迟缓。搭建 Nexus 私服能够: 统一缓存依赖,减少开发者本地下载时间。 对内部制品做版本管控与权限隔离。 支持代理国内镜像,规避网络波动。 安装 Nexus 3 下载 Nexus 3.7 以上版本(需要 JDK 17)。 解压后重点关注两个目录: nexus-3.77.1-01/ # 主程序 sonatype-work/nexus3/ # 数据与配置 核心命令: ./nexus start # 启动 ./nexus stop # 停止 ./nexus status # 查看状态 初始密码位于 sonatype-work/nexus3/admin.password,首次登录后系统会要求修改并删除该文件。 首次登录与端口设置 编辑 nexus-3.77.1-01/etc/nexus-default.properties 可以更改默认端口(示例使用 8090)。随后访问 http://localhost:8090,用 admin + 初始密码登陆后台。 配置代理与仓库 在 Repositories 模块中: 为 maven-central 这类 Proxy 仓库改用阿里云镜像地址 http://maven.aliyun.com/nexus/content/groups/public/。 新建一个 Hosted 仓库(例如 levon-release)存放内部制品。 新建一个 Group 仓库(例如 levon-public),将 Proxy 与 Hosted 仓库组合,统一对外提供地址。 ...

2024年3月15日 · 1 分钟 · 126 字