使用阿里云百炼大模型接入DeepSeek创建你的第一个对话示例
申请阿里云百炼大模型【API-KEY】,创建一个javaWeb项目,导入相关依赖。
·
1、准备工作
申请阿里云百炼大模型【API-KEY】,创建一个javaWeb项目,导入相关依赖。
具体操作可查看上一发布的博客:
使用阿里云百炼大模型接入Deepseek创建你的第一个AI程序-CSDN博客
2、创建一个工具类,连接阿里云百炼大模型以及使用提供的消息调用生成对话信息
public class BaiLianAiUtils {
private static final String apiKey = "阿里云百炼大模型中申请的API-KEY";
private static final String chatModel = "模型名称";
/**
* 使用提供的消息调用生成接口。
*
* @param message 用户输入的消息内容
* @return 生成结果
* @throws NoApiKeyException 若未提供API Key时抛出
* @throws InputRequiredException 若输入为空时抛出
*/
public static GenerationResult callWithMessage(String message) throws NoApiKeyException, InputRequiredException {
// 创建Generation对象
Generation gen = new Generation();
// 构建用户消息
Message userMsg = Message.builder()
.role(Role.USER.getValue()) // 设置消息角色为用户
.content(message) // 设置消息内容
.build(); // 构建消息对象
// 构建生成参数
GenerationParam param = GenerationParam.builder()
// 若没有配置环境变量,请用百炼API Key将下行替换为:.apiKey("sk-xxx")
.apiKey(apiKey) // 设置API Key
.model(chatModel) // 设置模型
.messages(Arrays.asList(userMsg)) // 设置消息列表
.resultFormat(GenerationParam.ResultFormat.MESSAGE) // 设置结果格式
.build(); // 构建生成参数对象
// 调用生成接口并返回结果
return gen.call(param);
}
}
3、创建接口
/**
* 测试与AI的对话接口。
*
* @param message 用户输入的消息内容
* @return 返回输入内容和AI回复的字符串
* @throws NoApiKeyException 若未提供API Key时抛出
* @throws InputRequiredException 若输入为空时抛出
*/
@CrossOrigin
@GetMapping(value="/ai/testDialogue", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public String testDialogue(@Parameter String message) {
// 创建一个StringBuffer对象,用于拼接字符串
StringBuilder sb = new StringBuilder();
try {
// 调用BaiLianAiUtils类的callWithMessage方法,传入用户输入的消息内容,获取生成结果
GenerationResult result = BaiLianAiUtils.callWithMessage(message);
// 拼接输入内容到StringBuffer中
sb.append("输入内容:" + message + "\n");
// 拼接AI回复内容到StringBuffer中
sb.append("回复内容:" + result.getOutput().getChoices().get(0).getMessage().getContent());
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
// 捕获ApiException、NoApiKeyException和InputRequiredException异常
// 使用日志框架记录异常信息
System.err.println("An error occurred while calling the generation service: " + e.getMessage());
}
// 返回拼接后的字符串
return sb.toString();
}
4、调用测试

更多推荐



所有评论(0)