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

langchain4j 学习系列(8)-链式调用

接上节继续,langchain4j的名字中既然有个chain,自然要体现出链式调用的特性。根据官网的介绍,目前langchain4j内置了2个chain

image

 一、ConversationalChain示例

    @GetMapping(value = "/chat/chain", produces = MediaType.APPLICATION_JSON_VALUE)public ResponseEntity<String> chatChain(@RequestParam String query) {try {String responseText = ConversationalChain.builder().chatModel(ollamaChatModel).chatMemory(MessageWindowChatMemory.withMaxMessages(10)).build().execute(query);return ResponseEntity.ok(responseText);} catch (Exception e) {log.error("chatChain", e);return ResponseEntity.ok("{\"error\":\"chatChain error: " + e.getMessage() + "\"}");}}

这段代码把 设置模型、对话记忆、执行查询 一并处理了

 

二、 ConversationalRetrievalChain示例

    /*** 示例用测试文本data.txt向量化存储(按行分隔)* @return*/EmbeddingStore<TextSegment> getEmbeddingStore() {Resource resource = resourceLoader.getResource("classpath:data.txt");File file = null;try {file = resource.getFile();} catch (IOException e) {throw new RuntimeException(e);}String path = file.getAbsolutePath();EmbeddingStore<TextSegment> embeddingStore = new InMemoryEmbeddingStore<>();Document document = FileSystemDocumentLoader.loadDocument(path);DocumentByLineSplitter splitter = new DocumentByLineSplitter(100, 0);List<TextSegment> split = splitter.split(document);for (TextSegment textSegment : split) {Embedding embedding = ollamaEmbeddingModel.embed(textSegment).content();embeddingStore.add(embedding, textSegment);}return embeddingStore;}@GetMapping(value = "/rag/chain", produces = MediaType.APPLICATION_JSON_VALUE)public ResponseEntity<String> ragChain(@RequestParam String query) {try {String answer = ConversationalRetrievalChain.builder().chatModel(ollamaChatModel).contentRetriever(EmbeddingStoreContentRetriever.builder().embeddingModel(ollamaEmbeddingModel).embeddingStore(getEmbeddingStore()).maxResults(1).build()).chatMemory(MessageWindowChatMemory.withMaxMessages(10)).build().execute(query);return ResponseEntity.ok(answer);} catch (Exception e) {log.error("argChain", e);return ResponseEntity.ok("{\"error\":\"argChain error: " + e.getMessage() + "\"}");}}

与ConversationalChain相比,ConversationalRetrievalChain新增了RAG的链式处理。

 

文本示例完整代码:https://github.com/yjmyzz/langchain4j-study/tree/day08

参考:https://docs.langchain4j.dev/tutorials/ai-services

http://www.jsqmd.com/news/188809/

相关文章:

  • 学霸同款2025 AI论文平台TOP9:MBA毕业论文全攻略
  • 174_尚硅谷_map三种用法和应用实例
  • 吐血推荐10个AI论文网站,专科生轻松搞定毕业论文!
  • Linux内核进程管理子系统有什么第九十一回 —— 进程调度(18)
  • 主流的消息队列MQ比较,详解MQ的4类应用场景(上)
  • ClickHouse_实战指南 - 教程
  • WPF之配方模块
  • 1.14 数据分析价值如何体现?用数据驱动业务增长的3个关键点
  • WPF之调试Halcon引擎
  • AI大模型入门到实战系列完整目录
  • 不容错过的关键!AI应用架构师构建AI伦理治理框架,迈向负责任AI的关键节点
  • Installer Projects的安装
  • 9款AI学术写作工具深度评测:从开题到论文全程高效辅助
  • 1.15 指标异常波动分析实战:日活下跌50%?5步定位问题根源
  • Python爬虫基础入门:requests+BeautifulSoup完整实战教程(新手易懂)
  • 2026年知名的阻氧型铝合金衬塑复合管直销厂家怎么选,PPR铝合金衬塑复合管、铝合金衬PB复合管源头厂家推荐 - 品牌推荐师
  • 【毕业设计】基于机器学习Yolo3教学辅助系统的开发(学生考试监考系统)
  • 【课程设计/毕业设计】基于Yolo3机器学习教学辅助系统的开发(学生考试监考系统)
  • 人工智能交叉学科创新选题:7个技术前沿领域的深度研究与展望
  • 2026年国内好用的铝合金衬塑复合管制造企业推荐排行榜单,阻氧型铝合金衬塑复合管,铝合金衬塑复合管制造企业哪家强 - 品牌推荐师
  • 部分纸笔谜题规则译文
  • 地图数据下载器地图瓦片下载软件
  • 从自然语言处理到计算机视觉:7个AI核心技术的论文选题指南
  • 市场上比较好的阻氧型铝合金衬塑复合管制造商哪家权威,铝合金衬塑复合管、PERT铝合金衬塑复合管直销厂家哪家强 - 品牌推荐师
  • 离线路径规划
  • QOJ #8240. Card Game
  • 2026年国内知名的铝合金衬塑复合管厂家推荐榜单,PERT铝合金衬塑复合管、PPR铝合金衬塑复合管订做厂家推荐 - 品牌推荐师
  • 2026年市场评价高的铝合金衬PB复合管公司推荐,铝合金衬塑复合管、PERT铝合金衬塑复合管公司排行榜 - 品牌推荐师
  • No.1059 基于S7-1200 PLC博图和组态王升降横移立体库7车位3x3 带解释的梯形...
  • 【毕业设计】使用 CNN 进行森林火灾检测机器学习