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、调用测试

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐