徇的小站

徇的小站

AI 系统的沙盒执行环境设计思路
发表于2026-05-23|AI与机器学习安全
背景 在 AI 应用中,LLM 经常需要执行代码——运行 Shell 脚本、读写文件、安装依赖。但 LLM 的输出本质不可信:它可能幻觉出危险命令,也可能在 prompt injection 下被诱导执行恶意代码。 沙盒执行环境因此成为 AI 系统的基础设施。本文从架构设计的角度,拆解一套可落地的沙盒方案。 分层设计:传输与隔离解耦 沙盒有两个可以独立变化的关注点: 关注点一:传输方式——命令怎么发到执行环境? 开发调试时直接在本地起进程,延迟低 生产环境通过 SSH 发到隔离容器,宿主机零风险 关注点二:隔离级别——用什么力度限制进程? 轻量级:namespace + chroot + capability drop,适用于开发环境与内部信任任务 严格级:轻量级基础上叠加 seccomp + cgroup(内存/CPU 限制)+ 独立 network namespace + 禁用 /proc,适用于不可信的外部输入 关键是这两个关注点互不耦合——传输方式和隔离级别各写一份实现,按需组合使用,不用为每种"传输+隔离"的组合写一套独立的代码。 flowc...
Chrome 翻译强制代理方案
发表于2026-05-23|基础设施网络
背景 Chrome 浏览器的内置翻译功能需要直连 Google 服务。只有在开启 Clash 的系统代理或 TUN 模式(全局代理)时,翻译功能才能正常工作。 但我的日常习惯是不开系统代理或 TUN 模式,避免影响其他软件的网络行为。浏览器流量通过 ZeroOmega 插件经 SOCKS5 代理转发到 Clash。 问题在于:ZeroOmega 只能代理网页内容请求,Chrome 内置的翻译请求不经过插件,因此无法使用翻译功能。 解决方案参考:SwitchyOmega/issues/264 原理 核心思路分两步: hosts 劫持:将 Google 翻译域名指向本地回环地址,让翻译请求发往本机 Clash 隧道转发:Clash 监听本地对应端口,将收到的流量通过代理转发到真正的目标服务器 基础方案 步骤 1:修改 hosts 12127.0.0.1 translate.google.com127.0.0.1 translate.googleapis.com 步骤 2:配置 Clash 隧道 在 Clash 配置文件中添加: 12tunnels: - tcp,127....
通过代码对接ConvertX
发表于2026-02-08|工具与效率
背景 有一个需求是通过代码对接一个格式转换的开源项目用于格式转换,最后选定了ConvertX这个项目,但是发现没有提供直接可用的API接口,只有WEB端的接口,最后通过分析WEB端的接口请求,成功对接了ConvertX的接口。 ConvertX接口分析 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485async ({ jwt, redirect, cookie: { auth, jobId } }) => { if (!ALLOW_UNAUTHENTICATED) { if (FIRST_RUN) { return redirect(`${WEBROOT}/setup`, 302); ...
余弦相似度的推导以及不影响相似度计算的向量维度拓展方法
发表于2026-01-22|AI与机器学习
背景 以前在存储EMBEDDING模型输出向量的时候,由于不同模型输出的向量维度不同,而向量数据库同一个表只能存储同一维度长度的向量,当时使用的方案是直接在向量后面补0来拓展。 最近在思考这样做为什么不会影响相似度的计算,同时研究了一下余弦相似度计算公式的推导过程。 向量长度 一维向量的长度 对于向量 x=(x)x = (x)x=(x) 它的长度是 ∥x∥=∣x∣\|x\| = |x|∥x∥=∣x∣ 二维向量的长度 对于向量 x=(x1,x2)x = (x_1, x_2)x=(x1​,x2​) 123456789(x1, x2) * |\ | \x2 | \ ||x|| | \ |____\ x1 它的长度是 ∥x∥=x12+x22\|x\| = \sqrt{x_1^2 + x_2^2}∥x∥=x12​+x22​​ 三维向量的长度 对于向量 x=(x1,x2,x3)x = (x_1, x_2, x_3)x=(x1​,x2​,x3​) 它的长度是 ∥x∥=x12+x22+x32\|x\| = \sqrt{x_1^2 + x_2^2 + x_3...
开发工具数据迁移
发表于2025-08-14|工具与效率
背景 最近发现一个问题,我的C盘满了,我用SpaceSniffer检查了一下,发现WSL的数据吃了我将近100G,各种开发环境的包也吃了不少空间,所以打算把这些数据迁移到其他盘,然后通过符号链接的方式来解决这个问题。 迁移WSL wsl的迁移现在已经很简单了,现在可以直接使用move命令来迁移wsl的存储位置 首先看看当前有哪些wsl,记录下要迁移的wsl的名字 1wsl --list 适用于 Linux 的 Windows 子系统分发: Arch (默认值) rancher-desktop-data rancher-desktop 然后开始迁移 12345wsl --manage Arch --move F:\wsl\Archwsl --manage rancher-desktop-data --move F:\wsl\rancher-desktop-datawsl --manage rancher-desktop --move F:\wsl\rancher-desktop 迁移完成后,重新打开wsl,检查数据是否完整 迁移其他开发工具下载的依赖包 比如maven、pip、...
使用Antlr4来解析P社游戏群星[stellaris]的科技树
发表于2025-05-18|游戏
背景 群星更新了4.0,然后新版本的科技树不知道长什么样,科技树mod也坏了,就打算自己修一下,顺便学习一下Antlr4 方案 1. 解析游戏的配置文件 科技树的配置文件在common/technology/目录下 本地化文件在localization/目录下,这次只考虑中文 变量在common/scripted_variables目录下 还有个scripted_trigger在common/scripted_triggers目录下,这次没有用到 每个配置文件的配置项都可以看做是一个对象,对象中有赋值语句和条件计算语句,计划是在grammar中定义整个结构,这样可以在Visitor中读取到每个Property的数据 如 1234567891011121314151617181920212223242526272829303132333435363738394041424344technology_body : technology_body_start ( area | tier | category | icon | modifier ...
在磁盘上安装LiveCD
发表于2025-04-25|基础设施Linux
安装教程 因为目前切换到了Windows,先简要备注一下大概的步骤,后续有机会再补充详细的步骤 准备一个UEFI启动的分区,格式化为FAT32格式,具体大小看想放多少个镜像,我这边是分了10G,假设分区名称为sda1 将EFI分区挂载到/mnt,然后安装grub,注意需要用removable的方式,这样会把grub所需的模块全部安装到EFI分区 https://wiki.archlinux.org/title/GRUB/Tips_and_tricks#Alternative_installation_methods 12mount /dev/sda1 /mntgrub-install --target=x86_64-efi --bootloader-id=LIVECD --efi-directory=/mnt --boot-directory=/mnt --removable 这样会得到结构的EFI分区 123456789EFI BOOT BOOTX64.EFIgrub fonts locale themes x86_64-efi grubenv 安装...
Steam的P2P联机优化
发表于2024-11-22|基础设施网络
背景 最近在玩群星,但是多人联机效果非常差,然后网上调研了一下发现可以用组网工具加速提升联机效果。 使用了一段时间之后发现有时候有效果有时候没有效果,所以研究了一下。 P2P实现的原理 Steam 数据报中继 https://partner.steamgames.com/doc/features/multiplayer/steamdatagramrelay?l=schinese https://partner.steamgames.com/doc/api/ISteamNetworkingSockets#CreateListenSocketP2P https://partner.steamgames.com/doc/api/ISteamNetworkingSockets#ConnectP2P Steam的SDK中提供了可以直接用于P2P的接口,游戏只需要实现接口就实现P2P连接 Steam中的对等网络及共享IP 地址 https://help.steampowered.com/zh/faqs/view/1433-AD20-F11D-B71E 参考这篇文章介绍 使用中继进行对等连接...
实现一个能够自动删除的临时文件
发表于2024-08-09|后端Java
背景 前段时间在弄关于文档转图片然后进行处理的工作,其中由于图片内容会多次读取,所以将其持久化在本地。 但是由于图片是临时文件,所以需要在使用完之后删除。 最初的实现是使用try-with-resource,但是随着流程变得复杂,图片的生命周期变得不可控,所以需要一个更好的解决方案。 思路 利用Cleaner的特性,在文件被GC回收时,进行删除操作。需要注意不要在cleaner中应用this对象,否则会导致内存泄漏。 利用MDC保存当前线程的MDC信息,这样cleaner执行时,用于跟踪上下文的MDC可以保留,使得traceId等信息不会丢失。 实现 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556package com.haizhi.metis.document.parse.common;import java.io.File;import java.io.IOException;import java.lang.re...
让自定义注解支持配置属性注入
发表于2024-07-15|后端Java
背景 在写代码的过程中需要用到一些自定义annotation,但是annotation中的String类型的value需要字符串常量,于是想是否可以将@Value所支持的表达式移植到自定义注解中。 实现 Spring中的具体实现 org.springframework.beans.factory.support.DefaultListableBeanFactory#doResolveDependency 123456789101112131415161718Object value = getAutowireCandidateResolver().getSuggestedValue(descriptor);if (value != null) { if (value instanceof String) { String strVal = resolveEmbeddedValue((String) value); BeanDefinition bd = (beanName != null && cont...
123
avatar
codexvn
文章
28
标签
57
分类
12
Follow Me
最新文章
AI 系统的沙盒执行环境设计思路2026-05-23
Chrome 翻译强制代理方案2026-05-23
通过代码对接ConvertX2026-02-08
余弦相似度的推导以及不影响相似度计算的向量维度拓展方法2026-01-22
开发工具数据迁移2025-08-14
分类
  • AI与机器学习3
    • 安全1
  • 后端9
    • Java8
    • 消息队列1
  • 基础设施9
    • Linux3
    • 容器1
标签
Hexo AST Embedding 工具 余弦相似度 时区 代理 Lombok 群星 集群 Clash Spring Cloud 安全 网络 Builder Java Docker Zeal Alibaba Steam Windows Conda 博客 RestTemplate AI API SuperBuilder Chrome Fiddler 沙盒 Spring Boot LiveCD ConvertX Python WSL 架构设计 HTTPS RabbitMQ 局域网 JDK
归档
  • 五月 2026 2
  • 二月 2026 1
  • 一月 2026 1
  • 八月 2025 1
  • 五月 2025 1
  • 四月 2025 1
  • 十一月 2024 1
  • 八月 2024 1
网站信息
文章数目 :
28
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By codexvn框架 Hexo 8.1.2|主题 Butterfly 5.5.4