2作者: _as_text大约 22 小时前原帖
我总是记不住 `ln -s x y` 的操作数顺序,现在我明白了原因:这个命令支持两种同时的解析方式。 `(ln -s) (x y)` — 这是我想要的理解。`-s` 表示“符号链接”,参数顺序与 `cp x y` 相同。没问题,但我对这种类比不太信任——尤其是在经历了 `find`、`dd` 或 `tar` 之后。 另外,出生时我们将符号链接称为 `x y`,但后来如果我们执行 `ls -l y`,就会看到 `y -> x`。为什么会反转?使用 `ln -s` 使得 `-s` 无法强制施加一种约定:只有链接本身被称为符号链接,至于这对操作数意味着什么,就得由我们自己去理解。 `ln (-s x) y` — 这是我的理解。`-s` 表示“源”。你是在声明 x 是新名称 y 的内容来源。 “但等一下,在符号链接术语中,x 被称为‘目标’!”这让我感到困惑。我一直把“源”和“目标”当作反义词,所以这个记忆法总是出错。但 x 实际上是两者:链接的目标,内容的源头。¹ 所有指向某个资源的符号链接形成一棵以原始资源为根的树: ``` v1/ ← 原始资源 ├── v2 (ln -s v1 v2) │ └── v3 (ln -s v2 v3) └── v4 (ln -s v1 v4) ``` 每个带有 `-s` 的 `ln` 都扩展了一条分支。部分顺序 `x < y`(当且仅当 `ln -s x y`)甚至可以通过 `st_birthtime` 观察到——文件系统记录了哈斯图的构建历史。 简而言之:`ln -s old new` 将 `new` 推入以 `old` 为根的栈中。`-s` 是为了“源”,而不仅仅是“符号”。 --- ¹ 就像拓扑学学生最终意识到一个集合可以既是闭合的又是开放的一样——这些词并不是反义词,只是独立的属性。我想知道什么样的正式拓扑框架可以使“源”和“目标”对应于“开放”和“闭合”。
1作者: Evanson大约 22 小时前原帖
大家好!我开发了Lumina——一个开源的AI/LLM应用可观察性平台。只需5分钟即可通过Docker Compose自托管,所有功能均已包含。 问题: 在过去一年中,我一直在构建LLM应用,遇到了以下问题: - LLM的响应在调整提示后会随机变化,导致系统崩溃。 - 成本会意外飙升(结果发现是一个错误导致GPT-4而不是3.5受到影响)。 - 在测试提示变化时,没有简单的方法来比较“之前与之后”的效果。 - 现有工具要么太贵,要么在免费版本中缺少功能。 我构建的产品: Lumina是基于OpenTelemetry的,这意味着: - 可以与您现有的OTEL堆栈(如Datadog、Grafana等)兼容。 - 无供应商锁定,采用标准追踪格式。 - 只需三行代码即可集成。 主要功能: - 成本与质量监控——当成本飙升或响应质量下降时自动发出警报。 - 重放测试——捕获生产追踪,在更改后重放,查看差异。 - 语义比较——不仅仅是字符串匹配——使用Claude来判断响应是“更好”还是“更差”。 - 自托管版本——每天50,000条追踪,保留7天,包含所有功能(警报、重放、语义评分)。 工作原理: ```bash # 启动Lumina git clone https://github.com/use-lumina/Lumina cd Lumina/infra/docker docker-compose up -d ``` ```typescript // 添加到您的应用中(自托管无需API密钥!) import { Lumina } from '@uselumina/sdk'; const lumina = new Lumina({ endpoint: 'http://localhost:8080/v1/traces', }); // 包裹您的LLM调用 const response = await lumina.traceLLM( async () => await openai.chat.completions.create({...}), { provider: 'openai', model: 'gpt-4', prompt: '...' } ); ``` 就这样。每个LLM调用现在都记录了成本、延迟、令牌和质量评分。 与众不同之处: 1. 免费自托管,且限制合理——每天50,000条追踪和7天保留(每天午夜UTC重置)。所有功能均已包含:警报、重放测试和语义评分。非常适合大多数开发和小型生产工作负载。需要更多?可以升级到托管云服务。 2. 基于OpenTelemetry——不是另一种专有格式。使用标准OTEL导出器,兼容现有基础设施。可以同时将追踪发送到Lumina和Datadog。 3. 重放测试——杀手级功能。捕获100条生产追踪,更改提示,重放所有追踪,并获取语义差异报告。就像LLM的快照测试。 4. 快速——使用Bun、Postgres、Redis、NATS构建。从追踪到警报的延迟低于500毫秒。单台机器可处理超过10,000条追踪/分钟。 我在寻找: - 对该方法的反馈(OTEL是否是合适的基础?) - 错误报告(在Mac/Linux/WSL2上测试过,但我相信还有问题) - 关于哪些功能最重要的想法(警报?重放?成本跟踪?) - 对语义评分器的帮助(目前使用Claude,想要使其可插拔) 为什么开源: 我希望这成为LLM可观察性的标准。只有在以下情况下才能实现: - 免费使用和修改(Apache 2.0) - 易于自托管(Docker Compose,无云依赖) - 欢迎贡献(标记有良好入门问题) 商业模式是为不想运行基础设施的团队提供托管服务。但核心产品是且将始终是免费的。 试试吧: - GitHub: https://github.com/use-lumina/Lumina - 文档: https://docs.uselumina.io - 快速入门:从`git clone`到仪表板只需5分钟 我很想听听您的想法!特别感兴趣的是: - 您在LLM中遇到的可观察性问题 - 使其对您有用的缺失功能 - 您正在使用的任何类似工具(以及它们做得更好的地方) 感谢您的阅读!
1作者: vvoruganti大约 22 小时前原帖
嗨,HN, 我是来自Plastic Labs的Vineeth。我们正在构建Honcho,一个用于有状态AI代理的开源内存库。 大多数内存系统只是向量搜索——存储事实、检索事实、将其放入上下文中。我们采取了不同的方法:将内存视为推理。(我们在博客中对此进行了大量讨论) 我们构建了Neuromancer,这是一个专门为AI原生内存训练的模型。与简单的事实提取不同,Neuromancer在对话中进行形式逻辑推理,以构建随时间演变的表示。它既便宜(每百万个token的摄取费用为2美元,检索无限制),又高效,并且达到了最新的技术水平:LongMem(90.4%)、LoCoMo(89.9%)和BEAM。在BEAM 10M上——超出了所有模型的上下文窗口——我们达到了0.409,而之前的最佳水平为0.266,每个查询使用了0.5%的上下文。 Github: [https://github.com/plastic-labs/honcho](https://github.com/plastic-labs/honcho) 评估: [https://evals.honcho.dev](https://evals.honcho.dev) Neuromancer模型卡: [https://plasticlabs.ai/neuromancer](https://plasticlabs.ai/neuromancer) 将内存视为推理的方法: [https://blog.plasticlabs.ai/blog/Memory-as-Reasoning](https://blog.plasticlabs.ai/blog/Memory-as-Reasoning) 了解我们最近更新的更多信息: [https://blog.plasticlabs.ai/blog/Honcho-3](https://blog.plasticlabs.ai/blog/Honcho-3) 欢迎提出有关架构、基准测试或代理内存模式的一般问题。