avatar
文章
28
标签
53
分类
0

徇的小站
AI 系统的沙盒执行环境设计思路
发表于2026-05-23
背景 在 AI 应用中,LLM 经常需要执行代码——运行 Shell 脚本、读写文件、安装依赖。但 LLM 的输出本质不可信:它可能幻觉出危险命令,也可能在 prompt injection 下被诱导执行恶意代码。 沙盒执行环境因此成为 AI 系统的基础设施。本文从架构设计的角度,拆解一套可落地的沙盒方案。 分层设计:传输与隔离解耦 沙盒有两个可以独立变化的关注点: 关注点一:传输方式——命令怎么发到执行环境? 开发调试时直接在本地起进程,延迟低 生产环境通过 SSH 发到隔离容器,宿主机零风险 关注点二:隔离级别——用什么力度限制进程? 轻量级:namespace + chroot + capability drop,适用于开发环境与内部信任任务 严格级:轻量级基础上叠加 seccomp + cgroup(内存/CPU 限制)+ 独立 network namespace + 禁用 /proc,适用于不可信的外部输入 关键是这两个关注点互不耦合——传输方式和隔离级别各写一份实现,按需组合使用,不用为每种"传输+隔离"的组合写一套独立的代码。 12345678 ...
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.0.0 ...
通过代码对接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
背景 以前在存储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^2} ...
开发工具数据迁移
发表于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、npm ...
使用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
安装教程 因为目前切换到了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
背景 前段时间在弄关于文档转图片然后进行处理的工作,其中由于图片内容会多次读取,所以将其持久化在本地。 但是由于图片是临时文件,所以需要在使用完之后删除。 最初的实现是使用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.ref.C ...
让自定义注解支持配置属性注入
发表于2024-07-15
背景 在写代码的过程中需要用到一些自定义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 && contain ...
123
avatar
codexvn
文章
28
标签
53
分类
0
Follow Me
最新文章
AI 系统的沙盒执行环境设计思路2026-05-23
Chrome 翻译强制代理方案2026-05-23
通过代码对接ConvertX2026-02-08
余弦相似度的推导以及不影响相似度计算的向量维度拓展方法2026-01-22
开发工具数据迁移2025-08-14
标签
stellaris RestTemplate micromamba \@Builder ConvertX linux \@Accessors JAVA EasyExcel mamba 架构设计 \@SuperBuilder hexo SSL 代理 AI Gzip Fiddler Steam,P2P,LAN,Easytier TZ Clash docker SwitchyOmega JDK 安全 SpringBoot 泰拉瑞亚 microconda wsl 游戏 数据迁移 mermaid zeal conda GC 余弦相似度 Https Java Embedding antlr4
归档
  • 五月 20262
  • 二月 20261
  • 一月 20261
  • 八月 20251
  • 五月 20251
  • 四月 20251
  • 十一月 20241
  • 八月 20241
网站资讯
文章数目 :
28
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2026 By codexvn
框架 Hexo|主题 Butterfly