通义千问大模型调用方法(Java)

依赖准备
确保项目中已引入阿里云SDK依赖(Maven示例):

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.6.3</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>dashscope-sdk-java</artifactId>
    <version>2.8.0</version>
</dependency>

初始化客户端

通过API密钥初始化DashScope客户端:

import com.aliyun.dashscope.client.ApiClient;
import com.aliyun.dashscope.client.Configuration;

ApiClient client = Configuration.getDefaultApiClient();
client.setApiKey("your-api-key"); // 替换为实际API密钥

同步调用示例

发送文本请求并获取生成结果:

import com.aliyun.dashscope.client.models.Message;
import com.aliyun.dashscope.client.models.CompletionRequest;
import com.aliyun.dashscope.client.models.CompletionResponse;

CompletionRequest req = new CompletionRequest()
    .setModel("qwen-turbo")  // 指定模型
    .setPrompt("Java如何实现多线程?")
    .setMaxTokens(1000);

CompletionResponse resp = client.createCompletion(req);
System.out.println(resp.getChoices().get(0).getMessage().getContent());

流式调用示例

处理实时生成的文本流:

import com.aliyun.dashscope.client.models.CompletionChunk;

client.createCompletionStream(req, new ApiCallback<CompletionChunk>() {
    @Override
    public void onChunk(CompletionChunk chunk) {
        System.out.print(chunk.getChoices().get(0).getDelta().getContent());
    }

    @Override
    public void onError(Throwable e) {
        e.printStackTrace();
    }
});

参数说明

常用请求参数:

  • model: 模型名称(如qwen-turbo/qwen-plus)
  • temperature: 生成多样性(0-1)
  • top_p: 核采样阈值(0-1)
  • stream: 是否启用流式输出

错误处理

捕获API异常并处理:

try {
    CompletionResponse response = client.createCompletion(request);
} catch (ApiException e) {
    System.err.println("Status code: " + e.getCode());
    System.err.println("Reason: " + e.getResponseBody());
}

高级功能

支持传入历史对话上下文:

List<Message> messages = new ArrayList<>();
messages.add(new Message("user", "如何用Java写一个HTTP服务器?"));
messages.add(new Message("assistant", "可以使用Java内置的HttpServer..."));

CompletionRequest req = new CompletionRequest()
    .setMessages(messages)
    .setModel("qwen-plus");

注意事项

  1. API密钥需通过阿里云控制台获取
  2. 生产环境建议配置重试机制和超时设置
  3. 流式响应需自行处理拼接逻辑
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐