1 个三级分类
三级分类
技术体系化整理、工程实践与开发笔记。
专题分组
1 个三级分类
三级分类
2 个三级分类
3 个三级分类
2 个三级分类
2 个三级分类
3 个三级分类
1 个三级分类
三级分类
服务器与部署这份记录把 GCP Spot VM 的低价区域按月费估算做成对照表,重点覆盖 e2-micro 与少量 e2-small 配置,并统一加入 10GB 硬盘成本,方便直接比较总月费。表中最便宜的是 us-west4 拉斯维加斯 e2-micro,Spot 估算 $0.65,加硬盘后约 $1.05/月;us-central1、us-west3、us-west8 也处在 $1.08 到 $1.15/月区间,是美国低价区域的主要候选。欧洲区域整体略高,比利时、荷兰、芬兰、伦敦的 e2-micro 总月费约 $1.35 到 $1.55,但从香港访问延迟估算普遍在 280ms 以上。亚洲区域价格更高但延迟更友好,新加坡约 $1.75/月且香港延迟 50-80ms,东京、台湾、孟买、悉尼则分别提供不同的价格与网络距离取舍。表格还列出 us-west4 与 us-central1 的 e2-small,2GB 内存配置总月费约 $1.75 到 $1.80,可作为内存需求稍高时的低价备选。适合需要为轻量服务、测试机或低成本节点选择 GCP Spot VM 区域的用户,用来在预算、机型规格、磁盘成本和香港方向网络延迟之间做初步筛选。
这是一套面向 Debian/Ubuntu VPS 的轻量级公网入口防火墙管理方案,用一份 rules.conf 和一个 firewall-apply.sh 把分散的端口访问控制收敛到可读、可迁移的规则模型中。文章围绕常见 VPS 演进后的混乱场景展开:nginx、后台服务、Docker ports、数据库或调试端口陆续暴露后,管理员往往难以确认开放面,直接改 INPUT 链还可能对 Docker 流量路径判断错误。方案将规则分为 global、public、inbound 三个区块,分别表达全局白名单、对所有来源公开的端口,以及端口级来源白名单,让配置文件本身成为当前公网入口状态的说明。它特别强调边界控制:只接管外部进入的访问,区分宿主机入口和 Docker 暴露端口,并优先放过常见 Docker bridge 内部流量,避免 web、api、postgres、redis 等容器间依赖被误当作公网访问拦截。脚本还会在执行时自动安装并启用轻量 systemd 服务,使 iptables 规则在重启后可由同一份规则文件恢复,而不需要额外维护 service 文件。适用读者是维护个人或小型业务 VPS 的开发者、运维和自托管用户;它不覆盖出站控制、K8s 网络策略、审计平台或行为风控,但能解决端口公开、来源限制、全局放行和重启恢复这些基础入口治理问题。
这篇笔记围绕 Gemini Pro 会员每月可领取、可叠加但有时限的赠金,记录如何把赠金额度用于创建一台低成本的 GCP 香港落地 VPS。正文给出从 Compute Engine 新建实例开始的配置路径:区域选择 asia-east2 香港,机型选 E2 系列 e2-micro,系统使用 Debian 12,并将启动盘改为 10GB 标准永久性磁盘以避免 SSD 带来的额外费用。省钱重点放在两处:把虚拟机预配模型改为 Spot 抢占式,以及将网络服务等级从 Premium 调整为 Standard,使计算、磁盘和出站流量都按更低成本计费。文章还补充了创建时的防火墙勾选、费用预估、静态 IP 绑定场景,并列出静态 IP 在未使用、标准 VM、Spot VM、Cloud NAT 等不同状态下的月度费用差异,提醒未使用的保留 IP 反而更贵。后半部分记录了安装 Google Cloud SDK、通过 gcloud auth login 登录、复制 gcloud compute ssh 命令连接实例以及修改 SSH 登录信息的操作,并特别强调防火墙配置需要检查。针对 Spot 实例可能被抢占停机的问题,作者提供了一个基于服务账号 JSON、google-cloud-compute 客户端轮询实例状态并在 TERMINATED 时自动 start 的 Python 守护脚本,配合 nohup 后台运行,适合希望用赠金搭建轻量代理或香港节点、同时控制 GCP 账单风险的用户参考。
这篇笔记聚焦 LangChain embeddings 的本地文件缓存处理,核心场景是避免重复调用 embedding 模型,同时保证缓存命中结果不会因模型差异而混用。正文用 `LocalFileStore("./.cache/embeddings/", update_atime=True)` 和 `CacheBackedEmbeddings.from_bytes_store(...)` 展示了基本写法,并强调同一段文本在不同模型下会得到不同向量,因此缓存 key 需要通过 `namespace=openai_embeddings.model` 区分模型命名空间,避免串缓存。`LocalFileStore` 在读取缓存文件时可以主动刷新 atime,也就是最后访问时间,用来弥补某些文件系统默认不可靠更新 atime 或更新策略较弱的问题。缓存代理的工作流程是先由输入文本生成 key,再查本地 store,命中则直接返回 embedding,未命中才调用 `openai_embeddings` 并把结果写回缓存。文章还解释了 mtime、ctime、atime 的区别,并围绕 atime 引出缓存淘汰策略:LRU 会优先删除很久没访问的项目,适合 embedding 缓存、页面缓存、Redis 热数据和数据库 buffer pool 等大多数热点访问场景;MRU 则优先删除刚访问过的项目,更适合顺序扫描大文件、批处理或一次性遍历数据集这类短期不会回头访问的场景。读者可以据此理解 LangChain 缓存 embedding 的关键配置点,以及在清理本地缓存时如何根据访问模式选择 LRU 或 MRU。
这是一则面向 Vibe Coding 工作流的技能安装速记,核心对象是 GitHub 仓库 sickn33/antigravity-awesome-skills 及其可通过 npx skills add 引入的 Antigravity Skills。正文给出四条直接可执行的安装命令,分别添加 rag-engineer、prompt-engineer、langgraph 和 langfuse,覆盖 RAG 工程、提示词工程、LangGraph 编排与 Langfuse 观测相关能力。除命令外,笔记特别标出 Codex App / Codex CLI 与 Google Antigravity 在 Skills 目录命名上的差异:OpenAI Codex 使用 `.agents/skills`,而 Antigravity 使用 `.agent/skills`。这个区别只差一个复数形式,但会直接影响技能文件放置路径,适合在多工具并用或迁移配置时作为校验点。读者可以从中快速复制安装命令,并避免把 Codex 的官方目录约定误套到 Antigravity 上。内容更适合正在配置 AI 编程代理、管理 Skills 仓库,或需要在 Codex 与 Antigravity 之间区分本地目录结构的开发者。
服务器与部署这是一篇面向 VPS 自部署场景的 OpenClaw 部署与加固记录,环境示例为德国 VPS,采用官方一键脚本安装,并选择 Codex 认证方式完成初始化。内容覆盖了日常维护所需的更新与卸载命令,包括检查版本、原地安全升级、跳过自动重启,以及彻底清理服务、数据目录、全局 CLI 和残留进程的卸载路径。文章还记录了 Telegram 机器人接入流程:通过 BotFather 创建 bot、获取 pairing code 后批准指定用户,并在群组使用时关闭 Privacy Mode、授予管理员和读取群组消息权限。排错部分集中处理两个常见访问问题,一是 Control UI 的 origin not allowed,需要在 ~/.openclaw/openclaw.json 中配置 gateway.controlUi.allowedOrigins;二是浏览器首次访问触发的设备配对机制,需要在服务器上查看并批准 pending device。后半部分重点说明 Docker 沙盒模式的安全边界:它并不是把整个 OpenClaw 容器化,而是保留宿主机上的 Gateway、配置、Token、Telegram 设置和历史会话,仅将 agent 的工具执行切换到 Docker 容器中。文章给出了拉取官方 Dockerfile.sandbox、本地构建 openclaw-sandbox:bookworm-slim 镜像、配置 agents.defaults.sandbox、可选禁用高风险工具、重启服务和验证 sandbox explain 输出的完整流程,适合已经跑通 OpenClaw、希望在不丢数据的前提下进行原地加固的开发者或运维使用。
AI 大模型开发这是一篇面向中文 RAG 原型实现的稀疏检索流程拆解,围绕“切块、分词、构建 BM25 索引、查询打分”串起完整链路。正文用 Python 示例演示如何借助 RecursiveCharacterTextSplitter 控制 chunk_size、chunk_overlap 和分隔符优先级,用 jieba 处理中文分词,再通过 rank_bm25 构建 BM25Okapi 索引并返回 Top-N 检索结果。文章进一步展开 BM25 内部保存的 idf、doc_freqs、doc_len、avgdl 等统计量,说明 IDF 是基于全部 chunks 的全局逆文档频率,文档侧权重包含 TF 饱和与长度归一化,而查询侧通常按 IDF 与查询词频生成稀疏向量。示例还展示了“苹果手机最新功能”能够命中包含相同词汇的 chunk,却无法匹配语义相关但字面不同的 “iPhone 16 Pro Max”,由此揭示 BM25 作为词汇匹配方法在同义词和近义表达上的天然短板。对于工程选型,正文区分了 rank_bm25 的内存线性扫描特性与 Elasticsearch、Milvus 等生产级倒排索引方案,并指出前者适合小规模验证,后者更适合大规模、增量更新和低延迟检索。最后通过传统 BM25 与 Learned Sparse 的对比,帮助读者理解可解释统计检索、神经稀疏检索和稠密检索在 Hybrid RAG 中各自的定位,适合正在搭建中文知识库检索、调试召回效果或评估 RAG 检索架构的开发者阅读。
这篇笔记从 RAG 检索质量出发,解释文本向量化时常见的稀疏向量与稠密向量两条路线:前者维度通常等于词汇表规模,只有少量非零值,代表方法是 BM25 和 TF-IDF;后者维度较低但几乎每一维都有实数值,常由 BERT、BGE、OpenAI Embedding 等模型生成。内容重点说明 BM25 只基于已分词后的 token 计算 TF、IDF 和文档长度分数,本身不负责分词,因此中文、日语、泰语、阿拉伯语、德语复合词等场景会受到分词或形态处理质量影响。稠密向量部分则说明 Embedding 模型通过对比学习把语义相近文本拉近、语义不同文本推远,并列出余弦相似度、点积、欧氏距离等常见匹配方式。对比部分强调稀疏检索适合专有名词、数字和明确短语,解释性强且对精确关键词敏感;稠密检索更适合自然语言和模糊语义查询,但可能在稀有词、精确匹配和算力成本上存在短板。实践建议落在混合检索:并行使用 BM25 与 Embedding 召回,再通过 RRF 等方法融合排序,借助 Milvus、Qdrant、Weaviate 等向量数据库实现更稳健的 RAG 检索链路。
这是一份面向服务器初步验收与网络排查的命令清单,集中整理了几类常见测试脚本及其适用场景。内容覆盖国际互联延迟测试、整机综合性能评估、NodeQuality 质量检测、基于 curl 的 DNS/TCP/TLS/首包/总耗时拆分、流媒体区域解锁检测、IP 信息检测以及 nexttrace 安装。每个工具都给出可直接执行的 bash 或 curl 命令,适合在新购 VPS、迁移节点、排查访问慢或确认线路质量时快速获得基础数据。文中特别提示 NodeQuality 测试较占内存,建议用 nohup 放到后台运行,并给出自动确认选项的写法,避免长时间测试中断。curl 计时命令则适合针对单个目标站点观察连接链路各阶段耗时,帮助区分解析、建连、TLS 握手和服务端响应问题。整体更像一份运维速查笔记,适合服务器使用者、个人站长和需要快速判断节点网络质量的开发者保存备用。
这是一份面向 VPS 或云服务器场景的 Debian 12 重装速记,核心做法是在当前系统中使用 root 用户下载 bin456789/reinstall 项目的 reinstall.sh 脚本,并通过脚本触发 dd/重装流程。正文给出的主流程包括先用 curl 或 wget 从 GitHub 获取 reinstall.sh,再执行 bash reinstall.sh debian 12 指定安装 Debian 12,完成安装后重启服务器。重启进入新系统后,需要运行 apt-get update -y,并安装 curl、sudo、git 等基础工具,为后续管理、脚本下载和权限操作补齐环境。文章还区分了国外服务器和国内服务器的脚本下载地址:国外可使用 raw.githubusercontent.com,国内则提供 cnb.cool 镜像地址,以降低网络访问 GitHub 失败的概率。需要注意的是,这类重装操作通常会覆盖原系统环境,正文没有展开数据备份、磁盘分区、登录凭据和救援模式等风险处理,因此更适合作为已有经验用户的命令备忘,而不是完整的新手教程。读者可以从中快速确认 Debian 12 重装的最小命令序列,以及在不同网络环境下选择脚本源的方式。