Java开发者如何切入大模型时代?一文掌握LLM开发核心路径

一、 概述

伴随着大模型的性能提升、成本下降,在Web在线对话场景以外,大模型也越来越多的被集成到传统业务场景。

在大模型API交互模式、业务集成模式经百家争鸣现已趋于稳定的背景下,Spring作为Java生态里的OSS巨头也下场为LLM提供生态支持,于近期释出 spring-ai 正式版。

需要说明的是,Spring-AI 所提供的能力并不神秘,业务上也并非必须用Spring-AI不可。但是,就像过去Spring对新的数据库、新的中间件提供生态支持一样,Spring-AI提供了一套和Spring全家桶兼容并且语义一致、良好设计、易拓展的大模型交互的Java API,可以极大的降低LLM集成和开发的成本。

从大模型的工程化、实用化角度来说,当你厘清Spring-AI这一套API设施的逻辑后,事情最后还是会回归到业务开发人最熟悉的CRUD领域。就像使用Mybatis操作MySQL一样,我们会用 spring-ai 来操作大模型。

那我们开始今天的讨论吧!

二、什么是大模型

大模型的舞台上,从来不缺新面孔。自ChatGPT开启AI新纪元后,各类大模型层出不穷。

但是我们不去考虑大模型的训练原理、推理/运算架构、参数调优等较为复杂的数学范畴的东西,就像我们很少关心MySQL是怎么用代码来实现效果的一样。

此处类比我们熟悉的知识,对大模型有一个盲人摸象式的基础且能够自洽的认识即可。

  1. 从某种意义上来说,模型训练就是通过分析海量文本(如维基百科、图书、网页等)寻找到人类语言的规律,再将这个规律固化成一个包含数十亿【参数】的超级【数学公式】。就像简单公式 y = 5x + 8 中的 5 和 8 ,这两个【参数】决定了将输入X如何转化为输出Y。
  2. 训练好的【数学公式】就像代码,需要部署在算力平台上,借助【显卡】的并行运算能力来实现高效运算。
  3. 用户的输入作为这个【数学公式】的入参,经公式运算后,得到相关的【输出】。

图片

假设大模型是上述的数学公式,不同的大模型「ChatGPT/DeepSeek」是不同的架构、不同的公式,那么模型训练就是通过对海量文本的分析、学习,找到合适的参数值。

在这里插入图片描述

三、 大模型的特点

接下来我们关注在工程应用场景下,需要开发人关注的大模型特点。

就像MySQL,我们集成时也需要关注不同的存储引擎(InnoDB/MyISAM)的特点。

无状态

图片

大模型是没有记忆、没有状态的,它是一个纯函数。

它不知道之前跟你说过什么。所以每次进行大模型输入的时候,我们需要根据业务场景把之前的【输入】,【反馈】一并给它,避免大模型失忆导致的对话不流畅。

图片

结构化输出

大模型是具备结构化输出能力的,虽然有些模型支持的不够好,但是没关系,只是支持的程度不同,重要的是它们都支持!

所谓的结构化输出是指,大模型除了可以返回口语化、没有模式的自然语言文本外,还可以按你需求给你返回其他的文本格式,比如:JSON。

图片

你看,这像不像在调一个REST接口?甚至是一个万能接口,毕竟大模型什么都会,不会的也可以现编。

图片

函数调用

其实看到这里我们就可以实现一个大模型驱动的RPC调用引擎了!

图片

大模型帮你推理、规划得到了需要执行的函数和对应的函数参数,至于这个【函数名】对应的到底是一个进程内的方法、HTTP接口、Dubbo接口还是MCP接口都没有那么重要,这只是智能体实现的一个技术细节而已。

我们可以用自然语言表述需求,同时告诉大模型有哪些辅助【工具/函数】可以供它备用。它会推理、编排这些工具来达成需求。

图片

  1. 把用户输入和可用函数输入给大模型,大模型推理发现需要调用外部函数,于是返回函数名+函数调用参数。
  2. 智能体捕获输出,对指定函数发起调用,再将用户输入和函数结果一起输入到大模型,大模型基于这些上下文推理输出结果。

考虑到大模型发起函数调用的普遍需求,大模型供应商一般都在API层面提供了【function call】能力,用于将文本输出和函数调用输出区分开,明白了原理,我们知道这只是API抽象层次的问题。

四、 大模型接口

考虑到大模型对硬件资源的特别需求(如显卡),所以大模型一般是独立部署,以SaaS模式提供能力。就像MySQL对资源有特别的需求(如大内存),所以一般也是进行独立部署。

图片

训练好的大模型就是一套二进制数据集,SaaS化需要做外围的服务化、产品化封装,同一套模型可以在不同的算力平台部署,提供截然不同的服务化API。

模型封装

示例伪代码如下:

图片

我们可以简单看下当下比较热门的几大供应商提供的API文档:

  1. OpenAI-会话补全

    https://openai.apifox.cn/api-67883981

  2. DeepSeek-会话补全

    https://api-docs.deepseek.com/zh-cn/api/create-chat-completion

  3. 硅基流动-会话补全

    https://docs.siliconflow.cn/cn/api-reference/chat-completions/chat-completions

  4. Ollama-会话补全

    https://www.runoob.com/ollama/ollama-api.html

硅基流动和Ollama都属于大模型算力/治理平台。他们不研发大模型,只是大模型的搬运工。可以把大模型理解成微服务集群,把硅基流动和Ollama理解成微服务构建/发布平台即可。

大概浏览一下,会发现核心API都差不多,毕竟有OpenAI珠玉在前,许多系统都已对接了OpenAI的API。后发的大模型为了兼容,降低接入难度,基本上也都和OpenAI的API大差不差。

就像是MySQL,尽管数据库产品类型百花齐放,但都兼容SQL语法。

我们在此只讨论【会话补全】这一点,会发现会话补全接口的输入/输出大概都是以下情况:

接口输入

{  "stream": false, // 是否是流式输出(要不要SSE)  "model": "deepseek-chat", //选用的哪个模型  "messages": [ // 历史对话消息,因为大模型无状态,所以按场景提供一定数量的历史消息    {      "content": "You are a helpful assistant",      "role": "system"    },    {      "content": "Hi", //消息内容      "role": "user" //消息类型    }  ],  "tools": null, //外部函数列表,【函数调用】能力在 API 层面的支持  "frequency_penalty": 0,  //无关紧要的模型行为控制参数  "presence_penalty": 0, //无关紧要的模型行为控制参数  "temperature": 1, //无关紧要的模型行为控制参数  "top_p": 1, //无关紧要的模型行为控制参数  "logprobs": false, //无关紧要的模型行为控制参数  "top_logprobs": null //无关紧要的模型行为控制参数}

这里以目标达成作为要点,内容中部分不理解的参数可以忽略。

接口输出

{  "id": "<string>", //无关紧要  "choices": [    {      "message": {        "role": "assistant",        "content": "<string>", // 大模型生成的内容        "reasoning_content": "<string>",        "tool_calls": [  //需要发起的【函数调用】          {            "id": "<string>",            "type": "function",            "function": {              "name": "<string>",              "arguments": "<string>"            }          }        ]      },      "finish_reason": "stop" //有点重要,但是我们先不管    }  ],  "usage": {  //token使用量 计数、计费    "prompt_tokens": 123,    "completion_tokens": 123,    "total_tokens": 123  },  "created": 123,  //无关紧要  "model": "<string>",  //无关紧要  "object": "chat.completion"  //无关紧要}

看到这里时,你是不是已经开始跃跃欲试了?是不是感觉打造一个垂直领域的智能体没有想象中那么困难了~

五、 RAG架构

除非是围绕特定业务场景结合私域数据训练的专用大模型,否则涉及到一些企业内部的私域信息时,通用大模型也只能不懂装懂的现编。

例如:当你询问大模型【DJob如何接入与使用】,除非训练大模型时输入了相关资料,不然大模型只能现编了。

考虑到专用大模型的成本,工程上解决这个问题的方法一般是通过外挂知识库来实现:

  1. 结合具体业务场景,将相关的文档与资料提前录入到【知识库】中。
  2. 用户提交一个【输入】后,先使用 用户【输入】作为搜索条件,去【知识库】中搜索得到相关的【资料】。
  3. 将用户【输入】和【资料】一起提供给大模型。

此【知识库】组件的具体选型属于实现细节,简单的可以用MySQL、Elasticsearch,如果想提升【知识库搜索结果】的匹配度,也可以使用近期讨论度很高的【向量数据库】。

添加了RAG后,流程如下:

图片

详情可参考下文:

https://www.zhihu.com/tardis/zm/art/675509396?source_id=1003

六、 MCP协议

可以看到,将大模型作为一个【函数调用】的规划引擎,借助它的推理与生成能力,可以实现复杂的业务流程。如果说大模型是【脑】,那提供给大模型规划、使用的【函数】就是它的【手】和【脚】。有脑有手的大模型,可以迸发出巨大的业务潜力。

那如何打通大模型和传统软件系统(如存量微服务)呢?

我们关注的问题,开源社区也在积极的关注,这就是MCP协议诞生的背景和目的。

图片

MCP协议介绍

https://mcp-docs.cn/introduction

在这里我们不展开MCP协议的细节,仅作个人对MCP协议的思考,重点在于打破MCP协议的神秘感、破除MCP迷信。

  1. MCP协议本身并非高精尖的内容,简单来说,就是常用人群约定系统间调用的流程、格式。若不考虑通用,谁都可以设计符合自己需求的、领域特定的交互协议。
  2. MCP协议的优势在于,它出现的非常及时,且基本满足了常规交互需求,因此快速在社区达成了共识。
  3. 不管是MAP、MBP还是MCP,都没有那么重要,但是形成共识非常重要。协议达成了共识,开源社区才可以合力围绕协议进行生态建设。

七、 Spring-AI

到了这一步,我们开始探讨Java代码,首先我们需要熟悉下 spring-ai 的整套代码架构,一步一步来,以整体到到细节的节奏进行讨论。

模型抽象

核心的API实体是 Model ,是一个带泛型的纯函数,提供了对大模型能力的顶层抽象:

图片

org.springframework.ai.model.Model

大模型的能力本质就是:输入一个( request ),返回一个输出。

至于输入/输出的具体类型,由细分的子类限定:

图片

不同模态的大模型支持不同类型的输入/输出,在此我们只讨论 ChatModel 。

图片

org.springframework.ai.chat.model.ChatModel

图片

spring-ai 提供了不同平台、不同模型的API集成,开发者只需要提供接口地址、调用凭证即可开箱使用~

聊天会话

考虑到大模型对话是热点场景, spring-ai 针对性的提供了会话接口抽象。

图片

org.springframework.ai.chat.client.ChatClient

RAG拓展

类似Spring-AOP, spring-ai 基于请求横切提供了开箱即用的RAG能力抽象。

图片

图片

org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor

代码示例

基于供应商构建ChatModel

图片

构建ChatClient发起会话

图片

八、 智能体示例

到这里,我们已经自上而下的理解了大模型的工程化,现在我们来开发一个【DJob智能助手】吧!

接口骨架

图片

通过 POST 接口,响应 Content-Type 为 text/event-stream 。

构造外部函数定义

假设有以下几个函数可以给大模型提供能力:

图片

将上述3个本地方法封装成 ChatClient API 认识的【ToolCallback】:

图片

构建可用的 函数/工具 信息,这里用本地方法来mock。实际使用时可以利用MCP/HTTP/gRPC/Dubbod等实现跨系统调用。

系统提示词

由于不能让大模型自由发挥,因此需要在用户输入的内容外,给大模型一些定向信息补充或场景限定,帮助大模型更好地解决问题!

图片

发起调用

图片

  1. 考虑到大模型无状态,所以每次会话时历史消息也需要一并输入。
  2. 历史消息可以由前端收集、提交,也可以由后端每次会话存储、收集。

九、 总结

综上所述,太阳底下没有新鲜事,工程领域所有的新生事物都可以暂时把它当做MySQL,没有人比Java工程师更懂MySQL了(开玩笑)。

普通人如何抓住AI大模型的风口?

领取方式在文末

为什么要学习大模型?

目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。

目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过 30%。
在这里插入图片描述

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:
在这里插入图片描述

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!

最后

只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!

在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

在这里插入图片描述

大模型全套学习资料展示

自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

图片

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!

01 教学内容

图片

  • 从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!

  • 大量真实项目案例: 带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

02适学人群

应届毕业生‌: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

image.png

vx扫描下方二维码即可
在这里插入图片描述

本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!

03 入门到进阶学习路线图

大模型学习路线图,整体分为5个大的阶段:
图片

04 视频和书籍PDF合集

图片

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

图片

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)
图片

05 行业报告+白皮书合集

收集70+报告与白皮书,了解行业最新动态!
图片

06 90+份面试题/经验

AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)图片
在这里插入图片描述

07 deepseek部署包+技巧大全

在这里插入图片描述

由于篇幅有限

只展示部分资料

并且还在持续更新中…

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值