项目后端——调用API实现调用大模型功能并向前端返回输出

一、基于hutool

Hutool 是一个小而全的 Java 工具类库,通过封装 JDK 中现有的工具方法,提供了更加简洁、易用、功能强大的工具方法。Hutool 旨在通过提供一套简单、快速的 Java 工具类,帮助开发者提高开发效率,减少代码冗余。

二、服务使用接口设置

由于我们的公网ip绑定了对应的域名,因此我们直接接入域名:

三、函数实现

代码的具体分析见代码中具体注释:

public String chat(String content){
    // 创建一个 Map 对象来存放请求体数据
    Map<String,Object> body = new HashMap<>();
    // 向请求体中添加系统消息和用户输入的提示信息
    body.put("system_message", SYS_MSG);
    body.put("prompt", content);

    String res = "";  // 用于存放请求的响应结果

    try{
        // 发送 HTTP POST 请求
        res = HttpRequest.post(chatEndpoint)
                .header("Content-Type", "application/json")  // 设置请求头,指定内容类型为 JSON
                .body(JSONUtil.toJsonStr(body))  // 将请求体转换为 JSON 字符串
                .execute()  // 执行请求
                .body();  // 获取响应体内容
    }catch (Exception e){
        // 捕获异常并记录警告日志
        log.warn("请求出错");
        e.printStackTrace();  // 打印异常堆栈信息
    }

    // 解析响应结果为 JSON 对象
    JSONObject jsonObject = JSONUtil.parseObj(res);
    // 从 JSON 对象中提取响应内容
    String data = jsonObject.getStr("response");
    // 返回响应内容的子字符串,去掉最后 10 个字符
    return data.substring(0, data.length() - 10);
}

四、修改控制类ChatController

只需要注意将对应的content传入chat函数即可

@PostMapping("/chat")
    public Result chat(@RequestBody SessionVO sessionVO){

        String content = sessionVO.getContent();
        Long sessionId = sessionVO.getSessionId();

        String result = ChatUtil.chat2(content);

        JSONObject resultJson = JSONUtil.parseObj(result);


        if(result.length()>0){
            if((sessionId = cgipSessionService.insertItemPair(sessionId,content,result))>0){
                resultJson.append("sessionId",sessionId);
                return Result.success(resultJson);
            }
        }
        throw new CGIPException("会话建立失败",this.getClass().getName()+"/chat");
    }

五、前端测试

如图显示,我们给出我们需要提取的文档:

已经能够呈现正确的结果输出:

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值