LangChain4j支持的API类型

SpringBoot整合LangChain4J 本文围绕LangChain4J展开,介绍其使用阿里百炼大模型的前置准备,包括开通服务、获取API - KEY等。还介绍了快速开始步骤,如导入依赖、编写代码。在SpringBoot整合方面,给出依赖、自动配置和使用示例。对于流式调用,说明了配置和实现方法。此外,讲解了模型记忆的实现,包括记忆过程、实现记忆、记忆隔离和自定义记忆载体。最后介绍工具使用,从快速开始到再次优化,以及提示词参数的设置方法。 阅读详情

本文描述了底层的大语言模型(LLM)API。高级的LLM API参见AI服务。

1 LLM API的类型

1.1 LanguageModel

非常简单—,接受一个String作为输入,并返回一个String作为输出。

该API现正逐渐被聊天API(第二种API类型)取代。

1.2 ChatLanguageModel

这种API接受一或多个ChatMessage作为输入,并返回一个AiMessage作为输出。 ChatMessage通常包含文本,但有些LLM还支持混合文本和Image的输入。如OpenAI的gpt-4o-mini和Google的gemini-1.5-pro都属于这种。

LangChain4j中,将不再扩展对LanguageModel的支持,因此所有新功能采用ChatLanguageModel API。

ChatLanguageModel是LangChain4j中的底层API,提供了最大的功能和灵活性。还有高级API(如Chain和AiServices)。

除了ChatLanguageModel和LanguageModel,LangChain4j还支持以下类型的模型:

  • EmbeddingModel:可将文本转换为Embedding
  • ImageModel:可生成和编辑Image。
  • ModerationModel:可检查文本中是否包含有害内容。
  • ScoringModel:可根据查询对多段文本进行评分(或排名),以确定每段文本与查询的相关性。这在RAG(检索增强生成)中非常有用。

2 ChatLanguageModel API

public interface ChatLanguageModel {

    String generate(String userMessage);
    
    ...
}

generate接受一个String作为输入并返回一个String作为输出,类似LanguageModel。这是一个便捷方法,可快速使用它,无需将String包装在UserMessage中。

但这才是实际的聊天API:

...

Response<AiMessage> generate(ChatMessage... messages);

Response<AiMessage> generate(List<ChatMessage> messages);

...

这些generate接受一或多个ChatMessage作为输入。ChatMessage是一个表示聊天消息的基础接口。

3 ChatMessage的类型

目前有四种聊天消息类型,每种消息对应不同的“来源”:

  • UserMessage:这是来自用户的消息。用户可以是您的应用程序的最终用户(人类)或应用程序本身。
    根据LLM支持的模态,UserMessage可以包含仅文本(String)或文本和/或图像(Image)。
  • AiMessage:AI生成的消息,通常是对UserMessage的响应。 如你所见,generate返回一个包含在Response中的AiMessage。 AiMessage可包含文本响应(String)或请求执行工具(ToolExecutionRequest)。
  • ToolExecutionResultMessage:ToolExecutionRequest的结果
  • SystemMessage:系统的消息。通常,作为开发者应定义此消息的内容。可在此编写关于LLM在对话中的角色、应如何表现、以何种风格回答等指令。 LLM被训练得更关注SystemMessage,因此要小心,最好不要让最终用户随意定义或注入一些输入到SystemMessage中。 它通常位于对话的开始。

如何在对话中组合它们?

最简单的场景,可在generate方法中提供一个UserMessage实例。 这与第一个版本的generate方法类似,它接受一个String作为输入。 主要区别在于它现在返回的不是String,而是Response<AiMessage>。

Response是一个包装了内容(负载)的对象,经常看到它作为*Model类的返回类型。 除了内容(在这种情况下是AiMessage),Response还包含生成的元信息:

  • TokenUsage,统计了输入(提供给generate方法的所有ChatMessage)中包含的token数及输出(AiMessage)中生成的token数,并给出总数(输入 + 输出)。需要这些信息来计算每次调用LLM的成本
  • FinishReason,枚举类型,表示生成停止的各种原因。通常,如果LLM自行决定停止生成,则原因会是FinishReason.STOP

创建UserMessage

有多种方式,取决于内容。最简单的new UserMessage(“Hi”)或UserMessage.from(“Hi”)`。

4 多个ChatMessage

为啥要提供多个ChatMessage作为输入,而不仅是一个? 因为LLM本质上是无状态的,这意味着它们不会维护对话的状态。 因此,如果你想支持多轮对话,则需要自己管理对话的状态。

假设想构建一个聊天机器人。想象一下用户和聊天机器人(AI)之间的简单多轮对话:

  • 用户:你好,我叫JavaEdge
  • AI:你好JavaEdge,我能帮你什么?
  • 用户:我叫什么名字?
  • AI:JavaEdge

这就是与ChatLanguageModel交互的样子:

UserMessage firstUserMessage = UserMessage.from("Hello, my name is JavaEdge");
AiMessage firstAiMessage = model.generate(firstUserMessage).content(); // JavaEdge,我能帮你什么?
UserMessage secondUserMessage = UserMessage.from("What is my name?");
AiMessage secondAiMessage = model.generate(firstUserMessage, firstAiMessage, secondUserMessage).content(); // JavaEdge

如你所见,在第二次调用generate方法时,不仅提供了secondUserMessage,还提供了对话中的前几条消息。

手动维护和管理这些消息比较繁琐,因此引入ChatMemory。

程序员为什么要学大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

事实上,抢你饭碗的不是AI,而是会利用AI的人。

继科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉优快云大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

​

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

在这里插入图片描述

二、640套LLM大模型报告合集

这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)

在这里插入图片描述

三、LLM大模型系列视频教程

在这里插入图片描述

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

在这里插入图片描述

LLM大模型学习路线 ↓

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。

  • 内容:

    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。

  • 内容:

    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.3 流水线工程
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

  • 内容:

    • L3.1 Agent模型框架
    • L3.2 MetaGPT
    • L3.3 ChatGLM
    • L3.4 LLAMA
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

  • 内容:

    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉优快云大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

​

个人总结 - LangChain4j应用(2) LangChain4j是一个旨在简化大型语言模型(LLMs)与Java应用程序集成的框架。 主要介绍:AiServices 阅读详情

相关推荐

RAG 结果太水?用 RRF + Reranker 重排,效果翻倍提升!

大家好呀~我是小米,一个在知识工程和大模型圈里“打怪升级”的技术搬砖人。你是不是也遇到过这些坑?于是,我开始研究 LangChain4j 的。!

孤芳不自赏 1165

LangChain4j:利用AI新技术给Java应用赋能

LangChain用来构建具有LLM能力的应用框架,只有Python和Javascript版本,无Java版本。对于Java应用开发者很不友好,因此LangChain4j应用而生。LangChain4j利用LLM的强大功能增强你的Java应用,目标是简化将LLM功能集成到Java应用中的过程。官网地址:https://docs.langchain4j.dev/从官网描述可以看到它的特点和优势支持超过10个流行的LLM,包括OpenAI、ZhiPu、Qianfan等等。

VivianStark的博客 6055

第1章:LangChain4j的聊天与语言模型

本文主要介绍了LangChain4j中与语言模型和聊天模型相关的API。强调了ChatLanguageModel的重要性,并详细解释了如何通过ChatMessage管理多轮对话、支持多模态输入,以及如何利用Kotlin扩展进行异步处理。这些功能使得LangChain4j在构建聊天应用时更加灵活和强大。这是LangChain开发智能体的系列文档,欢迎连读第1章:LangChain4j的聊天与语言模型第2章:如何基于LangChain4j实现聊天记忆第3章:在LangChain中如何设置模型参数。

零一架构师的专栏 1367

LangChain4j LangChain集成到JAVA应用

LangChain4j LangChain集成到JAVA应用

m0_46467161的博客 1万+

大模型实战-【Langchain4J 中 Chat and Language Models】

LLMs are currently available in two API types:Support for s will no longer be expanded in LangChain4j, so in all new features, we will use a API. is the low-level API in LangChain4j, offering the most power and flexibility. There are also high-level APIs

会会会会 1789

C++笔试题整理

目录 1. 笔试题1 1.1 链表反转 1.2 String 2. 笔试题2 2.1 求下面函数的返回值(微软) 2.2 什么是“引用”?申明和使用“引用”要注意哪些问题? 2.3 将“引用”作为函数参数有哪些特点? 2.4 在什么时候需要使用“常引用”?  2.5 将“引用”作为函数返回值类型的格式、好处和需要遵守的规则? 2.6 “引用”与多态的关系? 2.7 “引用”与指针的区别是什么? 2.8 什么时候需要“引用”? 2.9 结构与联合有和区别? 2.10 下面关于.

星月相随的专栏 2484

LangChain4j 从入门到放弃,java可以使用的 LLM 大模型 AI 框架(2)LangChain4j 支持的 API 和消息类型

LanguageModels. 早期的简单 API,只接受 String 输入并返回 String 输出。此 API 已过时,未来将主要支持新的聊天 API(即 ChatLanguageModel)。 ChatLanguageModels 目前推荐使用的主要 API,支持更复杂的输入和输出。 接受单个或多个 ChatMessages 作为输入,并返回 AiMessage 作为输出。ChatMessage 通常包含文本,但某些 LLMs 还支持文本和Images 的混合。此类聊天模型的示例包括 OpenAI

TangBoBoa的博客 1597

R3LIVE 1.0 适配 Velodyne 16线雷达:3步配置解决150米漂移问题

本文详细解析了R3LIVE 1.0适配Velodyne 16线雷达时出现的150米漂移问题,并提供三步配置方案。通过调整雷达类型设置、运动补偿与时间对齐、视觉-激光联合优化等关键参数,有效解决了系统漂移问题,提升定位精度。适用于机器人定位与建图领域的开发者。

weixin_29054195的博客 269

三分钟看懂LangChain4j支持的API类型!

点击下方“JavaEdge”,选择“设为星标”第一时间关注技术干货!免责声明~任何文章不要过度深思!万事万物都经不起审视,因为世上没有同样的成长环境,也没有同样的认知水平,更「没有适用于所有人的解决方案」;别急着评判文章列出的观点,只需代入其中,适度审视一番自己即可,能「跳脱出来从外人的角度看看现在的自己处在什么样的阶段」才不为俗人。怎么想、怎么做,全在乎自己「不断实践中寻找适合自己的大道」本...

JavaEdge全是干货的技术号 1943

将机器人urdf模型转换为Mujoco环境下的mjcf模型

在使用gym环境进行人形模型站立训练的过程中,我想要将之前ros环境下的机器人urdf模型导入到mujoco环境下,这时候就需要将urdf模型转换为mujoco专用的mjcf模型。-AzureLoong.urdf是机器人模型(我这里使用青龙的模型);--custom_robot.xml是转换完成之后的机器人模型的名字和格式;包要求 Python 版本必须是 3.11 或更高),保证自己的其他训练环境和依赖不被干扰。首先将meshes文件迁移到需要输出的目录下,然后再运行转换命令。最后就可以成功输出了。

weixin_44334573的博客 3755

决策规划算法四:Piecewise Jerk Path Optimizer

一,问题分析 路径规划的本质目的:规划出一条安全(无碰撞),舒适(平滑),符合车辆运动学的轨迹。 如下图所示,决策算法开辟凸空间后,路径规划算法用数值优化的方法搜索出一条最优路径,即将问题转化为二次规划的问题,采用二次规划的求解器进行求解。 二次规划问题的求解顺序: 1,确定优化变量 2,确定目标函数 3,确定约束条件 4,将目标函数和约束条件变形为二次规划的标准形式 5,用二次规划求解器进行求解,获得优化变量的序列,使得目标函数取得最小值。 注:路径的最终表达式为:,..

肥嘟嘟的左卫门 8562

【LLM大模型】三分钟看懂LangChain4j支持的API类型,大模型入门到精通,收藏这篇就足够了!

LangChain4j中,将不再扩展对LanguageModel的支持,因此所有新功能采用ChatLanguageModel API。

2401_82469710的博客 847

采用MPU6050的手势遥控器

随着社会的发展与进步,电子产品日益更新,个人家庭迎来了越来越多的智能家电。然而,现在的智能电子设备产品的遥控器多数都是按键形的。操作繁琐不直观,学习成本大。并且对于有老人小孩的家庭,给他们的操作带来了巨大的障碍。手势遥控器是指利用简单的手势来指挥电子设备,获得便捷的操作体验。让家庭成员都可以享受科技发展带来的福利。MPU6050是一个运动传感器,内置陀螺仪,再由电子设备利用判断结果做出相应的响应即...

Sakura的博客小站 6602

【LLM大模型】三分钟看懂LangChain4j支持的API类型!

本文描述了底层的大语言模型(LLM)API。

DEVELOPERAA的博客 1477

保姆级教程:2025新版JavPlayer 3.01整合修复版安装配置全流程(N卡/A卡/CPU通用)

本文提供2025新版JavPlayer 3.01整合修复版的保姆级安装配置教程,涵盖N卡、A卡和CPU环境。详细讲解硬件要求、分步安装流程、显卡优化配置及超分辨率模型选择,帮助用户高效完成视频修复任务。

weixin_42665255的博客 1881

BMP280气压传感器原理图设计,已量产(压力传感器)

做嵌入式项目时,“小而精” 的传感器模块永远是刚需 —— 尤其是需要同时测气压和温度的场景,比如无人机定高、环境监测节点、穿戴设备等。最近捣鼓了一款 BMP280 的 Breakout 板,封装做得很紧凑,同时兼顾了稳定性和兼容性,这里单聊硬件设计细节。

不脱发的程序猿 300

深入解析LangChain4j中的ChatLanguageModel API:从基础到高级应用

本页描述的是低级别的 LLM API。有关高级 LLM API,请参见 AI Services。

洛阳泰山的博客 2053

【RT-DETR有效改进】轻量级网络ShuffleNetV2(附代码+修改教程)

从今天开始正式开始更新RT-DETR剑指论文专栏,本专栏的内容会迅速铺开,在短期呢大量更新,价格也会乘阶梯性上涨,所以想要和我一起学习RT-DETR改进,可以在前期直接关注,本文专栏旨在打造全网最好的RT-DETR专栏为想要发论文的家进行服务。RT-DETR剑指论文专栏,持续复现各种顶会内容——论文收割机RT-DETR​​。

Snu77的博客 1994

LangChain4j中的Chat与语言模型API详解:构建高效对话系统的利器

通过本文的解析,我们深入理解了LangChain4j的ChatLanguageModel API的核心机制。该API不仅提供了灵活的消息处理能力,还通过多模态支持打开了更广阔的应用场景。无论是构建智能客服系统、数据分析助手,还是开发跨模态内容生成应用,ChatLanguageModel都提供了坚实的底层支持。工具调用(Tool Execution)的深度集成流式响应(Streaming Response)支持增强的提示工程(Prompt Engineering)功能。

-曾牛的博客 1336

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

LangChain4j -- LLM API

概念说明无状态 LLM需手动维护对话历史,通过传递完整列表实现多轮对话。ChatRequest 的灵活性可自定义温度、工具、输出格式等参数。SystemMessage 的重要性决定 LLM 的角色和行为,需避免用户直接修改。TokenUsage 监控通过获取输入/输出 token 数,用于成本计算。

weixin_38424523的博客 1022

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【LangChain4j入门一】Springboot整合LangChain4j 快速入门

LangChain4j是专为Java生态设计的LLM应用开发框架,提供统一模型API、AI服务抽象、对话记忆管理、RAG等功能模块。本文介绍了开发环境搭建(JDK21+DeepSeek API),通过Maven集成LangChain4j 1.0.1,并展示了多模型配置方法(阿里通义千问和DeepSeek)。示例代码演示了基础API调用,包括模型注入和接口调用,支持获取token消耗等详细信息。该框架结合Java强类型特性,简化了LLM应用的开发流程。

Kenny_abc的博客 1972

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

langchain4j的低级API

这些接口有类似的 API,但可以流式传输响应。它们接受 StreamingChatResponseHandler 接口的实现作为参数。StreamingChatResponseHandler 是一个回调接口,当有部分或完整的响应返回时,LangChain4j 会异步地、分批地调用你提供的 StreamingChatResponseHandler 中的方法(onPartialResponse), 当数据流结束时,它会调用 onCompleteResponse 方法。

RainBot的博客 770

LangChain4J Chat and Language Models(聊天和语言模型)

注意:此页面描述的是低级 LLM API。有关高级 LLM API,请参见(AI 服务)。所有支持的 LLM 可找到。

qq_36178841的博客 1221

langchain4j基础应用

langchain4j简单应用

qq_63902461的博客 491

LangChain4j 是什么?Java 开发者必知的大模型应用开发框架

LangChain4j 是什么?Java 开发者必知的大模型应用开发框架

youmaob的博客 976
上一篇: 本地部署Llama3-8B/70B 并进行逻辑推理测试
下一篇: 大模型好书推荐!BERT基础教程:Transformer大模型实战(附文档)
Llama-Turbo
博客等级 码龄4年 9901粉丝 2022原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值