系列文章目录
第一篇 AI 数据治理:LangChain4J 文本分类器在字段对标中的高级玩法
第二篇 LangChain4J + OpenTelemetry:AI 调用全链路可观测方案
第三篇 企业级 Neo4j GraphRAG:向量检索 + 图谱扩散怎么融合?Neo4j GraphRAG 给你答案
第四篇 多模型路由 + Resilience4j 熔断降级,Java 大模型服务的降级与兜底体系
第五篇「企业级智能体」LangChain4j Multi-Agent:角色分离 + 协同编排实战
第六篇 LangChain4j + MCP:从工具协议到生产级 Agent
第七篇 企业级 Prompt 管理中心:实验分流 + 曝光埋点 + 可回溯,版本化/AB/DSL/可观测全齐
文章目录
- 系列文章目录
- 前言:为什么企业需要 Prompt 管理中心?
- 一、整体架构与数据模型
- 1.1 整体链路(从请求到答案)
- 1.2 四张核心表
- 二、代码实践
- 2.1 启动类
- 2.2 配置层:LangChain4J + MyBatis-Plus
- 2.2.1 OpenAI 配置属性
- 2.2.2 LangChain4J ChatModel Bean
- 2.2.3 MyBatis-Plus 自动填充 createdAt/updatedAt
- 2.3 DTO:对外 API 入参出参
- 2.4 实体与 Mapper(MyBatis-Plus)
- 2.4.1 实体:PromptTemplateDO
- 2.4.2 实体:ExperimentDO / VariantDO / ExposureDO
- 2.4.3 Mapper
- 2.5 核心服务:版本化 / 实验分流 / DSL / 曝光埋点 / 调用模型
- 2.5.1 Prompt 版本化服务
- 2.5.2 Prompt DSL:Mustache 渲染器
- 2.5.3 AB 实验:一致性分桶
- 2.5.4 人群圈选(SpEL)
- 2.5.5 实验解析服务(ExperimentService)
- 2.5.6 实验管理(创建/启动/暂停/结束)
- 2.5.7 曝光埋点服务(ExposureService)
- 2.5.8 PromptResolver:实验命中 → 取版本 → DSL 渲染 → 返回
- 2.5.9 LangChainChatService:曝光埋点 + 调用模型
- 2.6 Controller:对外接口(管理端 + 对话端)
- 2.6.1 ChatController
- 2.6.2 PromptAdminController
- 2.6.3 ExperimentAdminController
- 2.7 application.properties(MySQL + Flyway + 运行配置)
- 2.8 建表脚本(V1__init.sql)
- 2.9 pom依赖
- 2.10 完整功能测试:curl 一把跑通(实验分流 + 曝光埋点)
- 总结
前言:为什么企业需要 Prompt 管理中心?
很多团队把大模型接入做成一个 ChatController -> ChatModel 就上线了,但运行一段时间很快会遇到三类问题:
- Prompt 无法版本化:一改 Prompt 就“线上回答风格突变”,无法回滚,也无法对比效果
- 无法做 AB Test:不知道新 Prompt 到底是提升还是变差,只能拍脑袋上线
- Prompt 维护成本高:大量 Prompt 分散在代码里/配置里,无法统一管理、审核、发布、统计
企业级落地的核心不是“能调用模型”,而是:让 Prompt 可治理、可灰度、可回溯、可评估。
这篇文章给你一套可运行的工程化方案:
✅ Prompt 版本化 + 发布(ACTIVE/ARCHIVED)
✅ 实验分流(权重 0~10000)+ 人群圈选(SpEL)
✅ Prompt DSL(Mustache)渲染
✅ 曝光记录落库(requestId 级追踪)
✅ LangChain4J 统一对话入口
一、整体架构与数据模型
1.1 整体链路(从请求到答案)
用户请求 /api/chat ↓ PromptResolver.