当前位置:   article > 正文

百度智能测试 - ERNIE-Bot-4(邀测)_java调用ernie-bot 4.0的demo

java调用ernie-bot 4.0的demo

百度智能测试

ERNIE-Bot-4(邀测)

前几天百度 ERNIE-Bot-4 邀测了,首先很感谢百度的信任。我这边使用的是百度云 API 测试平台测试。下面一起看看效果吧

1.智能方面,是否能设置 AI 性格

根据上述截图,可以看出,还是有些问题的,无法通过对话给 AI 设置人物性格和角色

2.接下来试试代码能力

继续要求写代码

代码示例:

前端部分(uni-app):在pages/index/index.vue文件中:

<template>
  <view>
    <textarea v-model="markdownText" @input="previewMarkdown"></textarea>
    <view v-html="htmlText"></view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      markdownText: '',
      htmlText: ''
    };
  },
  methods: {
    previewMarkdown() {
      // 将Markdown文本转换为HTML格式
      // 这里使用了一个简单的示例,实际情况下可以使用更完整的Markdown转HTML库
      this.htmlText = this.markdownText.replace(/^# (.+)/gm, '<h1>$1</h1>');
    }
  }
};
</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

后端部分(Spring Boot):
MarkdownController.java文件中:

package com.example.demo.controller;

import org.springframework.web.bind.annotation.*;

@RestController
public class MarkdownController {
    @PostMapping("/save")
    public String saveMarkdown(@RequestParam String markdownText) {
        // 保存Markdown文本到文件或数据库
        // 这里只是简单示例,实际情况下需要根据需求进行实现
        System.out.println(markdownText);
        return "保存成功";
    }

    @GetMapping("/load")
    public String loadMarkdown() {
        // 从文件或数据库中读取Markdown文本并返回给前端
        // 这里只是简单示例,实际情况下需要根据需求进行实现
        return "# Hello, Markdown!";
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

这。。。或许是我没有表述的很明确吧

3.想让 AI 写一个较完整一些的功能

3.1 先写个后端对接百度 API

代码示例:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.client.RestTemplate;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

@Controller
public class ErnieBotController {

    @Value("${erniebot.appId}")
    private String appId;

    @Value("${erniebot.appSecret}")
    private String appSecret;

    @GetMapping("/erniebot")
    @ResponseBody
    public String ernieBot(@RequestParam("text") String text) {
        try {
            // 构建请求URL
            String url = "https://api.erniebot.com/v4/text?app_id=" + appId + "&app_secret=" + appSecret;

            // 创建RestTemplate实例
            RestTemplate restTemplate = new RestTemplate();

            // 构建请求参数
            ObjectMapper objectMapper = new ObjectMapper();
            JsonNode requestJson = objectMapper.readTree("{\"text\":\"" + text + "\"}");

            // 发送请求并获取响应
            String response = restTemplate.postForObject(url, requestJson, String.class);

            // 处理响应数据
            JsonNode responseJson = objectMapper.readTree(response);
            String result = responseJson.get("result").asText();

            return result;
        } catch (Exception e) {
            return "Error: " + e.getMessage();
        }
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

代码示例:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.client.RestTemplate;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

@Controller
public class ErnieBotController {

    @Value("${erniebot.appId}")
    private String appId;

    @Value("${erniebot.appSecret}")
    private String appSecret;

    @PostMapping("/erniebot")
    @ResponseBody
    public String ernieBot(@RequestBody String requestBody) {
        try {
            // 解析请求参数
            ObjectMapper objectMapper = new ObjectMapper();
            JsonNode requestJson = objectMapper.readTree(requestBody);
            String text = requestJson.get("text").asText();

            // 构建请求URL
            String url = "https://api.erniebot.com/v4/text?app_id=" + appId + "&app_secret=" + appSecret;

            // 创建RestTemplate实例
            RestTemplate restTemplate = new RestTemplate();

            // 发送请求并获取响应
            String response = restTemplate.postForObject(url, requestJson, String.class);

            // 处理响应数据
            JsonNode responseJson = objectMapper.readTree(response);
            String result = responseJson.get("result").asText();

            return result;
        } catch (Exception e) {
            return "Error: " + e.getMessage();
        }
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50

一个特别简单、粗暴的 DEMO

3.2 写个页面试下

代码示例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>智能客服</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 20px;
        }

        .container {
            max-width: 800px;
            margin: 0 auto;
        }

        .input-area {
            display: flex;
            align-items: center;
            margin-bottom: 20px;
        }

        #input-text {
            flex: 1;
            padding: 10px;
            border: 1px solid #ccc;
            border-radius: 4px;
            font-size: 16px;
        }

        #send-button {
            padding: 10px 20px;
            background-color: #4CAF50;
            color: white;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            font-size: 16px;
        }

        #output-text {
            border: 1px solid #ccc;
            padding: 10px;
            border-radius: 4px;
            font-size: 16px;
            height: 150px;
            overflow-y: scroll;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="input-area">
            <input type="text" id="input-text" placeholder="请输入问题">
            <button id="send-button">发送</button>
        </div>
        <div id="output-text"></div>
    </div>

    <script>
        document.getElementById('send-button').addEventListener('click', function() {
            var inputText = document.getElementById('input-text').value;
            var outputText = document.getElementById('output-text');
            outputText.innerHTML += '我:' + inputText + '\n';
            // 在这里调用后端API,将inputText发送给智能客服,并将返回的结果追加到outputText中
        });
    </script>
</body>
</html>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72

页面效果

还可以够简单,做到了自适应

3.3 终极大招 ====>> 合并整合,实现完整的项目

沃特 …页面直接崩了,然后关闭了,我再次打开,然后一直显示这个加载…

总结

  1. 总体来说还是有进步的,校之前版本,历史记忆这块应该是有明显进步的,之前测试历史版本,一个需求,问几次之后,就无法记忆之前的信息,这次简单测试,明显感觉历史记忆这块是可以的
  2. 但是我不知道最后整合这块是出现什么问题了,是因为整合时信息量过大吗?还是咋回事,目前我这块还未给官方反馈,今天就是简单的测试了下
  3. 目前人工智能写代码这块,确实还是有一些问题的,写出来的还是一些简单的 demo,无法形成完整的项目,之前也是使用 GPT3.5,大概也是无法实现完整的,直接能上线的项目的,据说 GPT4.0 功能很强大,我没有具体的去测试

最后给大家推荐一个 微信小程序 :蕾宝学习库,助力幼小衔接

微信搜索: 蕾宝学习库
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/316779
推荐阅读