2026年java实战系列学习资料汇总 - beifangbubai的个人空间 -

java实战系列学习资料汇总 - beifangbubai的个人空间 -nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 在大模型的浪潮中 阿里云推出的 通义千问 Qwen 以强大的中文理解能力和开放生态脱颖而出 如果你是一名 Java 开发者 希望快速体验 AI 问答 聊天 知识问答等功能 那么官方提供的 DashScope Java SDK

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



        在大模型的浪潮中,阿里云推出的 通义千问(Qwen) 以强大的中文理解能力和开放生态脱颖而出。如果你是一名 Java 开发者,希望快速体验 AI 问答、聊天、知识问答等功能,那么官方提供的 DashScope Java SDK 无疑是最便捷的入口。

        本文将带你从零实现一个 控制台版 AI 多轮对话 Demo,支持 通义千问模型(Qwen)流式输出,实现类似 ChatGPT 的实时回复体验。

为什么不使用OpenAI SDK:博主先用OpenAI SDK做的流式,后面发现多轮对话OpenAI SDK中没有java实现的版本,所以毫不犹豫的重新用DashScope SDK重新实现一遍

1. 注册与获取 API Key

  • 访问 阿里云 DashScope 平台。
  • 登录后进入「控制台」 -> 「API Key 管理」,创建并复制你的 API Key
  • 请妥善保管此 Key,不要上传到公共仓库。

2. 创建 Java 项目并引入依赖

        如果你使用 Maven 构建项目,只需在 pom.xml 中添加以下依赖:

 
   
     
     

GPT plus 代充 只需 145 
  
    
    
      com.alibaba 
     
  
    
    
      dashscope-sdk-java 
     
  
    
    
      2.21.12 
     
  
    
     
  
    
     
      
      
        org.slf4j 
       
      
        slf4j-simple 
       
      
     

提示:版本号可到 DashScope SDK 官方仓库 查看最新版本。

接下来我们实现一个完整的控制台应用:

  • 支持用户多轮输入;
  • 每轮对话都带上下文记忆;
  • 采用通义千问的 流式输出 模式(边生成边显示)。
核心代码
public class GenerationDemo {

GPT plus 代充 只需 145// API密钥 private static final String API_KEY = "替换为你的API密钥即可"; / * 创建 GenerationParam 对象 * @param messages 对话消息列表 * @return GenerationParam 对象 */ public static GenerationParam createGenerationParam(List 
  
    
    
      messages) { return GenerationParam.builder() .apiKey(API_KEY) .model("qwen-turbo") // 指定模型名称 .messages(messages) .resultFormat(GenerationParam.ResultFormat.MESSAGE) .incrementalOutput(true) // 开启增量输出,流式返回 .build(); } / * 使用对话消息发起流式生成调用 * @param param 生成参数 * @return 流式生成结果 */ public static Flowable 
     
       callGenerationWithMessages(GenerationParam param) throws ApiException, NoApiKeyException, InputRequiredException { Generation gen = new Generation(); return gen.streamCall(param); // 通过streamCall开启流式调用 } / * 创建消息对象的辅助方法 * @param role 角色 * @param content 消息内容 * @return 消息对象 */ private static Message createMessage(Role role, String content) public static void main(String[] args) // 添加用户消息 messages.add(createMessage(Role.USER, userInput)); // 创建生成参数 GenerationParam param = createGenerationParam(messages); // 发起流式调用 CountDownLatch latch = new CountDownLatch(1); // 用于拼接完整响应内容 StringBuffer fullContent = new StringBuffer(); Flowable 
      
        resultFlowable = callGenerationWithMessages(param); System.out.print("模型输出:"); resultFlowable .subscribeOn(Schedulers.io()) // IO线程执行请求 .observeOn(Schedulers.computation()) // 计算线程处理响应 .subscribe(result -> System.out.flush(); // 立即刷新输出 } , // onError: 处理错误 error -> , // onComplete: 完成回调 () -> { System.out.println(); // 换行 // System.out.println("完整响应: " + fullContent.toString()); latch.countDown(); }); latch.await(); messages.add(createMessage(Role.SYSTEM, fullContent.toString())); } } catch (ApiException | NoApiKeyException | InputRequiredException e) { e.printStackTrace(); } catch (InterruptedException e) { throw new RuntimeException(e); } System.exit(0); } 
       
      
    

}

示意图:流式问答实时输出效果

java实战系列学习资料汇总 - beifangbubai的个人空间 -_#DashScope

多轮对话的关键在于上下文记忆
每轮对话时,我们将之前的所有问答拼接为 prompt,再一起传给模型。



比如第 2 轮对话时:

用户:你好

模型:你好呀!很高兴见到你!😊 今天过得怎么样呀?有什么我可以帮你的吗?

用户:我之前问的啥

这样模型就能“记住”对话语境,实现自然的连续问答。

通过本文,我们实现了一个 基于 DashScope Java SDK 的通义千问流式问答 Demo,具有以下特性:

  • 支持多轮对话(上下文记忆)
  • 实时流式输出体验
  • 控制台简单交互

小讯
上一篇 2026-03-19 22:20
下一篇 2026-03-19 22:18

相关推荐

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