W1D7 学习手册 1.周回顾2.网关v13.Adapter4.Prompt5.决策树 6.YOYO7.Java8.Java角色9.资源10.准备 达标①达标②自测速记

FDE W1D7 学习手册 · 整合与面试准备(W1 收尾)

W1 Day7 · 整合周 · 4h · 学完能把 W1 全部产出串成"轻量模型网关",并讲清 Java 恢复计划与 AI 项目里 Java 的角色

本日定位:W1 最后一天,把前面零散的产出(W1D3 选型、W1D4 Adapter、D6 本地模型体验)整合为一个能讲清楚的故事线——"轻量模型网关 v1"。同时启动 Java 技术栈恢复,为 AI 工程岗里 Java 的硬角色做准备。
学完能回答:① W1 的整体产出如何串成"轻量模型网关",各天贡献了什么;② Java 恢复计划是什么、Java 在 AI 项目里到底扮演什么角色(不是"调 API 的胶水")。
使用方法:先读 s1 周回顾建立全貌 → 重点读 s2 网关架构与两条达标线 → 结合 YOYO 项目写复盘初稿 → 做 Java 恢复练习 → 做自测清单 → 配合《FDE-W1D7-评测题.md》。选中不熟的词可标注(左下★重要 / 右下📌待查)。

一、W1 整体回顾与产出盘点

主题核心产出(可讲的故事点)
D1模型与 Token 基础懂 token 计费、上下文窗口、模型能力边界
D2采样参数与结构化输出Temperature/TopP/TopK、JSON Schema、校验重试
D3模型选型决策选型维度(效果/成本/延迟/合规)、决策树雏形
D4Adapter 模式统一不同模型 API 的适配层,屏蔽差异
D5评测体系(推测)如何量化模型好坏、对比实验规范
D6本地模型体验Ollama + 量化(int4/int8/fp16)、本地 vs API 权衡
D7整合与面试准备网关 v1、Prompt 管理、选型决策树、Java 恢复
一条故事线:W1 不是 7 个孤立知识点,而是逐步搭起一个"轻量模型网关"——D3 决定"用哪个模型"、D4 决定"怎么统一接模型"、D6 决定"哪些跑本地"、D7 把它们编排成网关 + 配 Prompt 管理 + 选型决策树。
W1 的主线是从"会调一个模型"走向"能管理一批模型":选型(D3)定策略、Adapter(D4)做接入、本地体验(D6)扩边界、整合(D7)成网关。所有产出都能映射到网关的一个模块,这就是面试时能串起来的叙事。

二、轻量模型网关 v1 架构(整合 W1D4 Adapter)

2.1 网关解决什么问题

业务代码不应直接耦合某家模型 API。网关是介于业务与模型之间的一层:统一接口、统一鉴权、统一重试/降级、并做模型路由——根据请求特征把流量分给本地模型或 API 大模型。

2.2 模块划分

业务层 → 网关 v1 → [Prompt 管理] → [路由决策(D3 决策树)] → [Adapter 层(D4,统一各模型接口)] → [本地模型(Ollama, D6)/ 远程 API] → [重试 / 降级 / 观测]

2.3 为什么叫"轻量"

v1 不追求 K8s + 多副本 + 限流网关的完整能力,而是一个进程内/单服务的轻量编排:足以在面试里讲清"我怎么统一管理多模型",也为后续接 vLLM、Spring Boot(见 s7)留扩展点。

网关是 FDE 把"零散模型调用"工程化的关键一跃:业务只认网关接口,模型无论本地/远程、哪家、什么参数都藏在 Adapter 后。它带来的价值是——切换模型零改业务、统一可观测、按场景路由省成本。这是 Day4 Adapter 的用武之地。
网关 v1 = 业务与模型之间的一层:统一接口 + 模型路由 + 重试降级 + 可观测。它把 D3 选型、D4 Adapter、D6 本地模型全编排进去。业务只认网关,换模型不碰业务代码。
① 别把"网关"说成"又包了一层 HTTP"——它核心价值是路由 + 统一抽象 + 可观测,不是简单转发。② v1 可以很轻,但要讲清"后续怎么长成生产网关"(接 vLLM、限流、多租户),否则显得没规划。③ Adapter 是网关的"接入底座",别在讲网关时忘了 D4 的 Adapter 是它的一部分。

三、Adapter 模式回顾(W1D4 整合)

3.1 模式本质

Adapter(适配器)把不同模型的异构接口(请求格式、响应结构、错误码)统一成一个内部标准接口,让上层(网关/业务)无感知地调用任意模型。

// 内部统一接口
interface ModelAdapter {
  ModelResponse complete(ModelRequest req);
}
// 各家实现
class OllamaAdapter implements ModelAdapter { ... }   // 本地
class ApiVendorAAdapter implements ModelAdapter { ... } // 远程

3.2 在网关里的位置

Adapter 在网关里是"接入底座":把 Ollama 和各家 API 的差异(参数名、返回结构、错误码)统一成内部接口。新增模型只加一个实现类,业务代码一行不改——这就是开闭原则。
① Adapter 不是"把请求转成 JSON 发出去"就完事,还要归一化响应和错误(如把各家的 429/限流统一成网关的限流异常)。② 别在 Adapter 里写业务路由逻辑,那是网关/决策树的职责,分层要清晰。

四、Prompt 模板管理代码

4.1 为什么要管理

Prompt 散落在代码里会无法版本化、无法 A/B、无法复用。管理模板 = 把 Prompt 当"代码资产":集中存储、变量占位、版本号、可按场景加载。

4.2 模板结构与加载

// 模板(存文件 / 配置中心,带版本)
// claim_review_v1.tmpl
// 你是保险理赔初审助手。根据以下特药条款与理赔材料,判断是否符合:
// 条款:{clause}
// 材料:{material}
// 输出 JSON:{{"result":"pass|reject|need_review","reason":""}}

class PromptTemplate {
  load(name, version) { ... }            // 按名+版本取
  render(vars) { return tmpl.replace(/{(\w+)}/g, (_,k)=>vars[k]); }
}
// 网关调用:prompt = templates.load("claim_review","v1").render({clause, material});

4.3 管理要点

Prompt 管理是"把 Prompt 当可维护资产"。工程收益:① 版本可追溯、可回滚;② 多场景复用同一模板骨架;③ 改 Prompt 不影响业务代码,且能 A/B 对比。这在有几十个业务 Prompt 的保险系统里尤其重要。
Prompt 模板管理 = 集中存储 + 变量占位 + 版本号。核心是"Prompt 当代码资产":可版本化、可回滚、可 A/B、改 Prompt 不碰业务代码。模板一变就要重跑评测防退化。
① 别用字符串拼接塞变量(易注入、易错格式),用占位符 + 转义。② 模板变更后必须重跑评测,否则"悄悄变差"没人知道。③ 模板版本和模型版本最好一起管,不同模型可能对同一模板响应不同。

五、模型选型决策树(整合 W1D3)

5.1 决策树( interview 可直接画)

请求进来 → 数据是否敏感/需不出域? ├ 是 → 本地模型(Ollama, int8)→ 复杂推理? → 是则本地+API复核 └ 否 → 看调用量与成本: ├ 量大+简单 → 本地(省成本) ├ 量小+复杂/长上下文 → API 大模型 └ 混合 → 网关路由:简单本地 / 复杂 API

5.2 决策维度(来自 D3)

维度倾向本地倾向 API
数据合规敏感/不出域可上云
调用量级大、高频小、低频
任务复杂度抽取/分类/匹配复杂推理/长上下文
延迟要求不敏感要快
运维能力有 GPU/内网无运维团队
选型决策树从"数据是否敏感"开始分叉:敏感→本地;否则看量/复杂度/延迟/运维。核心价值不是背结论,而是展示"我能用一个结构化框架做模型选型决策",这正是 FDE 的活儿。

六、YOYO 项目技术复盘初稿

6.1 复盘结构(STAR + 技术维度)

6.2 与 W1 的衔接

把 YOYO 里"模型调用散落、换模型要改多处、Prompt 无版本"的痛点,对应到 W1 的网关 v1 + Adapter + Prompt 管理,作为"为什么我要做这套东西"的真实故事。面试官爱听"从真实项目痛点长出来的方案"。
YOYO 复盘按 STAR + 技术维度写,重点把项目里的真实痛点(模型调用散落、无 Prompt 版本)映射到 W1 的网关/Adapter/Prompt 管理,让方案"有出处"而不是凭空设计。

七、Java 恢复计划(2h:Spring Boot 骨架 / REST API / 依赖注入)

7.1 为什么 FDE 还要 Java

保险业核心系统(保单、理赔、账务)绝大多数是 Java 技术栈。AI 能力要嵌入现有 Java 系统,而不是另起炉灶。FDE 的 Java 角色是把模型网关作为微服务/模块落进 Spring Boot 体系。

7.2 三件套练习目标

内容要能做到和网关的关系
Spring Boot 骨架用 start.spring.io 起项目、配依赖、能跑起来网关 v1 跑在 Spring Boot 里
REST API写 @RestController 暴露 POST /v1/chat网关对外接口
依赖注入用 @Service/@Component + @Autowired 注入 Adapter路由/Adapter 由容器管理

7.3 最小骨架

@SpringBootApplication
public class GatewayApplication { public static void main(String[] a){ SpringApplication.run(GatewayApplication.class,a);} }

@RestController
@RequestMapping("/v1")
public class ChatController {
  @Autowired private ModelRouter router;          // 依赖注入
  @PostMapping("/chat")
  public ModelResponse chat(@RequestBody ChatReq req){
    return router.route(req);                      // 交给路由
  }
}
@Service
public class ModelRouter {
  @Autowired private List adapters;  // 所有 Adapter 注入
  public ModelResponse route(ChatReq req){ ... }
}
Java 恢复不是"重温语法",而是确认"我能把 W1 的网关用 Spring Boot 落地成可部署服务"。REST API 是网关对外的门面,依赖注入让 Adapter/路由可被容器管理、易测试、易替换——这正是 D4 开闭原则在 Java 里的落地。
Java 恢复三件套:Spring Boot 骨架(起项目)、REST API(@RestController 暴露网关接口)、依赖注入(@Autowired 把 Adapter/路由交给容器管理)。目标是确认"我能把 W1 网关用 Java 落地成服务"。
① 别把 Java 恢复当成"背概念",要真跑一个能启动的 Spring Boot 项目,面试官一问"你网关怎么部署"就能答"Spring Boot 服务 + 容器化"。② 依赖注入别说成"new 对象",要说清它带来的解耦/可测/可替换价值。③ 别忽视 Java 在保险业是存量主力,AI 是嵌入而非替代,这点姿态要摆对。

八、Java 在 AI 项目中的角色

8.1 不是"胶水",是"承载系统"

角色说明
系统承载保险核心业务在 Java,AI 能力作为模块嵌入,不是 Python 另立山头
网关/服务化模型网关用 Spring Boot 暴露 REST,纳入现有微服务治理
编排与集成用 Java 调用模型 API、串接理赔流程、落库、对接消息队列
工程化底座事务、权限、日志、监控、限流——AI 要借 Java 的成熟基建

8.2 Python 与 Java 的分工

Java 在 AI 项目里不是"调 API 的胶水",而是"承载系统"——保险核心在 Java,AI 作为模块嵌入;网关用 Spring Boot 服务化、纳入微服务治理;工程化底座(事务/权限/监控)借 Java 成熟基建。我的差异化优势正是"模型 + Java 落地"。

九、学习资源(中文、非 OpenAI)

Spring AI 与 W1 的映射:Spring AI 的 ChatClient ≈ 我们的 Adapter 抽象,PromptTemplate ≈ s4 的模板管理,ChatModel 的可切换实现 ≈ D4 的多 Adapter。学 Spring AI 是把 W1 概念落到 Java 生态的捷径。

十、面试准备清单(W1 闭环)

十一、面试达标线①:W1 产出如何串成"轻量模型网关"

D3 选型(定策略)→ D4 Adapter(做接入)→ D6 本地模型(扩边界)→ D7 编排成网关 v1 网关 v1 = Prompt管理 + 路由决策 + Adapter层 + 本地/远程模型 + 重试降级 + 可观测
产出在网关里的角色
D3 选型维度路由决策树的依据
D4 Adapter接入底座,屏蔽模型差异
D6 本地模型路由的一个目标(敏感/高频走本地)
D7 整合把上述编排成统一网关 + Prompt 管理
核心一句话:W1 不是零散知识点,而是逐步搭起"轻量模型网关"——D3 定策略、D4 做接入、D6 扩边界、D7 编排成网关。所有天的产出都能映射到网关的一个模块,这就是面试能串起来的叙事。

十二、面试达标线②:Java 恢复计划与 AI 项目里 Java 的角色

Java 角色 = 系统承载(保险核心在 Java)+ 网关服务化(Spring Boot REST)+ 编排集成 + 工程化底座 恢复计划 = Spring Boot 骨架 → REST API → 依赖注入(2h 实操,能跑起来)
讲 Java 要两手都硬:① 恢复计划具体(2h 跑起 Spring Boot 三件套,网关能部署);② 角色定位准确(承载系统而非胶水,AI 嵌入存量 Java)。我的竞争力是"既懂模型、又能在 Java 生产系统落地",这是纯算法岗没有的。

十三、Day 7 自测清单

十四、高频面试题速记卡

Q:W1 七天是怎么串起来的?
主线:调一个模型→管一批模型。D3 选型定策略、D4 Adapter 做接入、D6 本地扩边界、D7 编排成网关 v1。
Q:轻量模型网关 v1 有哪些模块?
Prompt 管理 + 路由决策(D3 树)+ Adapter 层(D4)+ 本地/远程模型(D6)+ 重试降级 + 可观测。
Q:Adapter 在网关里干什么?
接入底座:把 Ollama 和各家 API 的差异(参数/响应/错误码)统一成内部接口;新增模型只加实现类,业务零改(开闭原则)。
Q:Prompt 为什么要管理?
当代码资产:集中存储、变量占位、版本化、可回滚、可 A/B;改 Prompt 不碰业务,且变更后必须重跑评测防退化。
Q:选型决策树从哪开始分叉?
先问"数据是否敏感/不出域":敏感→本地;否则看量/复杂度/延迟/运维,混合则网关路由(简单本地/复杂 API)。
Q:Java 在 AI 项目里是什么角色?
不是胶水,是承载系统:保险核心在 Java,AI 作模块嵌入;网关用 Spring Boot 服务化;借 Java 成熟基建做工程化。
Q:Java 恢复三件套是啥?
Spring Boot 骨架(起项目)、REST API(@RestController 暴露 /v1/chat)、依赖注入(@Autowired 管 Adapter/路由)。
Q:为什么 FDE 还要 Java?
保险核心系统多为 Java,AI 要嵌入存量系统而非另起炉灶;"模型理解+Java 落地"是纯算法岗没有的差异化优势。
Q:Spring AI 和 W1 怎么对应?
ChatClient≈Adapter 抽象,PromptTemplate≈模板管理,ChatModel 可切换实现≈D4 多 Adapter。学它把 W1 概念落 Java 生态。
Q:YOYO 复盘怎么写?
STAR+技术维度:背景/任务/行动/结果+复盘;把项目痛点(调用散落、无 Prompt 版本)映射到网关/Adapter/Prompt 管理,让方案有出处。
FDE W1D7 学习手册 · 整合与面试准备(W1 收尾)(面试级)· 配合《FDE-W1D7-评测题.md》自测
📌 待查★ 重要