ibm java 维护机器人_IBM watson 部署一个对话机器人,Java调用 Assistant API

整体步骤

注册一个IBM账户,http://console.bluemix.net

在控制台(Dashboard)创建资源(Create resource)

点击 Watson Assistant 服务

填写服务名称、想要部署的区域,创建一个Watson Assistant服务

启动工具(Launch tool)

65c9b55522ed6c14caf1bda173bb8c7a.png

创建Skill

2382534d3099624c472bb3930d9c5971.png

创建Assistants

创建一个assistant,并把之前建立好的skill添加进assistant。

assistant详情页中包含一个分享链接可以在网页上试用,也包含了API调用所需的id、url、username、password。

我的watson asistant 分享试用地址:https://assistant-chat-jp-tok.watsonplatform.net/web/public/c24919e6-ff48-42c1-99c2-63a66df7f75b

07bf2d7e9d1720bbe8a362cc6c34ca7a.png

Skill 构建步骤

构建一个skill大致需要创建intents、entities、dialog。

intents为用户意图;entities为需要理解的一些实体;dialog串起整个对话。

以预定餐厅为例:用户意图为 “我想订位置”;entities为星期几、时间、几个人这些元素;dialog告诉机器人接收到“我想订位置” 这个意图时,需要问什么、答什么。

Creating Intents

参考教程:https://cloud.ibm.com/docs/services/assistant?topic=assistant-intents#intents

Creating Entities

参考教程:https://cloud.ibm.com/docs/services/assistant?topic=assistant-entities#entities

Build Dialog

参考教程:https://cloud.ibm.com/docs/services/assistant?topic=assistant-dialog-overview#dialog-overview

我参考教程视频建立的Skill的json配置文件:

http://note.youdao.com/noteshare?id=4fb9d8bd65c31c23f1f6a2866bb952c5

机器人发布到web上

参考教程:http://www-31.ibm.com/ibm/cn/ur/event/pdf/integrate_to_web.pdf

Java调用

参考 demo:https://github.com/watson-developer-cloud/java-sdk

demo 中关于 assistant 的说明:https://github.com/watson-developer-cloud/java-sdk/blob/master/assistant/README.md

我用的是v2接口,但 demo 没有说明参数都是哪里来的、缺少Endpoint设置、缺少sessionId获取,调试过程中出现过如下问题:

Unauthorized: Access is denied due to invalid credentials. Tip: Did you set the Endpoint?

{“code”:401, “error”: “Unauthorized”}

{“error”:“Resource not found”,“code”:404}

最终运行通过的代码如下:

Gradle

compile group: 'com.ibm.watson.developer_cloud', name: 'assistant', version: '6.14.0'

测试函数

public static void main(String[] args) throws Exception {

String assistantId = "XXXXXXXXXXXXXXXXXXX"; // Assistant 详情页的Assistant ID

String url = "https://gateway-tok.watsonplatform.net/assistant/api"; // Assistant 详情页的Assistant URL的一部分

String username = "apikey"; // Assistant 详情页的 Service Credentials 的 Username

String password = "XXXXXXXXXXXXXXXXXXX"; // Assistant 详情页的 Service Credentials 的 Password

Assistant service = new Assistant("2019-03-15"); // 随意

service.setEndPoint(url);

service.setUsernameAndPassword(username, password);

CreateSessionOptions createSessionOptions = new CreateSessionOptions.Builder()

.assistantId(assistantId)

.build();

SessionResponse sessionResponse = service.createSession(createSessionOptions).execute();

String sessionId = sessionResponse.getSessionId();

MessageInput input = new MessageInput.Builder()

.text("Hi")

.build();

MessageOptions messageOptions = new MessageOptions.Builder()

.assistantId(assistantId)

.sessionId(sessionId)

.input(input)

.build();

MessageResponse messageResponse = service.message(messageOptions).execute();

System.out.println(messageResponse);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值