Skip to content

第 1 篇 · 1.1 为什么要这样读 Langfuse

学习目标

完成本节后,你将能够:

  1. 解释为什么 Langfuse 不是一个普通 Next.js 项目。
  2. 用“数据平台”视角理解 webworkershared 的关系。
  3. 明白为什么本书反复强调契约和运行链路。

1.1.1 核心论点:Langfuse 是 LLM telemetry 数据平台

Langfuse 的产品入口是 Web UI,但工程形态是一个多入口、多存储、多队列的数据平台。它同时处理:

  • 用户在 UI 中查询、筛选、标注和配置;
  • SDK 和 Public API 上报 trace、observation、score、dataset;
  • OTel 数据进入 ingestion 管道;
  • worker 异步执行 eval、导出、删除、数据保留、webhook;
  • ClickHouse 承担高吞吐分析查询;
  • Postgres 承担组织、项目、权限、配置等事务型数据。

所以读它不能只看页面。更好的路线是先问:

这段代码属于同步请求、异步任务、共享契约,还是数据设施?

1.1.2 机场运行系统类比

机场系统Langfuse 模块一句话职责
值机柜台web/ API 入口接收请求、鉴权、校验、限流
调度中心packages/shared定义规则、模型、队列、查询契约
行李分拣worker/异步处理重任务和可重试任务
航班历史库ClickHouse存宽事件和分析数据
会员系统PostgreSQL存组织、项目、权限、配置
临时传送带Redis/BullMQ队列、限流、缓存、锁
大件仓库S3/Blob原始事件、媒体、导出文件

关键直觉:前台入口不能自己发明规则,后台处理器不能猜 payload,所有稳定规则都应该沉到 shared。

1.1.3 本篇后续