体验华为云对话机器人服务 CBS

在这里插入图片描述

🏡浩泽学编程个人主页

 🔥 推荐专栏《深入浅出SpringBoot》《java对AI的调用开发》
              《RabbitMQ》《Spring》《SpringMVC》

🛸学无止境,不骄不躁,知行合一


前言

本篇文章体验华为云问答机器人API调用总结的文章,包含遇到的问题,如认鉴权等。


一、开通使用

来到华为云“免费体验中心”——>找到“对话机器人服务”——>开通免费体验
在这里插入图片描述
在这里插入图片描述
在控制台找到对话机器人服务,可以看到机器人ID等信息。
在这里插入图片描述

新建语料

在问答机器人列表中,单击“机器人管理”。在“问答机器人”页面左侧导航栏中选择“知识库 > 问答管理”,在问答管理页面执行如下操作。
在这里插入图片描述

  • 在问答管理中单击在这里插入图片描述按钮新建问题分类,例如“IT问题”。
  • 在问答管理中单击“新建”创建问答语料
    在这里插入图片描述

对话体验

在页面右上角单击“对话体验”,展开对话窗口。在窗口中,输入“蓝屏了怎么办”,查看是否可以获得准确答案。您可以根据业务实际情况进行提问,当机器人无法回答时,建议根据实际情况补充语料或补充扩展问。
在这里插入图片描述

下面我们在现在的对话机器人基础上实现问答接口调用

二、API调用

这里选择java API调用和PostMan调用

  • endpoint是你的开通服务的终端节点:cbs-ext.cn-north-4.myhuaweicloud.com
    在这里插入图片描述
  • project_id:项目id
    在这里插入图片描述
  • qabot_id:机器人id
    在这里插入图片描述

POST:

POST https://{
   endpoint}/v1/{
   project_id}/qabots/{
   qabot_id}/chat

Request Header:
Content-Type: application/json
X-Auth-Token: 认证鉴权的信息
Request Body:
{
   
    "question": "桌面云打不开了"
}

在这里插入图片描述
在这里插入图片描述

Java语言:

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

public class CBSDemo {
   

    public void cbsDemo() {
   
        try {
   
            //endpoint、projectId、qabot_id需要替换成实际信息。
            URL url = new URL("https://{endpoint}/v1/{project_id}/qabots/{qabot_id}/chat");
            String token = "用户获取得到的实际token值";
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("POST");
            connection.setDoInput(true);
            connection.setDoOutput(true);
            connection.addRequestProperty("Content-Type", "application/json");
            connection.addRequestProperty("X-Auth-Token", token);

            //输入参数
            String body = "{\"question\": \"用户问\"}";

            OutputStreamWriter osw = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
            osw.append(body);
            osw.flush();
            InputStream is = connection.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
            while (br.ready()) {
   
                System.out.println(br.readLine());
            }
        } catch (Exception e) {
   
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
   
        CBSDemo CBSDemo = new CBSDemo();
        CBSDemo.cbsDemo();
    }
}

现在Token的值大家还不知道,继续往下看。

三、认证鉴权问题

这里遇到的问题就是认证鉴权问题,说一下:华为云的这个token获取,出现错误返回的概率很大,解决和原因下面我会讲解。

这里介绍Token认证:通过Token认证通用请求

POST: https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens
{
   
    "auth": {
   
        "identity": {
   
            "methods": [
                "password"
            ],
            "password": {
   
                "user": {
   
                    "name": "***",
                    "password": "***",
                    "domain": {
   
                        "name": "***"
                    }
                }
            }
        },
        "scope": {
   
            "project": {
   
                "name": "cn-north-4"
            }
        }
    }
}

上面的***都是需要替换的,替换成你的。

Token获取

控制台找到“我的凭证”:
在这里插入图片描述

在这里插入图片描述
将上面图片的账号名填在下面:

POST: https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens

{
   
    "auth": {
   
        "identity": {
   
            "methods": [
                "password"
            ],
            "password": {
   
                "user": {
   
                    "name": "***",
                    "password": "自己的密码,如果自己以前没印象用过这个,很大概率是你的华为云账号的密码",
                    "domain": {
   
                        "name": "账号名"
                    }
                }
            }
        },
        "scope": {
   
            "project": {
   
                "name": "cn-north-4"
            }
        }
    }
}

这里还有个name的值没有填,但也是很多开发者出现错误返回的原因:当你的统一认证的用户组只有admin时是不行的,这个具体原因我不太清楚,主要是华为云控制台自带的初始admin用户组是不行的,你需要自己创建一个新的用户组,创建一个新的用户添加到新创建的用户组就可,大致流程如下:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这时,上面的name就是haoze了,具体是你创建的用户名。

然后用PostMan工具发送请求得到返回的token:
在这里插入图片描述

没有PostMan的可以使用华为云控制台的API Explorer工具
在这里插入图片描述
在这里插入图片描述


总结

以上就是华为对话机器人服务的体验讲解以及问题解决。

相关推荐

  1. 华为服务介绍(二)

    2024-01-27 06:18:02       68 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-27 06:18:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-27 06:18:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-27 06:18:02       82 阅读
  4. Python语言-面向对象

    2024-01-27 06:18:02       91 阅读

热门阅读

  1. linux 磁盘标签类型MBR转换为GPT

    2024-01-27 06:18:02       45 阅读
  2. Hadoop与Spark横向比较【大数据扫盲】

    2024-01-27 06:18:02       51 阅读
  3. conda多虚拟环境的搭建与切换

    2024-01-27 06:18:02       57 阅读
  4. 网闸网络ip端口映射原理分析

    2024-01-27 06:18:02       43 阅读
  5. C++中实现容器迭代的3种方法

    2024-01-27 06:18:02       47 阅读
  6. 机器学习揭秘:理解神经网络的运作机制

    2024-01-27 06:18:02       51 阅读
  7. 【npm包】如何发布自己的npm包

    2024-01-27 06:18:02       54 阅读
  8. 如何发布自己的npm包,详细流程

    2024-01-27 06:18:02       57 阅读