聚合文章

汇集全部已收录博客的最新文章,点击标题前往原文阅读。

排序方式:最新发布

new-api 数据同步实践:全量拷贝与增量同步

两个 new-api 实例之间做数据同步,前前后后踩了不少坑:先是把整库从主实例拷贝到备实例,跑通后又把需求收敛成"只同步渠道"的增量方案。这篇文章把两套做法、取舍依据和踩坑记录一次写清,所有主机信息已脱敏,核心方法可直接复用。 1. 场景与数据模型 先交代背景。我有两个 new-api 实例:一个部署在公网,作为日常配置和使用的主实例;一个部署在内网,作为备实例。需求分两个阶段:一开始要的是"整…

new-api 分流与重试降级实战:三个免费渠道如何做到逐级兜底

new-api 网关里,「优先级」和「权重」是控制渠道使用顺序的两个参数,但实际跑起来才发现:官方 FAQ 的一句话背后,藏着不少和直觉相反的行为。这篇文章从一个真实的 429 限流事故出发,讲清分流、重试降级的官方规则,以及我们最终用「拆档」解决同档渠道互不兜底问题的全过程。 1. 起因:一个限流全员陪跑 内网自建的 new-api(v1.0.0-rc.34)上,同一个模型挂了三个免费渠道(pr…

new-api 网关改写实战:param_override 与 header_override 的两个坑

网关层统一改写请求,是 new-api 这类 API 网关最实用的能力之一:客户端不兼容上游的地方,在渠道上配一次覆盖所有客户端。但这里藏着一个容易被忽略的联动坑——param_override 的执行会悄悄污染请求级的 header 状态,让另一个渠道配得好好的 header_override 全部失效。这篇文章记录两个真实故障的定位过程与配置层修复,第二个尤其值得收藏。 1. 背景与渠道拓扑…

new-api 重试配置最佳实践:RetryTimes 与状态码范围

重试次数和状态码范围,是 new-api 网关里最容易被误解的一对配置:RetryTimes 不是简单的"失败重试几次",它决定的是渠道档位能下探多深;而状态码范围决定哪些错误值得降级。搞清这两者的关系,才能配出"免费档逐级兜底、付费档最后接盘"的稳定链路,避免多配一个数字就多一次无效等待。 1. 重试的本质:次数是档位索引 先看一个反直觉的事实:new-api 的重试不是"同一个渠道再来一次",…

NPM 续期证书不自动 reload?renew_hook 让它续期即生效

NPM(Nginx Proxy Manager)的 Let's Encrypt 证书有内置的自动续期机制,但很多人在续期后发现:面板里明明显示新证书,浏览器里却还是旧的那张。这篇文章记录了我对 NPM 2.12.6 的排查过程——问题根源、官方设计逻辑,以及我用 renew_hook 实现"续期即 reload"的完整方案和验证。 1. 问题:续期成功但没生效 某天我手动触发了一张证书的续期,流程…

AI Agent 实战手记 03:让技能越用越好用

技能不是写完就完事的说明书。它在交付那天最贴合实际,之后每用一次,都会积累一点点不贴合,直到某天你发现它给出的判断已经不能用。 这是「AI Agent 实战手记」的第三篇。01 讲工作区规划,02 讲会话交接,管的都是 Agent 身外的环境;这篇讲 Agent 自己身上最容易烂掉的那块——技能。 1. 痛点:交付即巅峰 技能写出来那天是对的,之后开始漂移。三种典型症状,早晚都会遇到: 判断规则误…

AI Agent 实战手记 04:给 Agent 选对 Loop 工作方式

同一个 Agent,为什么你只是聊聊天,别人却能让它通宵改完 40 个测试?差别通常在它的"工作方式"——专业点叫 Loop(循环)。上篇我们聊过权限模式(能动什么),这篇讲另一条线:循环方式(跑多远、怎么跑)。它决定 Agent 是回一句话就停,还是一轮一轮干到任务完成。 1. 什么是 Loop 工作方式(What) 1.1 一次循环是什么 Agent 最小的工作单位是"思考 → 调用工具 →…

用 kkFileView 搭一个文件在线预览服务

内网里堆着各种文档,docx、xlsx、pptx、pdf 混在一起。每次想快速看一眼内容,都要先下载、再装 Office 或 WPS,看完再删掉,纯属浪费时间。更别说分享给别人时,对方还得先问一句"你装 Office 了吗"。 kkFileView 解决的就是这个场景:一个容器跑起来,浏览器里直接预览文件。它内部靠 LibreOffice 把 Office 文档转成 PDF 或图片,前端再渲染出来…

给 AI 派活:四份文档与一套验收标准

最近我把一整套开发活交给了一个 AI agent 干:9 个阶段、28 条验收标准、130 个自动化测试,前后几十次提交。整个过程里没有一句"你去写个 X 吧"式的口头指令,所有约定都躺在磁盘上的四份文档里。 这篇把这套方法和里面的术语讲清楚。它不需要什么高级工具,你手上有任何一个能执行命令、能写文件的 agent 就能用。 1. 为什么需要一套文档 1.1 它不记得你 跟 agent 协作,第一…

把浏览器扩展的数据同步到 GitHub:用代码仓库当云端存储

浏览器扩展的数据默认只躺在 chrome.storage.local 里,清理一次缓存、换一台电脑,就全没了。想做云备份,通常意味着自己运维一个服务,或者去注册某个第三方 BaaS。这篇拆一个更省事的做法:把 GitHub 私有仓库当云端存储,一份 JSON 快照对应仓库里的一个文件,每次上传就是一个 commit。而这个仓库不只是"某个项目的备份盘"——它是一个统一的数据存放位置,多个项目各写各…

Word break with cost

Problem1 Given a set of strings W, a cost function c:W\to \R and a string s. Find elements w_1,\ldots,w_k\in W such that s=w_1\ldots w_k, and \sum_{i=1}^k c(w_i) is minimized. This problem is a genera…

Bounds on number of cuts

Consider we have an undirected graph G=(V,E) of n vertices, and there are positive cost c:E\to \R^+ on the edges. We define c(F)=\sum_{e\in F}c(e), to be the cost (value) of F\subset E. Let \mathcal{P…

Maximize Cash Back

Credit cards often offers rewards for purchases. For example, a card that gives 5% cash back for grocery stores. Also, credit cards often can be used to buy gift cards for specific stores. For example…

Yotta Savings and covering designs

Yotta Savings is a FDIC insured savings account that gives you “interest” in another way. It has a 0.2% APR. It is much better than the APR of many banks, but much worse than actual high APR savings a…

Use a box spread as a line of credit

In an idealized world, you could borrow at the Effective Federal Funds Rate (EFFR) and also earn roughly the same rate on cash deposits. For simplicity, assume the relevant short rate is fixed for a m…