【Java实战】国内主流AI大模型调用指南——从通义千问到DeepSeek的技术探索

未分类5天前发布 gsjqwyl
7 0 0

【Java实战】国内主流AI大模型调用指南——从通义千问到DeepSeek的技术探索

🎵技术博客:【开发者夜谈】
👨💻关于作者:某高校计算机系在读本科生,技术爱好者,
专注实战经验与原理剖析,欢迎技术交流!
📚技术栈:🔧【数据库Web开发系统编程数据分析
🔥热门领域:🚀【微服务缓存技术安全框架容器化智能应用
您的每一次互动都是对我创作的最大鼓励!🌟
【Java实战】国内主流AI大模型调用指南——从通义千问到DeepSeek的技术探索
内容导航
🔍Java集成通义千问
🔑服务开通
🛠️模型调用
🔍Java对接DeepSeek
⚡快速接入
💬对话管理
🌊流式响应


🔍Java集成通义千问

阿里云推出的通义千问是一款智能语言处理系统 ,具备处理文本、图像、声音等多种数据格式的能力。 通过精确的指令输入,可以获得高质量的反馈。 用户可以在官方体验中心测试该模型的功能。

🔑服务开通

平台入口:阿里云智能平台阿里云智能平台阿里云智能平台
选择开通相应服务
【Java实战】国内主流AI大模型调用指南——从通义千问到DeepSeek的技术探索
等待服务初始化完成
【Java实战】国内主流AI大模型调用指南——从通义千问到DeepSeek的技术探索
进入密钥管理界面
【Java实战】国内主流AI大模型调用指南——从通义千问到DeepSeek的技术探索
生成专属访问凭证
【Java实战】国内主流AI大模型调用指南——从通义千问到DeepSeek的技术探索

🛠️模型调用

参考官方接口文档进行模型调用:
通义千问开发指南_大模型服务平台-阿里云技术文档
以下示例展示通过灵积平台调用模型的方法。
添加依赖项

com.alibaba
dashscope-sdk-java
2.12.0

调用示例:

// 推荐使用dashscope SDK 2.12.0及以上版本
import java.util.Collections;
import com.alibaba.dashscope.aigc.*;
import com.alibaba.dashscope.common.*;
import com.alibaba.dashscope.exception.*;
public class QWenDemo {
public static GenerationResult invokeModel() throws ApiException {
Generation generator = new Generation();
Message systemMessage = new Message.Builder()
.setRole(Role.SYSTEM)
.setContent("你是一个智能助手")
.build();
Message userQuery = new Message.Builder()
.setRole(Role.USER)
.setContent("请自我介绍")
.build();
GenerationParam params = new GenerationParam.Builder()
.setApiKey(System.getenv("DASHSCOPE_API_KEY"))
.setModel("qwen-pro")
.setMessages(Arrays.asList(systemMessage, userQuery))
.setResponseFormat(GenerationParam.ResponseType.MESSAGE)
.build();
return generator.execute(params);
}
public static void main(String[] args) {
try {
GenerationResult response = invokeModel();
System.out.println(response.toJsonString());
} catch (Exception e) {
System.err.println("调用过程中出现异常: " + e.getMessage());
}
}
}

响应结果为JSON结构【Java实战】国内主流AI大模型调用指南——从通义千问到DeepSeek的技术探索
若只需提取回复内容:

String responseText = response.getChoices().get(0).getContent();
System.out.println(responseText);

输出效果:【Java实战】国内主流AI大模型调用指南——从通义千问到DeepSeek的技术探索

🔍Java对接DeepSeek

⚡快速接入

使用平台提供的示例代码时需注意:
SDK版本要求2.18.2及以上才能获取推理过程信息

import com.alibaba.dashscope.aigc.*;
import com.alibaba.dashscope.common.*;
public class DeepSeekDemo {
public static void main(String[] args) {
try {
Generation generator = new Generation();
Message query = new Message.Builder()
.setRole(Role.USER)
.setContent("你的功能是什么?")
.build();
GenerationParam params = new GenerationParam.Builder()
.setApiKey(System.getenv("DASHSCOPE_API_KEY"))
.setModel("deepseek-latest")
.setMessages(Collections.singletonList(query))
.setResponseFormat(GenerationParam.ResponseType.MESSAGE)
.build();
GenerationResult result = generator.execute(params);
System.out.println("推理过程:\n" + result.getReasoning());
System.out.println("最终回复:\n" + result.getContent());
} catch (Exception e) {
System.err.println("服务调用异常:" + e.getMessage());
}
}
}

执行效果:【Java实战】国内主流AI大模型调用指南——从通义千问到DeepSeek的技术探索

💬对话管理

平台默认不保存对话历史。通过消息队列实现多轮对话功能:

List conversationHistory = new ArrayList<>();
// 首轮对话
conversationHistory.add(new Message(Role.USER, "推荐一部科幻电影"));
conversationHistory.add(new Message(Role.ASSISTANT, "《星际穿越》值得一看"));
// 后续追问
conversationHistory.add(new Message(Role.USER, "为什么推荐这部?"));
GenerationParam dialogParams = new GenerationParam.Builder()
.setApiKey(apiKey)
.setMessages(conversationHistory)
.build();

对话连续性展示:【Java实战】国内主流AI大模型调用指南——从通义千问到DeepSeek的技术探索

🌊流式响应

处理长文本时建议采用流式调用:

Flowable streamResponse = generator.streamCall(params);
streamResponse.subscribe(
chunk -> {
System.out.print(chunk.getContent());
},
error -> System.err.println("流式处理异常"),
() -> System.out.println("\n响应结束")
);

实时输出效果:【Java实战】国内主流AI大模型调用指南——从通义千问到DeepSeek的技术探索
完整响应展示:【Java实战】国内主流AI大模型调用指南——从通义千问到DeepSeek的技术探索

© 版权声明

相关文章

暂无评论

暂无评论...