Skip to content

选型分析

选型原则:满足当前需求 + 预留演进空间(YAGNI + 可扩展)。

LLM 框架:Spring AI vs LangChain4j

维度Spring AILangChain4j
Spring 生态原生需手动桥接
结构化输出entity(Class) 一行搞定需自己解析
Function Calling@Tool 注解ToolSpecification
向量库统一 VectorStore 抽象API 分散

决策:Spring AI - 原生 autoconfig、entity(RootCauseAnalysis.class) 结构化输出、@Tool Function Calling。

向量库:PgVector vs Milvus vs ES

决策:PgVector - 簇规模万级够用。关键优势:周报要 JOIN 簇表和反馈表,PgVector 能在一个库做向量检索 + 关系 JOIN。

L1 缓存:Caffeine vs Redis

决策:Caffeine(MVP)-> Redis(生产) - 零依赖、微秒级命中。接口已抽象(FingerprintCache),切换成本低。

消息队列:Kafka vs Redis Stream vs 内存

决策:内存(MVP)-> Kafka(生产) - Kafka 代码就绪(@ConditionalOnProperty 默认关闭)。选 Kafka 因削峰能力更强 + 重放能力。

LLM 模型:DashScope vs DeepSeek vs OpenAI

决策:DashScope(默认) - OpenAI 兼容协议,可切换 DeepSeek 或 OpenAI。环境变量配置:DASHSCOPE_API_KEYLLM_BASE_URLLLM_CHAT_MODEL

技术栈总览

领域选型
框架Spring Boot 4.1 + Java 21
LLMSpring AI 2.0(OpenAI 兼容)
L1 缓存Caffeine(生产可换 Redis)
L2 向量PgVector(默认关闭)
消息队列Kafka(默认关闭)
弹性Resilience4j
度量Micrometer + Prometheus

基于 MIT License 发布。