91 lines
5.4 KiB
Markdown
91 lines
5.4 KiB
Markdown
# 横评构建企业级 LLM 应用,主流的、开源框架
|
||
|
||
## 基础能力
|
||
|
||
| 对比项 | SAA| Spring AI | LangChain4J | LangChain |
|
||
|:-----|:-----|:-----|:-----|:-----|
|
||
| 语言 | Java | Java | Java | Python |
|
||
| 聊天模型 | ✅ | ✅ | ✅ | ✅ |
|
||
| 嵌入模型 | ✅ | ✅ | ✅ | ✅ |
|
||
| 图片、音视频模型 | ✅ | ✅ | ✅ | **百度千帆、百川智能支持多模态**<br/>**阿里百炼不支持多模态** |
|
||
| RAG | ✅ | ✅ | ✅ | ✅ |
|
||
| 向量数据库 | **除主流向量数据库外,还支持阿里云:<br/>AnalyticDB (ADB)、OpenSearch** | ✅ | ✅ | ✅ |
|
||
| MCP | **支持 Nacos MCP Registry** | ✅ | ✅ | ✅ |
|
||
| 函数调用 | ✅ | ✅ | ✅ | ✅ |
|
||
| 提示词模板 | **支持通过 Nacos 热更新,无需重启应用** | ✅ | ✅ | ✅ |
|
||
| 聊天记忆 | ✅ | ✅ | ✅ | ✅ |
|
||
| 模型评估 | ✅ | ✅ | ✅ | ✅ |
|
||
|
||
> 💡SAA 是 Spring AI Alibaba 的官方简称。**SAA 在对 MCP 工具、提示词模板的管理具有明显优势,尤其适合企业级 LLM 应用的构建。**
|
||
|
||
## 可观测性(OpenTelemetry)
|
||
|
||
**OpenTelemetry** 通常缩写为**OTel**,是一个开源的、厂商中立的可观测性框架,旨在实现遥测数据的标准化生成、收集和管理。遥测数据包括日志、指标和追踪,这些数据对于监控和理解软件系统的行为至关重要。
|
||
|
||
| Spring AI | SAA | LangChain4J | LangChain |
|
||
|:-----|:-----|:-----|:-----|
|
||
| ✅ | ✅ | ❌ | ✅ |
|
||
|
||
**Spring AI**框架定义了一系列endpoint,为其核心组件提供了指标和追踪能力,例如 ChatClient(包括 Advisor)、ChatModel、EmbeddingModel、ImageModel 和 VectorStore 等。**SAA**除了拥有**Spring AI**的能力,还提供了配套工具,无需额外编写代码,即可扇出至阿里云ARMS。**LangChain4J**提供了一系列**Listener**,通过 OTel 扇出数据,需要自行实现。**LangChain**自带**LangSmith**,并且支持了OTel,仅需少量代码即可扇出数据。
|
||
|
||
#### Spring AI 对于 ChatModel 仅适配了部分模型提供商,未提到的厂商,官方宣称将在未来支持。
|
||
|
||
| 阿里百炼 | 百度千帆 | 月之暗面 | 智谱 | Anthropic | OpenAI | Ollama | Xinference | GPUStack |
|
||
|:-----|:-----|:-----|:-----|:-----|:-----|:-----|:-----|:-----|
|
||
| ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
|
||
|
||
## 云计算平台模型提供商对开源框架的适配
|
||
|
||
| 对比项 | Open AI | Anthropic | 阿里百炼 | 百度千帆 |
|
||
|:-----|:-----|:-----|:-----|:-----|
|
||
| SAA | ✅ | ✅ | 深度适配 | ✅ |
|
||
| Spring AI | ✅ | ✅ | ✅ | ✅ |
|
||
| LangChain4J | ✅ | ✅ | ✅ | ✅ |
|
||
| LangChain | ✅ | ✅ | 部分适配 | ✅ |
|
||
|
||
> 💡阿里百炼对于**LangChain**仅通过 langchain-openai 适配了部分模型:聊天模型、嵌入模型、重排序模型,**不支持多模态模型**。
|
||
|
||
## 适合用于智能体开发的框架对比
|
||
|
||
#### LangGraph
|
||
|
||
- 开源协议:MIT
|
||
- 语言:Python
|
||
- 亮点:内置 Checkpoint 和中断、持久化机制,当智能体或多智能体在执行期间发生中断,恢复时可以从 Checkpoint 继续执行。适合通过**人工干预**保障执行过程的正确性,以及**长时间运行的任务**发生异常中断从 Checkpoint 恢复执行,而不必重新开始,这是
|
||
LangGraph 的独到之处
|
||
- 补充:官方的 LangGraph Platform 还提供了配套的 LangGraph Studio 用于开发智能体的 IDE,它支持可视化、交互和调试,还与 LangSmith 集成,以实现追踪、评估和提示工程。
|
||
|
||
> 💡LangGraph Platform 是**收费**的,适合企业部署的自托管版本仅支持 AWS。
|
||
|
||
#### Spring AI Alibaba Graph
|
||
|
||
- 开源协议:Apache 2.0
|
||
- 语言:Java
|
||
- 亮点:LangGraph 的核心能力都抄了
|
||
|
||
官方原话:Spring AI Alibaba Graph 是社区核心实现之一,也是整个框架在设计理念上区别于 Spring AI 只做底层原子抽象的地方,Spring AI Alibaba 期望帮助开发者更容易的构建智能体应用。基于 Graph 开发者可以构建工作流、多智能体应用。**Spring AI Alibaba Graph 在设计理念上借鉴 LangGraph,因此在一定程度上可以理解为是 Java 版的 LangGraph 实现**,社区在此基础上增加了大量预置 Node、简化了 State 定义过程等,让开发者更容易编写对等低代码平台的工作流、多智能体等。
|
||
|
||
#### AutoGen
|
||
|
||
- 开源协议:MIT
|
||
- 语言:Python、.NET
|
||
- 亮点:对话式
|
||
|
||
#### Crew AI
|
||
|
||
- 开源协议:MIT
|
||
- 语言:Python
|
||
|
||
|
||
## 参考来源
|
||
|
||
- SAA 官网:https://java2ai.com
|
||
- Spring AI 官网:https://docs.springframework.org.cn/spring-ai/reference/index.html
|
||
- LangChain4J 官网:https://docs.langchain4j.info/get-started
|
||
- LangChain 官网:https://python.langchain.ac.cn/docs/introduction
|
||
- 使用 OpenTelemetry 跟踪 LangChain:https://langsmith.langchain.ac.cn/observability/how_to_guides/trace_langchain_with_otel
|
||
- 使用 OpenTelemetry 客户端将记录到 LangSmith:https://langsmith.langchain.ac.cn/observability/how_to_guides/trace_with_opentelemetry
|
||
- Spring AI 可观测性:https://docs.springframework.org.cn/spring-ai/reference/observability/index.html
|
||
- Spring AI 官网对于聊天模型可观测性的支持说明:https://docs.springframework.org.cn/spring-ai/reference/observability/index.html#_chat_model
|
||
- 阿里百炼对于langchain的适配:https://help.aliyun.com/zh/model-studio/use-bailian-in-langchain
|
||
- 百度千帆对于langchain的适配:https://cloud.baidu.com/doc/qianfan-docs/s/Mm9cr5bs6 |