当前位置: 首页 > news >正文

C#/.NET/.NET Core技术前沿周刊 | 第 期(年.-.)

挡纠诤掌一、功能对比

LangChain4j 和 Solon AI 的功能是比较类似的,甚至两者可以配合使用,例如使用 Solon AI 实现 MCP 服务器端,再使用 LangChain4j 实现 MCP 客户端调用 Solon AI,二者可以无缝对接。而且,都可以嵌入到任何第三方框架中使用。那二者的区别是啥呢?

接口或体验 LangChain4j Solon AI

LLM 接口 有 有

LLM 体验 复杂 简单

RAG 接口 有 有

RAG 体验 复杂 简单

MCP 接口 有 有

MCP 体验 复杂 简单

总体来说,LangChain4j 提供的功能更多,尤其是 RAG 方面,提供了更丰富的适配。

二、使用和学习成本

LangChain4j 的使用和学习成本比 Solon AI 高很多,举个例子,例如 Solon AI 要实现流式对话,只需要一行代码就搞定了:

@Produces("text/event-stream")

@Mapping("/streamChat")

public Flux streamChat(String msg) {

return Flux.from(chatModel.stream(msg).map(resp -> resp.getContent()));

}

而 LangChain4j 实现步骤如下:

添加 langchain4j-reactor 依赖。

设置配置文件,配置 streaming-chat-model api-key 和 model-name。

创建 AI Service 并返回 Flux 对象。

调用 Ai Service 才能实现流式输出。

类似的场景还有很多,例如 Solon AI 实现 MCP Client 只需要添加依赖,然后:

一行就构建 mcp 客户端

一行 defaultToolsAdd 或 toolsAdd 设置就可以实现了与 llm 的整合

如下代码:

McpClientProvider mcpTools = McpClientProvider.builder()

.channel(McpChannel.STREAMABLE)

.apiUrl("http://localhost:8080/mcp")

.build();

ChatModel chatModel = ChatModel.of("http://127.0.0.1:11434/api/chat") //使用完整地址(而不是 api_base)

.provider("ollama")

.model("llama3.2")

.defaultToolsAdd(mcpTools)

.build();

但 LangChain4j 的实现就非常复杂了,除了添加依赖之后,你还需要:

创建传输协议 McpTransport。

创建 MCP 客户端 McpClient。

创建 Tools(提供者)对象 ToolProvider。

构建 AiService。

执行 MCP Server 调用。

具体实现代码如下:

@Mapping("/chat")

public String chat(String question) {

// 1.创建传输协议

McpTransport transport = new HttpMcpTransport.Builder()

.sseUrl("http://localhost:8686/sse")

.logRequests(true) // if you want to see the traffic in the log

.logResponses(true)

.build();

// 2.创建 MCP 客户端

McpClient mcpClient = new DefaultMcpClient.Builder()

.transport(transport)

.build();

// 3.创建 Tools(提供者)对象

ToolProvider toolProvider = McpToolProvider.builder()

.mcpClients(List.of(mcpClient))

.build();

// 4.构建 AiService

ToolsAiService aiService = AiServices.builder(ToolsAiService.class)

.chatLanguageModel(chatModel)

.toolProvider(toolProvider)

.build();

// 5.调用 MCP Server

return aiService.chat(question);

}

除了 LangChain4j 的使用复杂之外,源代码量很大,LangChain4j 的文档也不全,要么是没有关键实现代码案例、要么是干脆文档写的都是错的,LangChain4j 的坑比较多,最后只能通过看最新的源码才能解决和使用相关功能,所以 LangChain4j 学习和使用成本是非常高的。

三、小结

如果是简单功能、开发周期又紧可以使用 Solon AI;如果功能复杂,且定制型要求比较多,可以使用功能和灵活度更高的 LangChain4j。但使用 LangChain4j 这就意味着你需要忍受 LangChain4j 不够简洁的写法,以及学习和使用成本比较高的问题。

http://www.dtcms.com/a/594298.html

相关文章:

  • 手机网站标准自助建站系统哪个好用
  • 科技赋能文博传播 众趣科技引领数字博物馆虚拟展厅新生态
  • 科技驱动服务升级 榕树钱小乐的创新发展之路
  • 如何系统提升英文科技文献阅读能力:方法、工具与 30 天训练计划
  • 网站开发费用摊销时间深圳 网站公司
  • 网站建设案例方案做ppt卖给网站
  • 银行App关停潮下的物联网破局:从“数量冗余“到“智慧集约“
  • 文献分享日报15
  • 为什么最近好多网站维护南通市网站
  • 西亚网站建设科技江西省建设监理协会网站
  • kubernetes的包的管理--helm
  • opencv 学习: 06 使用指针遍历像素,以均匀颜色量化为例
  • 网站改版 被百度k网页设计素材 旅游
  • C++ 设计模式《智能任务助手上线,小明用上了解释器》
  • 小型企业建设网站陕西网站建设公司找哪家
  • Rust编译时计算:`const` 函数、泛型与高级类型体操
  • 从零开始理解和编写LLM中的KV缓存
  • 做离线版申报表进入哪个网站广告设计专业术语
  • 做网站维护要学些什么·咋做网站代码背景图
  • zustand解决的痛点以及zustand状态管理与C++全局变量的区别对比
  • 介绍自己做的网站室内设计奖项有哪些
  • 基于Zigbee协议的分布式漏水检测系统设计与实
  • 网站建设中怎么设置默认页小小影院 电视剧免费
  • 蓝牙钥匙 第73次 蓝牙与蜂窝网络:技术特性与互补优势
  • 公司网站模块制作国内男女直接做的视频网站
  • 嵌入式系统外接看门狗配置注意事项
  • 2025-Agent解析
  • 网站 域名解析出错中企动力苏州网页设计
  • 网站怎么做网页河南网站平台建设公司
  • 3.注册页测试用例