SpringBoot实现简单AI问答(百度千帆)

第一步:注册并登录百度智能云,创建应用并获取自己的APIKey与SecretKey,参考网址:

点击去百度智能云

第二步:引入千帆的pom依赖

xml 复制代码
		<dependency>
            <groupId>com.baidubce</groupId>
            <artifactId>qianfan</artifactId>
            <version>0.0.9</version>
        </dependency>

第三步:创建前端需要的controller

java 复制代码
import com.baidubce.qianfan.core.auth.Auth;
import com.lx.vue.common.resp.ResultData;
import com.lx.vue.common.resp.ReturnCodeEnum;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import com.baidubce.qianfan.Qianfan;
import com.baidubce.qianfan.core.builder.ChatBuilder;
import com.baidubce.qianfan.model.chat.ChatResponse;

@RestController
public class QianFanController {

    private static final String APIKey = "你的APIKey";
    private static final String SecretKey = "你的SecretKey";

    private static Qianfan qianfan = new Qianfan(Auth.TYPE_OAUTH,APIKey, SecretKey);


    @PostMapping("/ai/sendMsg")
    public ResultData sendMsg(@RequestBody String problem) {
        String result = null;
        try {
            result = chat(problem);
        } catch (Exception e) {
            e.printStackTrace();
            return new ResultData(ReturnCodeEnum.RC500.getCode(),"服务暂不可用",null);
        }
        return new ResultData(ReturnCodeEnum.RC200.getCode(),ReturnCodeEnum.RC200.getMessage(),result);
    }

    private static String chat(String problem) {
        ChatBuilder bulder = qianfan.chatCompletion()
                .model("ERNIE-Speed-8K");//你要使用的大模型款式,最好和我一样,其他的很有可能是收费的
            bulder.addMessage("user",problem);//你的问题  
        ChatResponse response = bulder.execute();
        return response.getResult();
    }
}

第四步:前端进行调用,并动态将自己的问题与AI的回答填入Vue页面

相关推荐
唐青枫14 小时前
Java ReentrantLock 实战详解:比 synchronized 更灵活的可重入锁
java
ShiXZ21315 小时前
Java 8 Stream API 实用技巧详解:从入门到精通
java·开发语言
C++、Java和Python的菜鸟15 小时前
第9章 后端Web进阶(AOP)
java·开发语言·前端
东北赵四16 小时前
关于Java泛型的知识点及其相关面试题
java·windows·python
姓蔡小朋友16 小时前
Java线程并发
java·开发语言·python
执笔画流年呀16 小时前
⾃动化测试常⽤函数
java·dubbo
疯狂打码的少年16 小时前
【面向对象】UML概述(基本构造块:事物/关系/图)
java
一水17 小时前
TTFT优化:一个方案的5次推倒重来
java·ai·状态模式
AC赳赳老秦17 小时前
CSDN 技术社区数据采集:OpenClaw 抓取公开技术热帖,生成领域技术热点周报
java·大数据·前端·数据库·python·php·openclaw
磁爆步兵17 小时前
内存分区:程序运行的核心秘密
java·开发语言·jvm