1、账号注册
首先注册阿里云账号
2、开通百炼模型服务,以获得免费额度
百炼控制台地址
3、百炼控制台页面左下方,选择API KEY 然后创建我的API KEY
4、配置java环境
java -version
为了使用DashScope Java SDK,您的Java需要在Java 8或以上版本
5、项目中引入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dashscope-sdk-java</artifactId>
<version>2.8.3</version>
</dependency>
6、调用大模型API
package com.xxj.controller;
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 org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
@RestController
@RequestMapping("/apiTest")
public class TestAiController {
@RequestMapping(value = "/ai", method = {RequestMethod.GET})
public String testAi(String params) {
GenerationResult result = null; // 在 try 块外定义 result
try {
result = callWithMessage(params);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent());
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.err.println("错误信息:" + e.getMessage());
System.out.println("请参考文档:https://help.aliyun.com/zh/model-studio/developer-reference/error-code");
// 返回错误响应
return e.getMessage();
}
return result.getOutput().getChoices().get(0).getMessage().getContent();
}
public static GenerationResult callWithMessage(String params) 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(params)
.build();
GenerationParam param = GenerationParam.builder()
// 若没有配置环境变量,请用百炼API Key将下行替换为:.apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
//.apiKey("sk-88df12bad75f4848a41bfa353f006666")
// 模型列表: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);
}
}
7、测试
8、配置API KEY到环境变量中,从而避免在代码里显式地配置API Key,降低泄漏风险。
在Windows系统中,可以通过系统属性、CMD或PowerShell配置环境变量。
如果希望API Key环境变量在当前用户的所有新会话中生效,可以按如下操作。
(1)、在CMD中运行以下命令。
setx DASHSCOPE_API_KEY "YOUR_DASHSCOPE_API_KEY"
(2)、打开一个新的CMD窗口运行以下命令,检查环境变量是否生效。
echo %DASHSCOPE_API_KEY%