【AI大模型】——使用Java调用国内各种流行的AI大语言模型,全世界都在拥抱AI!!!

【AI大模型】——使用Java调用国内各种流行的AI大语言模型,全世界都在拥抱AI!!!

 

🎼个人主页:【Y小夜】

😎作者简介:一位双非学校的大三学生,编程爱好者,

专注于基础和实战分享,欢迎私信咨询!

🎆入门专栏:🎇【MySQLJavawebRustpython

🎈热门专栏:🎊【SpringbootRedisSpringsecurityDockerAI】 

感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持!❤️

目录

🎈Java调用通义千问

🎄开通服务

🎄调用模型

🎈Java调用deepseek

🎄快速开始

🎄多轮对话

🎄流式输出


🎈Java调用通义千问

        通义千问是由阿里云自主研发的大模型,用于理解和分析用户输入的自然语言,以及图片、音频、视频等多模态数据。 在不同领域和任务为用户提供服务和帮助。 您可以通过提供尽可能清晰详细的指令,来获取符合您预期的结果。 您可以在 模型体验中心 试用通义千问模型。

🎄开通服务

官网:阿里云百炼阿里云百炼阿里云百炼

点击开通服务

然后正在开通中,耐心等待一下。

点击API-KEY

创建一个自己的KEY

🎄调用模型

然后根据API文档,调用一下自己的模型:

通义千问API参考_大模型服务平台百炼(Model Studio)-阿里云帮助中心

这演示的是通过 DashScope(模型服务灵积) 的方式调用模型。

先引入依赖

 <dependency> <groupId>com.alibaba</groupId> <artifactId>dashscope-sdk-java</artifactId> <version>2.9.0</version> </dependency>

然后进行调用: 

// 建议dashscope SDK的版本 >= 2.12.0 import java.util.Arrays; import java.lang.System; import com.alibaba.dashscope.aigc.generation.Generation; import com.alibaba.dashscope.aigc.generation.GenerationParam; import com.alibaba.dashscope.aigc.generation.GenerationResult; import com.alibaba.dashscope.common.Message; import com.alibaba.dashscope.common.Role; import com.alibaba.dashscope.exception.ApiException; import com.alibaba.dashscope.exception.InputRequiredException; import com.alibaba.dashscope.exception.NoApiKeyException; import com.alibaba.dashscope.utils.JsonUtils; public class Main { public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException { Generation gen = new Generation(); Message systemMsg = Message.builder() .role(Role.SYSTEM.getValue()) .content("You are a helpful assistant.") .build(); Message userMsg = Message.builder() .role(Role.USER.getValue()) .content("你是谁?") .build(); GenerationParam param = GenerationParam.builder() // 若没有配置环境变量,请用百炼API Key将下行替换为:.apiKey("sk-xxx") .apiKey(System.getenv("DASHSCOPE_API_KEY")) // 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models .model("qwen-plus") .messages(Arrays.asList(systemMsg, userMsg)) .resultFormat(GenerationParam.ResultFormat.MESSAGE) .build(); return gen.call(param); } public static void main(String[] args) { try { GenerationResult result = callWithMessage(); System.out.println(JsonUtils.toJson(result)); } catch (ApiException | NoApiKeyException | InputRequiredException e) { // 使用日志框架记录异常信息 System.err.println("An error occurred while calling the generation service: " + e.getMessage()); } System.exit(0); } }

 输出是JSON格式的

如果你只想要输出内容,可以替换为以下代码 

GenerationResult result = callWithMessage(); String content =result.getOutput().getChoices().get(0).getMessage().getContent(); System.out.println(content);

 输出就只有内容了:

🎈Java调用deepseek

🎄快速开始

还是在大模型服务平台百炼上,我们直接使用官方提供的示例代码:

        但是注意,因为我们要 返回reasoning_content(思考过程)字段,你的 DashScope Java SDK 版本需要不低于2.18.2。

// dashscope SDK的版本 >= 2.18.2 import java.util.Arrays; import java.lang.System; import com.alibaba.dashscope.aigc.generation.Generation; import com.alibaba.dashscope.aigc.generation.GenerationParam; import com.alibaba.dashscope.aigc.generation.GenerationResult; import com.alibaba.dashscope.common.Message; import com.alibaba.dashscope.common.Role; import com.alibaba.dashscope.exception.ApiException; import com.alibaba.dashscope.exception.InputRequiredException; import com.alibaba.dashscope.exception.NoApiKeyException; public class Main { public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException { Generation gen = new Generation(); Message userMsg = Message.builder() .role(Role.USER.getValue()) .content("你是谁?") .build(); GenerationParam param = GenerationParam.builder() // 若没有配置环境变量,请用百炼API Key将下行替换为:.apiKey("sk-xxx") .apiKey(System.getenv("DASHSCOPE_API_KEY")) .model("deepseek-r1") .messages(Arrays.asList(userMsg)) // 不可以设置为"text" .resultFormat(GenerationParam.ResultFormat.MESSAGE) .build(); return gen.call(param); } public static void main(String[] args) { try { GenerationResult result = callWithMessage(); System.out.println("思考过程:"); System.out.println(result.getOutput().getChoices().get(0).getMessage().getReasoningContent()); System.out.println("回复内容:"); System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent()); } catch (ApiException | NoApiKeyException | InputRequiredException e) { // 使用日志框架记录异常信息 System.err.println("An error occurred while calling the generation service: " + e.getMessage()); } System.exit(0); } }

🎄多轮对话

        百炼提供的 DeepSeek API 默认不会记录你的历史对话信息。多轮对话功能可以让大模型“拥有记忆”,满足如追问、信息采集等需要连续交流的场景。

// dashscope SDK的版本 >= 2.18.2 import java.util.Arrays; import java.lang.System; import com.alibaba.dashscope.aigc.generation.Generation; import com.alibaba.dashscope.aigc.generation.GenerationParam; import com.alibaba.dashscope.aigc.generation.GenerationResult; import com.alibaba.dashscope.common.Message; import com.alibaba.dashscope.common.Role; import com.alibaba.dashscope.exception.ApiException; import com.alibaba.dashscope.exception.InputRequiredException; import com.alibaba.dashscope.exception.NoApiKeyException; import com.alibaba.dashscope.utils.JsonUtils; public class Main { public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException { Generation gen = new Generation(); Message userMsg1 = Message.builder() .role(Role.USER.getValue()) .content("你好") .build(); Message AssistantMsg = Message.builder() .role(Role.ASSISTANT.getValue()) .content("你好!很高兴见到你,有什么我可以帮忙的吗?") .build(); Message UserMsg2 = Message.builder() .role(Role.USER.getValue()) .content("你是谁") .build(); GenerationParam param = GenerationParam.builder() // 若没有配置环境变量,请用百炼API Key将下行替换为:.apiKey("sk-xxx") .apiKey(System.getenv("DASHSCOPE_API_KEY")) .model("deepseek-r1") .messages(Arrays.asList(userMsg1,AssistantMsg,UserMsg2)) // 不可以设置为"text" .resultFormat(GenerationParam.ResultFormat.MESSAGE) .build(); return gen.call(param); } public static void main(String[] args) { try { GenerationResult result = callWithMessage(); System.out.println("思考过程:"); System.out.println(result.getOutput().getChoices().get(0).getMessage().getReasoningContent()); System.out.println("回复内容:"); System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent()); } catch (ApiException | NoApiKeyException | InputRequiredException e) { // 使用日志框架记录异常信息 System.err.println("An error occurred while calling the generation service: " + e.getMessage()); } System.exit(0); } }

这样模型就有了记忆长对话的能力

🎄流式输出

        DeepSeek-R1 类模型可能会输出较长的思考过程,为了降低超时风险,建议使用流式输出方式调用 DeepSeek-R1 类模型。

// dashscope SDK的版本 >= 2.18.2 import java.util.Arrays; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.alibaba.dashscope.aigc.generation.Generation; import com.alibaba.dashscope.aigc.generation.GenerationParam; import com.alibaba.dashscope.aigc.generation.GenerationResult; import com.alibaba.dashscope.common.Message; import com.alibaba.dashscope.common.Role; import com.alibaba.dashscope.exception.ApiException; import com.alibaba.dashscope.exception.InputRequiredException; import com.alibaba.dashscope.exception.NoApiKeyException; import io.reactivex.Flowable; import java.lang.System; public class Main { private static final Logger logger = LoggerFactory.getLogger(Main.class); private static StringBuilder reasoningContent = new StringBuilder(); private static StringBuilder finalContent = new StringBuilder(); private static boolean isFirstPrint = true; private static void handleGenerationResult(GenerationResult message) { String reasoning = message.getOutput().getChoices().get(0).getMessage().getReasoningContent(); String content = message.getOutput().getChoices().get(0).getMessage().getContent(); if (!reasoning.isEmpty()) { reasoningContent.append(reasoning); if (isFirstPrint) { System.out.println("====================思考过程===================="); isFirstPrint = false; } System.out.print(reasoning); } if (!content.isEmpty()) { finalContent.append(content); if (!isFirstPrint) { System.out.println("\n====================完整回复===================="); isFirstPrint = true; } System.out.print(content); } } private static GenerationParam buildGenerationParam(Message userMsg) { return GenerationParam.builder() // 若没有配置环境变量,请用百炼API Key将下行替换为:.apiKey("sk-xxx") .apiKey(System.getenv("DASHSCOPE_API_KEY")) .model("deepseek-r1") .messages(Arrays.asList(userMsg)) // 不可以设置为"text" .resultFormat(GenerationParam.ResultFormat.MESSAGE) .incrementalOutput(true) .build(); } public static void streamCallWithMessage(Generation gen, Message userMsg) throws NoApiKeyException, ApiException, InputRequiredException { GenerationParam param = buildGenerationParam(userMsg); Flowable<GenerationResult> result = gen.streamCall(param); result.blockingForEach(message -> handleGenerationResult(message)); } public static void main(String[] args) { try { Generation gen = new Generation(); Message userMsg = Message.builder().role(Role.USER.getValue()).content("你是谁?").build(); streamCallWithMessage(gen, userMsg); // 打印最终结果 // if (reasoningContent.length() > 0) { // System.out.println("\n====================完整回复===================="); // System.out.println(finalContent.toString()); // } } catch (ApiException | NoApiKeyException | InputRequiredException e) { logger.error("An exception occurred: {}", e.getMessage()); } System.exit(0); } }

他是一个动态的过程

Read more

2026年 Trae 收费模式改变 —— AI 编程“免费午餐”终结后的生存法则

2026年 Trae 收费模式改变 —— AI 编程“免费午餐”终结后的生存法则

关键词:Trae, Cursor, AI 编程成本, Token 计费, Agent 模式, 职业转型 大家好,我是飞哥!👋 2026年,AI编辑器Trae 也将收费模式改为按 Token 收费。 有些开发者开始动摇:“AI 编辑器越来越贵,是不是应该放弃使用,回归纯手写代码?” 对于用户来说,这无疑是一次涨价。但在飞哥看来,这次涨价背后释放了两个非常关键的信号: 1. AI 技术已进入稳定成熟期: 厂商不再需要通过“免费/低价补贴”来换取用户数据进行模型迭代。产品已经足够成熟,有底气接受市场真实定价的检验。 2. 倒逼用户进化,优胜劣汰: 涨价是一道筛子。它在要求用户大幅提升自己的 AI 使用水平(如 Prompt 技巧、Context 管理)。 * 低级使用者(只会问“怎么写代码”

By Ne0inhk

OpenClaw 控制你的 Mac 和 Windows 电脑,支持 SKill 的 GitHub 神器。

逛 GitHub 的时候,发现一个叫 TuriX-CUA 的开源项目。这是一个 Computer-Use Agent,电脑使用智能体框架。 它可以让 AI 大模型可以像人类一样,直接在桌面电脑上看屏幕 + 动手操作。 完成跨应用的复杂任务,而不是只在对话框里输出文字。 它不像传统 RPA 或基于 API 的集成方式,用如果人能点到的地方,TuriX 也能点的方式,实现跨应用自动化。 通过自然语言描述任务,AI 自动规划并执行,操纵的应用不提供 API 也没事儿。 而且,现在有专门的 Skill,能让你的 OpenClaw 或 Claude Code 使用TuriX-CUA。 目前在 Skill 广场中,Computer Use Agent 里排最高: 01 开源项目简介

By Ne0inhk
KimiClaw/MaxClaw/NullClaw/OpenFang/ZeroClaw/PicoClaw/TinyClaw/Miclaw/ArkClaw等18大小龙虾AI Agent框架技术选型全解析

KimiClaw/MaxClaw/NullClaw/OpenFang/ZeroClaw/PicoClaw/TinyClaw/Miclaw/ArkClaw等18大小龙虾AI Agent框架技术选型全解析

OpenClaw登顶GitHub全球TOP1!26万星超越React/Linux,KimiClaw/MaxClaw/NullClaw/OpenFang/EasyClaw/CoPaw/OpenClawChinese/LobsterAI/ClawPhone/Nanobot/NanoClaw/IronClaw/ZeroClaw/PicoClaw/TinyClaw/Miclaw/ArkClaw等18大AI Agent框架技术选型全解析 文章标签:#OpenClaw #GitHub星标第一 #KimiClaw #MaxClaw #NullClaw #OpenFang #EasyClaw #CoPaw #OpenClawChinese #LobsterAI #ClawPhone #Nanobot #NanoClaw #IronClaw #ZeroClaw #PicoClaw #TinyClaw #Miclaw #ArkClaw #AIAgent框架 #技术选型 #GitHub开源 🔥 历史性时刻:2026年3月,OpenClaw以26万+ GitHub Stars正式超越React(24.

By Ne0inhk
ubuntu 22.04下载安装及相关配置

ubuntu 22.04下载安装及相关配置

一、ubuntu 22.04下载 1.1、官网下载 Get Ubuntu | Download | Ubuntu 官网下载速度比较慢,不是很推荐。 历史版本:Index of /releases (ubuntu.com) 1.2、清华镜像网站下载 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 该方式下载很快,推荐使用。下载方式如下: 1.2.1、进入镜像网站直接搜索ubuntu,然后选择ubuntu-releases 1.2.2、选择想要下载的版本 1.2.3、选择桌面版本:ubuntu-22.04.4-desktop-amd64.iso 1.3、镜像文件中后缀含义

By Ne0inhk