这里是我所有业余项目的总览,按技术栈分类。
OpenResty / Lua — LLM API 网关
balancer_body — 带请求体替换的降级链
基于 OpenResty 的负载均衡原型,实现主备切换 + 请求体重写。核心流程:access 阶段解析路由头 → proxy_pass 主目标 → 5xx 时 error_page 跳转 @retry → 遍历降级目标,为每个目标改写 body(替换 model 字段),支持流式响应透传。
- 技术栈:OpenResty, LuaJIT, resty.http, cosocket
- 端口:8000(主),9001/9002/9003(mock 后端)
token-quota — Token 配额/限流模块
LLM 网关的配额管理核心。三级限流(API / APP / Model)、多周期(日/月/年/自定义 P45D)、双路径结算(安全期内存缓冲 + 危险期实时 Redis)。13 个 Lua 模块,1975 行代码,29 个端到端测试用例。
- 技术栈:OpenResty, Redis standalone + cluster, MySQL, Lua EVAL
- 端口:8000
nginx_retry_fallback
合并重试+降级服务器列表为一组,插件式架构,支持 should_run / calc_timeout / select_server 三个自定义 hook。4 个 mock 后端(8080-8083)。
llm-gateway-demo / llm-gateway-plugin
全功能 LLM 网关原型和轻量插件版。动态 upstream 管理、API 路由、admin REST 接口。通过 start.sh 启动,端口 8080。
其他 Lua 项目
| 项目 | 说明 |
|---|---|
| balancer_demo / balancer_plugin_demo | balancer_by_lua_file 重试+降级早期原型 |
| context-length-route / model-context-length-route | 按请求上下文长度路由到不同模型后端 |
| dynamic-routing | 基于 Redis 的动态路由 |
| process | 多 nginx phase 与 Redis 交互原型 |
| fail-retry | resty.http 简单重试 demo |
| unit-test | iresty_test 单元测试框架 |
| debugger / debugger-test | LuaPanda + VSCode 调试集成 |
Node.js — API 网关
LLM API Gateway
聚合 Anthropic / Moonshot / DashScope / 本地 Ollama 四个提供商的统一网关,OpenAI 兼容接口。支持三种路由模式:direct(指定模型)、auto(能力矩阵评分)、smart(LLM 自主路由)。内置免费配额追踪,配额耗尽自动降级。
- 技术栈:Node.js 原生 http, js-yaml, YAML 配置
- 端口:3000
Chrome 扩展 — JsProj/ChromeExt/
SmartBookmarkExt — 智能自动收藏夹
追踪用户在每个页面的停留时间,超过阈值自动收藏到指定文件夹。自动提取关键词标签(从标题/SEO/URL 中),支持搜索和去重。
- 技术栈:Manifest V3, Chrome bookmarks/storage/tabs API
- 核心文件:background.js(22KB)
FeishuAutoExt — 飞书应用自动配置助手
在 open.feishu.cn 上自动化创建自建应用:填表单、添加机器人、批量导入权限、创建版本、配置事件订阅、提取 App ID/Secret。
- 核心文件:scripts/content.js(42KB DOM 自动化)
其他 Chrome 扩展
| 扩展 | 功能 |
|---|---|
| DailySpinExt | 每日签到自动化 |
| ExtensionManagerExt | 扩展管理工具 |
| HotNewsExt | 热点新闻聚合 |
| HuggingfaceExt | Hugging Face 集成(webpack 构建) |
| ResumeHelperExt | 简历辅助工具 |
| TableMateExt | 表格管理(xlsx 支持) |
| WebRagExt | 网页 RAG 扩展 |
| WorkdayExt | 工作日计算器 |
微信小程序 — 哆啦工具袋 (JsProj/toolbox/)
包含 12 个实用工具的微信小程序,使用 WeUI 组件库和微信云开发。
| 工具 | 说明 |
|---|---|
| 工时记录 | 多段计时,时薪收入计算 |
| 乐了么 | 情绪打卡,日历统计 |
| 台球记录 | 实时计分器 |
| 斯诺克 | 100 位职业球员数据 + 对战统计 |
| 素材收集 | 文字/图片/链接收集 |
| 保质期管家 | 扫码+OCR 识别,到期提醒 |
| 汇率换算 | 多银行实时汇率 |
| 种菜模拟器 | 真实环境参数种菜 |
| 续费管理 | 自动续费服务提醒 |
| 财富自由计算器 | 多币种资产建模 |
| 个人财富追踪器 | 多平台资产管理 |
| 随口记 | AI 语音/文字记账 |
4 个云函数:fetchArticle、getExchangeRate、ocrDate、speechRecognition。
Python 项目
Bailian Batch API Client (PyProj/batch_api_project/)
阿里云百炼批量推理 API 客户端,处理文件上传(JSONL)、创建批处理任务、轮询状态、下载结果的全流程。批量价格仅为实时 API 的 50%。
- 技术栈:Python 3.7+, httpx, python-dotenv
Snooker Data Scraper (snooker/)
爬取 cuetracker.net 斯诺克对战数据,支持单球员对和批量 top 8 球员(28 对)。断点续爬,输出 JSON/SQLite。
- 技术栈:Python, requests, BeautifulSoup, SQLite
Java — 条件路由算法 (JavaProj/)
条件路由等价性检测,用 HashSet 做顺序无关的比较。javac *.java && java ConditionRouteTest 编译运行。
基础设施
Elastic Search 日志分析 (elastic-search/)
Docker Compose 搭建的 OpenSearch + Logstash + Filebeat 环境,用于日志存储、搜索和可视化。关闭安全特性,Apple Silicon 优化。
1 | docker-compose up -d |
FRP 内网穿透 + Hexo 博客 (frp/)
frp 将本地服务暴露到公网:hexo 博客、LLM 网关、Ollama、NAS 影音等 6 个代理。VPS 端 OpenResty 处理 SSL 终结。
AI Gateway 限流设计 (aigw/)
Redis + Lua 限流系统设计文档(Node.js 实现)。支持 5 种算法、多维规则、过滤器条件限流。尚未实现代码。
个人站
- 博客:blog.hummingg.com
- LLM 网关:myllm.hummingg.com