2026年阿里巴巴Java开发手册 - 孟飞阳的个人空间 -

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -在上一期我们跑通了接口调用 我们就可以开始使用 Java 来接入阿里百炼大模型 API 了 由于本项目使用的是 Spring Boot 3 和 Spring AI 开发框架 所以安装的 JDK 必须是 17 或 21 不能选择其他版本 在 IDEA 中新建 SpringBoot 项目 配置如下图 开发 AI 项目时我们通常需要使用许多开发工具和接口 所以我们来整合 HHHutool 工具库和 Kinfe4j 接口文档

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



在上一期我们跑通了接口调用,我们就可以开始使用Java来接入阿里百炼大模型API了

由于本项目使用的是Spring Boot 3和Spring AI开发框架,所以安装的JDK必须是17或21,不能选择其他版本

在IDEA中新建SpringBoot项目,配置如下图:

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_spring

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_java_02

开发AI项目时我们通常需要使用许多开发工具和接口,所以我们来整合HHHutool工具库和Kinfe4j接口文档

引入Hutool工具库

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。

Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;

Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。

通过Maven引入Hutool

 
   
     
     

 
  
    
    
      cn.hutool 
     
  
    
    
      hutool-all 
     
  
    
    
      5.8.38 
     

Knife4接口文档

你想了解的 Knife4j 是目前 Java 生态中 最主流、最易用、功能最全 的 SpringBoot/SpringCloud 接口文档生成工具,是Swagger/OpenAPI 的国产增强升级版,解决了原生 Swagger 的所有痛点,是后端开发的标配组件

官方文档:https://doc.xiaominfo.com/knife4j/

在Maven的pom.xml中添加依赖:

 
   
     
     

 
  
    
    
      com.github.xiaoymin 
     
  
    
    
      knife4j-openapi3-jakarta-spring-boot-starter 
     
  
    
    
      4.4.0 
     

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_ai_03

配置服务器信息和knife4j

spring: 

application:

name:travel-ai-agent 

server: port: 8080 servlet:

context-path: /api 

springdoc: swagger-ui:

path: /swagger-ui.html # swagger-ui 访问路径
tags-sorter: alpha # 排序
operations-sorter: alpha # 排序

api-docs:

path: /v3/api-docs # swagger-ui 访问路径 

group-configs:

 - group: "default" # 分组名称 paths-to-match: "/" # 匹配所有路径 packages-to-scan: com.yugongyun.travelaiagent.controller 

knife4j: enable: true # 是否启动 production: false # 是否是生产环境 basic:

enable: false username: admin password: admin 

setting:

language: zh_cn enableFooter: true enable-footer-custom: true

在实际开发中,存在多种方式可以将大型人工智能模型集成到应用程序中。以下将详细介绍四种主流的接入方式,并加上对应的示例,说明如何在Java项目中实现与大型AI模型的交互。

主流接入方案:

  • HTTP接入:通过模型服务商提供的REST API接口,直接发送HTTP请求来调用模型服务
  • SDK接入:利用模型服务商官方提供的软件开发工具包进行集成。这是最直接,封装程度最高的方式
  • Spring AI:一个基于Spring框架生态系统的AI应用开发框架,旨在简化大型语言模型在Spring应用中的集成过程
  • LangChain4j:一个专为构建基于大模型语言的应用而设计的Java框架,提供了丰富的组件链来支持复杂的AI交互逻辑

开发环境选择:

HTTP接入是通过Http协议发送主动构造第三方接口的请求,从而获得响应结果的方式,这种方式需要熟悉官方接口文档,并熟悉如何使用Java实现HTTP请求的发送和响应处理。

HTTP调用的详细说明可以参考官方文档:API请求响应参数详解与代码示例-大模型服务平台百炼-阿里云

使用Deepseek生成请求代码

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_ai_04

参考提示词:

由于AI生成的随机性,可能生成的结果不一样但是大部分情况都是可以正常运行

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_java_05

对应代码如下:

@SpringBootTest 

public class AiInvokeTest {

@Value("${spring.ai.dashscope.api-key}") private String APIKEY; private static final String URL = "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation"; @Test void testHttpData() 

}

这里的APIKEY的值提取到了配置文件中属性名为:spring.ai.dashscope.api-key

配置APIKEY避免泄露

1.配置环境分离

我们这里使用将配置存入系统变量的方式,避免将其写入代码库中:

spring: ai: 
dashscope: api-key: ${DASH_SCOPE_API_KEY}

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_API_06

确认修改后需要重启IDEA,因为Windows环境变量在程序启动时就固定了

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_java_07

2.配置文件分离

        由于Linux系统和windows系统配置方式不一样,生产每个部署系统都要做一次环境变量的配置,所以我们学习一下如何通过配置文件分离实现本地配置文件密钥不上传到远程仓库

        利用SpringBoot的配置文件优先级和多环境配置都可以实现

技术原理

        Spring Boot的Profile是一种强大的机制,用于在不同的环境中激活不同的配置。在Spring Boot中我们可以使用@Profile注解或者spring.profile.active属性来激活特定的profile。

  1. 在src/java/resouress文件夹中新建一个application-dev.yml,配置文件
spring: 

ai:

dashscope: api-key: 你的APIKEY
  1. 在application.yml中新增spring.profile.active配置为dev,激活application-dev.yml配置文件
spring: 

ai:

dashscope: api-key: ${DASH_SCOPE_API_KEY} 

profiles:

active: dev

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_ai_08

  1. 添加.gitignore规则,忽略application-dev.yml配置文件
  2. 提交一个git版本,并推送到远程仓库,先复制Git远程仓库的地址然后在终端依次输入如下命令
git add 

git commit -m “HTTP方式调用阿里百炼大模型” git remote add origin [复制你的Gitee或GitHub远程仓库地址] git push -u origin “master”

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_Java_09

        SDK(软件开发工具包)是官方提供的最直接的集成方式,通常提供了完善的类型支持和错误处理机制

        使用HTTP虽然可以实现接入但是请求还要自己封装,费时费力

安装DashScope Java SDK

参考官方文档:https://help.aliyun.com/zh/model-studio/first-api-call-to-qwen

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_Java_10

选择版本的话可以到Maven仓库查看:Maven Repository: com.alibaba » dashscope-sdk-java

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_spring_11

推荐不要使用最新版本,避免有BUG未修复这里我们使用2.19.5

 
   
     
      
 
     
       
        
        
          com.alibaba 
         
        
          dashscope-sdk-java 
         
        
          2.19.5 
         
       

参考官方文档编写接入代码

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_spring_12

修改测试类,新增testSDKInvoke方法,将官方SDK复制过来修改

@Test void testSDKInvoke() catch (ApiException | NoApiKeyException | InputRequiredException e) System.exit(0); } public GenerationResult callWithMessage(String modelName, String prompt) throws ApiException, NoApiKeyException, InputRequiredException 

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_API_13

Spring AI 的核心是解决人工智能集成的根本挑战:将企业数据和 API 与 AI 模型连接起来。

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_API_14

Spring AI 的核心是解决人工智能集成的根本挑战:将企业数据和 API 与 AI 模型连接起来。

Spring AI 提供以下功能,参考文档:https://spring.io/projects/spring-ai:

  • 支持跨 AI 提供商的可移植 API 支持,支持同步和流式 API 选项。还可访问模型专属功能。
  • 结构化输出——将AI模型输出映射到POJO。
  • 支持所有主要的向量数据库提供商,如 Apache Cassandra、Azure Vector Search、Chroma、Milvus、MongoDB Atlas、Neo4j、Oracle、PostgreSQL/PGVector、PineCone、Qdrant、Redis 和 Weaviate
  • 跨向量存储提供商的可移植API,包括一种新颖的类SQL元数据过滤API。
  • 工具/函数调用——允许模型请求执行客户端工具和函数,从而根据需要访问必要的实时信息。
  • 可观察性——提供关于人工智能相关作的洞察。
  • 用于数据工程的文档注入ETL框架。
  • AI模型评估——帮助评估生成内容并防止幻觉反应的实用工具。
  • ChatClient API - 用于与 AI 聊天模型通信的流畅 API,习语上类似于 WebClient 和 RestClient API。
  • Advisors API - 封装反复出现的生成式人工智能模式,转换与语言模型(LLM)之间的数据转换,并提供跨多种模型和用例的可移植性。
  • 支持聊天对话、记忆和检索增强生成(RAG)。
  • Spring Boot 自动配置及所有 AI 模型和向量存储的启动程序——使用 start.spring.io 选择所选的模型或向量存储。

Spring AI默认没有支持所有大模型(尤其是国产的),更多是兼容OpenAI的大模型集成。因此,如果我们想要调用阿里系大模型(比如通义千问),推荐直接使用阿里自主封装的Spring AI Alibaba框架,它不仅可以直接基础阿里系大模型,用起来更方便,而且与标准的Spring AI保持兼容

修改pom.xml添加Spring AI Alibaba依赖

 
   
     
      
      
 
      
        
        
          org.springframework.boot 
         
      
        
        
          spring-boot-starter-test 
         
      
        
        
          test 
         

修改测试类:

@Value("${spring.ai.dashscope.api-key}") String APIKEY; @Resource private ChatModel dashscopeChatModel; @Test void testDashScopeInvoke() { String result = dashscopeChatModel.call("你好你是谁"); System.out.println(result); }

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_ai_15

修改调用的大模型:

从运行结果来看,如果没有配置大模型类型,则默认使用阿里通义千问大模型,我们可以通过配置文件进行修改

例如使用Deepseek-v3.1

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_spring_16

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_Java_17

        LangChain4j 是专为 Java/Kotlin(JVM 技术栈) 打造的大语言模型 (LLM) 应用开发框架,是 Python 版 LangChain 的官方纯 Java 实现无任何 Python 依赖,是 Java 开发者做 AI 大模型应用的首选框架

创建Git分支

        由于LangChain4j只是测试,我们可以创建一个git分支来做测试,避免影响主分支代码,如果没有使用git此步骤可以忽略

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_spring_18

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_java_19

这样我们在新分支的修改就不会影响到主分支版本的内容。

导入LangChain4j依赖

LangChain官方是没有支持阿里系大模型的,只能用社区版本整合大模型包。可以在官方文档中查询支持的模型列表:

https://docs.langchain4j.info/integrations/language-models

要接入阿里云灵积模型,参考:DashScope (通义千问) | LangChain4j 中文文档

在pom文件中增加导入langchain4j的社区依赖包:

 
   
     
      
      
        dev.langchain4j 
       
      
        langchain4j-community-dashscope 
       
      
        1.0.0-beta2 
       
     

参考编写测试方法testLangChain4j

在测试类中增加testLangChain4j方法,创建一个ChatLanguageModel对象,和SpringAI的方法很相似。

@Test void testLangChain4j(){ ChatLanguageModel model = QwenChatModel.builder() .apiKey(APIKEY) .modelName("deepseek-v3.1") .build(); String result = model.chat("你好"); System.out.println(result); }

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_java_20

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_API_21

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_Java_22

可以分析pom.xml和测试类又回到了之前的版本,这就是分支操作

推荐操作:在执行测试,修复BUG或执行危险操作时可以新建一个分支来验证,如果失败了也不会影响主分支的内容,并且切换简单

        如果我们有一台高性能显卡电脑,或者公司需要拥有自己的大模型,我们也可以在本地环境中部署和使用大模型,以获得更好的数据隐私控制,以更低的延迟以及无需网络连接的使用体验

下面我们来讲解如何在本地安装和接入AI大模型,并通过SpringAI框架进行调用

使用开源项目Ollama可以快速安装大模型,无需自己执行脚本安装,也省去了复杂的环境配置。

Ollama不仅提供了友好的命令行界面,还可以通过API调用,方便与各种应用程序集成。

官方文档:ollama/docs/api.md at main · ollama/ollama · GitHub

下载安装Ollama安装

官网下载页面(国内镜像):在 Windows 上下载 Ollama - Ollama 框架

阿里巴巴Java开发手册 - 孟飞阳的个人空间 -_API_23

安装过程比较简单不做赘述

挑选并下载模型


小讯
上一篇 2026-04-26 16:23
下一篇 2026-04-26 16:21

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/281313.html