找回密码
 会员注册
查看: 26|回复: 0

LangChain4j系列:带你入门LangChain4j框架

[复制链接]

10

主题

0

回帖

31

积分

新手上路

积分
31
发表于 2024-9-3 21:33:07 | 显示全部楼层 |阅读模式
本文所有示例均在langchain4j0.31.0版本之上进行,langchain4j也是在快速发展的阶段。LangChain4j框架是什么?LangChain4j于2023年初在ChatGPT的炒作中开始开发。思想来源于Python和JavaScriptLLM库,并加入创新思想,开发一款Java语言版本的LLMs库。LangChain4j的目标是简化Java应用程序集成LLMs所以LangChain4j就是一个通过抽象统一API、提供便捷可用的工具箱来简化Java应用程序集成LLMs的框架。统一的API:LangChain4j目前支持15+热门LLM提供商和15+嵌入商店。目前市面上存在多种大模型、嵌入模型。模型使用的接口并不统一,当接入时需要对其API细节进行了解。所以LangChain4j统一API,封装内部细节,无缝从一个模型替换为另外一个模型而无需修改代码。全面的工具箱:工具箱包括各种工具,从低级提示模板、聊天记忆管理和输出解析到高级模式,如AI服务和RAG。通过识别常见的抽象、模式和技术,LangChain4j已将这些提炼成一个现成的工具包。大量的示例:LangChain4j提供大量的使用示例,与Quarkus和SpringBoot的集成等。LangChain4j与SpringAI的宗旨基本一致,都是为简化Java应用快速接入LLMs而生,只是其各自侧重点、框架的能力有所不同而已。LangChain4j能干什么?集成了15+个语言大模型15+LLMproviders集成了15+个向量数据库15+embedding(vector)stores集成了10+个嵌入模型10+embeddingmodels集成了4个图片大模型4cloudandlocalimagegenerationmodels集成了2个评分重排名模型2scoring(re-ranking)models集成1个OpenAI审核模型支持文本和图像作为输入(多模态)更高层次的抽象AIServices支持提示词模板、持久性和内存中聊天记忆算法的实现:消息窗口和令牌窗口chatmemory支持同步/流式响应,支持常见Java类型和自定义POJO的输出解析器支持工具(函数调用)Tools(functioncalling),动态工具(执行动态生成LLM的代码)支持检索增强生成技术RAG(Retrieval-Augmented-Generation):数据导入/索引:从多个来源(文件系统、URL、GitHub、AzureBlob存储、AmazonS3等)导入各种类型的文档(TT、PDF、DOC、PPT、XLS等)。使用多种算法将文档拆分为更小的片段。对文档和片段进行后处理使用嵌入模型生成嵌入片段将嵌入保存到向量数据库(简单/高级)检索查询转换(扩展、压缩)「expansion,compression」查询路由「Routingofqueries」从向量存储或任何自定义源中检索重排名「Re-ranking」倒数排名融合「ReciprocalRankFusion」自定义RAG流程中的每个步骤支持文本分类用于标记化和估计标记计数的工具从LangChain4j这些特性来看,目前(2024/07/02)比SpringAI框架稍强。LangChain4j框架有什么?组件LangChain4j包含如下组件基础组件大语言模型提示词模板格式化解析上下文记忆RAG文档加载文档切分嵌入模型向量存储向量数据库ChainsAiServices高层次抽象模块类库LangChain4j采用模块化设计,包括:langchain4j-core模块,用于定义核心抽象。如ChatLanguageModel和EmbeddingStore及其API。langchain4j模块,包含有用的工具,如ChatMemory、OutputParser以及高级功能,如AiServices。langchain4j-{integration}模块,每个模块都提供与各种LLM提供商的集成,以及嵌入存储集成到LangChain4j中。也可以单独使用这些模块。langchain4j-spring-{integration}-spring-boot-starter模块,与Springboot项目集成,开箱即用。「目前支持的还不完善」。langchain4j-spring,从模块的划分看,langchain4j略微混乱,应该像SpringAI分别划分模块,如Models模块、Embeddings模块。API抽象层级在API抽象分为LowLevel和HighLevel两种;LowLevel:在这个级别上,您可以最自由地访问所有低级组件,例如ChatLanguageModel、UserMessage、AiMessage、EmbeddingStore等Embedding。我们称之为胶水代码,可以任何组合使用。HighLevel:在此级别,您可以使用高级API进行交互LLMs,例如AiServices,它向您隐藏了所有复杂性和样板。LangChain4j入门示例在集成OpenAI经测试出现问题,无法解析返回的json数据报错,已经提交了issue,所以暂时无法演示接入OpenAI了,那我们演示接入Ollama本地大模型qwen:7b。引入依赖pom复制代码dev.langchain4j${langchain4j.version}1234567yml配置yml复制代码langchain4jllama:chat-model:base-url:http://localhost:11434model-name:qwen:7b1234567代码实现java复制代码packageorg.ivy.controller;importdev.langchain4j.model.chat.ChatLanguageModel;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;@RequestMapping("/ll/")@RestControllerpublicclassChatController{privatefinalChatLanguageModelchatLanguageModel;publicChatController(ChatLanguageModelchatLanguageModel){this.chatLanguageModel=chatLanguageModel;}@GetMapping("chat")publicStringchat(Stringprompt){returnchatLanguageModel.generate(prompt);}}123456789101112131415161718192021222324在langchain4j0.31.0版本,提供Springboot集成的Starter仅支持OpenAI和Ollama两个。其它还是的使用传统的方式进行。验证效果代码示例Github示例代码:github.com/Fj-ivy/lang…源代码以及官方文档说明;Github地址官方文档总结说明对LangChain4j整体进行学习,总体感觉LangChain4j官方文档以及源码组织形式比SpringAI框架会混乱一些。一旦摸清门路,使用起来也是相当方便的。如何系统的去学习大模型LLM?作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。所有资料⚡️,朋友们如果有需要全套《LLM大模型入门+进阶学习资源包》,扫码获取~👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈​一、全套AGI大模型学习路线AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!二、640套AI大模型报告合集这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。三、AI大模型经典PDF籍随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。那以下这些PDF籍就是非常不错的学习资源。四、AI大模型商业化落地方案阶段1:AI大模型时代的基础理解目标:了解AI大模型的基本概念、发展历程和核心原理。内容:L1.1人工智能简述与大模型起源L1.2大模型与通用人工智能L1.3GPT模型的发展历程L1.4模型工程-L1.4.1知识大模型-L1.4.2生产大模型-L1.4.3模型工程方法论-L1.4.4模型工程实践L1.5GPT应用案例阶段2:AI大模型API应用开发工程目标:掌握AI大模型API的使用和开发,以及相关的编程技能。内容:L2.1API接口-L2.1.1OpenAIAPI接口-L2.1.2Python接口接入-L2.1.3BOT工具类框架-L2.1.4代码示例L2.2Prompt框架-L2.2.1什么是Prompt-L2.2.2Prompt框架应用现状-L2.2.3基于GPTAS的Prompt框架-L2.2.4Prompt框架与Thought-L2.2.5Prompt框架与提示词L2.3流水线工程-L2.3.1流水线工程的概念-L2.3.2流水线工程的优点-L2.3.3流水线工程的应用L2.4总结与展望阶段3:AI大模型应用架构实践目标:深入理解AI大模型的应用架构,并能够进行私有化部署。内容:L3.1Agent模型框架-L3.1.1Agent模型框架的设计理念-L3.1.2Agent模型框架的核心组件-L3.1.3Agent模型框架的实现细节L3.2MetaGPT-L3.2.1MetaGPT的基本概念-L3.2.2MetaGPT的工作原理-L3.2.3MetaGPT的应用场景L3.3ChatGLM-L3.3.1ChatGLM的特点-L3.3.2ChatGLM的开发环境-L3.3.3ChatGLM的使用示例L3.4LLAMA-L3.4.1LLAMA的特点-L3.4.2LLAMA的开发环境-L3.4.3LLAMA的使用示例L3.5其他大模型介绍阶段4:AI大模型私有化部署目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。内容:L4.1模型私有化部署概述L4.2模型私有化部署的关键技术L4.3模型私有化部署的实施步骤L4.4模型私有化部署的应用场景学习计划:阶段1:1-2个月,建立AI大模型的基础知识体系。阶段2:2-3个月,专注于API应用开发能力的提升。阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。阶段4:4-5个月,专注于高级模型的应用和部署。这份完整版的所有⚡️大模型LLM学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】全套《LLM大模型入门+进阶学习资源包》↓↓↓获取~👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈​
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-28 20:56 , Processed in 0.483505 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表