JevCode / 架构模式

架构模式

用 TypeSafe 构建系统的架构模式。学会以「离散的原子决策」来思考,是发挥它全部价值的关键。

内容来源: docs.typesafe.ai/patternspatternsarchitecture
架构模式总览示意图

核心理念

TypeSafe 被设计为嵌入到更大的系统之中,用它来做决策。关键技能是:以离散的、原子的决策来思考,再让这些决策组合出复杂的系统行为。

这意味着不要试图让一次调用解决一个复杂业务问题,而应该把它拆成若干个独立判断,再用你自己的代码把它们组合起来。代码里的组合逻辑是确定性的、可测试的、可调的——这正是可靠性的来源。

阅读本节前,请先理解问题原语置信度

四个模式

模式 做什么 收益
扇出并行 单次调用发送大量问题(包括推测性的),由代码决定哪些是相关的 成本、速度
置信度路由 把置信度作为第二决策轴,构建更安全的系统 可靠性、安全性
组合评分 把多个分析维度合并成单一分数 成本、可靠性、速度
意图路由 分类用户意图并路由到合适的处理器 成本、速度

它们如何配合

这四个模式不是互斥选项,而是可以叠加的构件。一个典型的生产系统会同时使用多个:

用户请求

   ├─ [意图路由] 先判定这是什么类型的请求 ──────────┐
   │                                                │
   ├─ [扇出并行] 一次性问出所有可能需要的判断 ──────┤
   │                                                │
   ├─ [组合评分] 对候选结果按多维度打分排序 ────────┤
   │                                                │
   └─ [置信度路由] 高置信度自动执行 / 低置信度转人工 ┘

意图路由通常在最前面,因为它决定了后续需要哪些处理链路。扇出并行贯穿始终,因为把问题打包进一次调用几乎没有额外延迟成本。组合评分在需要排序时使用。置信度路由是最后一道闸门,决定结果是自动执行还是升级给人。

设计原则

原子化拆分。 每个问题只问一件事。看起来「一次问完更省事」的复合问题,会让你无法判断模型在哪个部分出错,也无法单独调整。

代码负责组合,模型负责判断。 加权、阈值、分支逻辑都放在你的代码里。这些是你需要能读懂、能测试、能调参的部分。

让不确定性可见。 与其让模型强行给出一个答案,不如用置信度把「不确定」暴露到系统层面,由你的代码决定怎么处理。

相关