oracle11g安装教程

在这里和那里,我们看到了许多预测,很快聊天机器人将在用户与其系统之间的通信中发挥关键作用。 我没有水晶球,也不想等待这个“很快”,所以我决定现在就使这些预言成真,看看它的样子。

我正在工作的公司的标志产品是FlexDeploy ,它是一种完全自动化的DevOps解决方案。 FlexDeploy中最受欢迎的活动之一是创建一个发行快照,该快照实际上会构建所有可部署的工件,并使用管道在环境之间部署它们。

因此,我决定在周末玩得开心,并为此操作实现了一个对话式UI,可以与FlexDeploy进行对话从字面上看。 在工作结束时,我的家人看到我正在和笔记本电脑聊天,他们可以听到类似的声音:

“ Calypso!” 我说。

“嗨,我能为您提供什么帮助?” 就是答案。

“不确定”我测试了她。

“你在开玩笑吧!” 她明白了。

“您可以建立快照吗?” 我问。

“当然,您在想什么版本?”

“ 1001”

她报告说: “为版本1001创建了快照”

“谢谢”

“今天过得愉快。”她松了一口气。

因此,基本上,我将实现以下图表:

作为UI的核心组件,我使用了全新的Oracle产品Oracle Digital Assistant 。 我建立了一种能够基本聊天的新技能,并实现了一个新的自定义组件,因此我的机器人能够调用http请求以使后端系统创建快照。 FlexDeployBot技能以及自定义组件的Node.js源代码的导出在本文的GitHub存储库中可以使用custombotcomponent

我将MacBook用作能够听和说的通信设备,并为机器人定义了一个Webhook通道,以便可以向其发送消息并获取带有响应的回调。

在上面的图上看起来很简单。 唯一的事情是,我想使我的聊天机器人的大脑与通信设备的详细信息以及后端系统FlexDeploy的安装/版本的详细信息脱钩。 我需要一个中间的API层,一个缓冲区,在ODA和外部世界之间放置一些东西。 看起来无服务器功能非常适合这项工作。

作为无服务器平台,我使用了Fn Project 。 它的优点在于,它是一个完全基于Docker容器的无容器平台的无服务器平台,可以轻松地在我的笔记本电脑(我在本文中所做的工作)或在云中的某个地方(例如在Oracle Kubernetes Engine上)本地运行

好的,让我们从图的左到右深入了解实现细节。

因此,侦听器组件,耳朵是可以识别我的语音并将其转换为文本的组件,是使用Python实现的

该组件的关键代码片段如下所示(完整的源代码可在GitHub上找到):

r = sr.Recognizer()
mic = sr.Microphone()with mic as source:r.energy_threshold = 2000while True:  try:with mic as source: audio = r.listen(source, phrase_time_limit=5)           transcript = r.recognize_google(audio)print(transcript)if active:requests.post(url = URL, data = transcript)time.sleep(5)except sr.UnknownValueError:print("Sorry, I don't understand you")

为什么是Python ? 有很多可用的Python语音识别库,因此您可以使用它们,并选择一个更了解自己口音的库。 我喜欢Python。

因此,一旦听众识别出我的语音,它将调用Fn函数,将该短语作为请求正文传递。

函数sendToBotFn是通过Node.js实现的:

function buildSignatureHeader(buf, channelSecretKey) {return 'sha256=' + buildSignature(buf, channelSecretKey);
}function buildSignature(buf, channelSecretKey) {const hmac = crypto.createHmac('sha256', Buffer.from(channelSecretKey, 'utf8'));hmac.update(buf);return hmac.digest('hex');
}function performRequest(headers, data) {var dataString = JSON.stringify(data);var options = {body: dataString,
headers: headers};request('POST', host+endpoint, options);
}function sendMessage(message) {let messagePayload = {type: 'text',text: message}let messageToBot = {userId: userId,messagePayload: messagePayload}let body = Buffer.from(JSON.stringify(messageToBot), 'utf8');let headers = {};headers['Content-Type'] = 'application/json; charset=utf-8';headers['X-Hub-Signature'] = buildSignatureHeader(body, channelKey);performRequest(headers, messageToBot);
}fdk.handle(function(input){ sendMessage(input); return input;
})

为什么选择Node.js? 不是因为我喜欢。 否。这是因为有关实现自定义Web挂钩通道的Oracle文档是指Node.js。 他们喜欢。

当聊天机器人响应时,它正在调用Webhook,该Webhook指的是在笔记本电脑上运行的Fn函数receiveFromBotFn我使用ngrok隧道将我侦听localhost:8080的Fn应用程序公开到Internet。 receiveFromBotFn函数也通过Node.js实现:

const fdk=require('@fnproject/fdk');
const request = require('sync-request');
const url = 'http://localhost:4390';
fdk.handle(function(input){  var sayItCall = request('POST', url,{body: input.messagePayload.text,});return input;
})

该功能将http请求发送到在本地运行并监听4390端口的简单Web服务器。

我必须承认,使用Node.js实现类似的事情非常容易。 Web服务器使用Mac OS X本机实用程序说出请求正文中出现的所有内容:

var http = require('http');
const exec = require("child_process").exec
const request = require('sync-request');http.createServer(function (req, res) {let body = '';req.on('data', chunk => {body += chunk.toString();});req.on('end', () => {       exec('say '+body, (error, stdout, stderr) => {});       res.end('ok');});res.end();}).listen(4390);

为了实际调用后端来创建一个快照与FlexDeploy与custombotcomponentFn功能createSnapshotFn的聊天机器人所调用:

fdk.handle(function(input){var res=request('POST',fd_url+'/flexdeploy/rest/v1/releases/'+input+'/snapshot',  {json: {action : 'createSnapshot'},});return JSON.parse(res.getBody('utf8'));
})

该函数很简单,它仅调用FlexDeploy REST API即可开始为给定版本构建快照。 它也可以用Node.js实现,但是我将用Java重写它。 我爱Java。 此外,我将实现一个Fn Flow ,而不是一个简单的函数,该流程首先检查给定的发行版是否存在以及该发行版是否有效,然后才为该发行版调用createSnapshotFn函数。 在下一篇文章中。

而已!

翻译自: https://www.javacodegeeks.com/2018/12/conversational-assistant-fn-project.html

oracle11g安装教程

oracle11g安装教程_带有Oracle Digital Assistant和Fn Project的会话式UI相关推荐

  1. 查看oracle会话和进程_带有Oracle Digital Assistant和Fn Project的会话式UI

    查看oracle会话和进程 在这里和那里,我们看到了无数的预测,很快聊天机器人将在用户与其系统之间的通信中扮演关键角色. 我没有水晶球,也不想等待这个"很快",所以我决定现在就使这 ...

  2. 查看oracle会话和进程_带有Oracle Digital Assistant和Fn Project的会话式UI。 第三部分,迁移到云...

    查看oracle会话和进程 在这篇文章中,我将继续在Oracle Digital Assistant和Oracle Digital Assistant之上为FlexDeploy实现对话式UI的故事. ...

  3. 带有Oracle Digital Assistant和Fn Project的会话式UI

    在这里和那里,我们看到许多预测,很快聊天机器人将在用户与其系统之间的通信中扮演关键角色. 我没有水晶球,也不想等待这个"很快",所以我决定现在就使这些预言成真,看看它的样子. 我正 ...

  4. 带有Oracle Digital Assistant和Fn Project的会话式UI。 第三部分,迁移到云

    在本文中,我将继续讲述在Oracle Digital Assistant和Oracle Digital Assistant的 基础上为FlexDeploy实现对话式UI的故事. Fn项目 . 今天,我 ...

  5. 带有Oracle Digital Assistant和Fn Project的会话式UI。 第二部分

    在上一篇文章中,我使用Oracle Digital Assistant为FlexDeploy实现了一个对话式UI. 今天,我将用Fn Flow丰富它,以便聊天机器人接受发行名称而不是ID来创建快照. ...

  6. Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04

    给力星 追逐内心的平和 首页 笔记 搜藏 代码 音乐 关于 Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04 2014-08-09 (updated: 2016 ...

  7. win10、win7系统64位oracle11g安装教程以及32位plsql连接教程

    win10.win7系统64位oracle11g安装教程以及32位plsql连接教程 转载cxin917 最后发布于2016-02-05 14:16:55 阅读数 24354  收藏 展开 win10 ...

  8. 02Hadoop安装教程_单机、伪分布式配置

    02 Hadoop2.7 安装教程_单机.伪分布式配置 文章目录 **02** Hadoop2.7 安装教程_单机.伪分布式配置 **1.hadoop基础知识** 1.1 hadoop是什么? 1.2 ...

  9. Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇

    Oracle11g安装教程.配置实例.监听.客户端程序详解_Windows篇 文章目录 Oracle11g安装教程.配置实例.监听.客户端程序详解_Windows篇 前言 一.数据库的安装前准备,前提 ...

最新文章

  1. rust房子 如何拆除_小产权房“依法拆除”?中央新文件透露“1个新信号”
  2. Mysql Explain 详解
  3. wxWidgets:wxFileCtrlEvent类用法
  4. C++内存管理全景指南
  5. 数组去重的4种方法(Which one is the fastest???嘻嘻嘻....)
  6. Codeforces Round #722 (Div. 2)
  7. mybatis介绍(一)
  8. Python 图形 GUI 库 pyqtgraph
  9. Sublime Text 3 - 设置自动换行
  10. 棋牌游戏服务器架构设计
  11. server: WebGame服务端架构分析
  12. 三极管在ad中的原理图库_Altium Designer原理图元器件库详细说明
  13. 红米Note5官方刷机日记 - 小米助手Recovery刷机
  14. python 什么是鸭子类型
  15. mac的mysql关机后打不开了_mysql for mac服务无法启动
  16. C#:List泛型集合
  17. 三维旋转矩阵 左乘和右乘分析
  18. A1010——Radix(好多测试点…)
  19. redis数据库的设计实例
  20. 诺基亚Lumia920竞争力分析——对比三星Ativ S、Galaxy S3、HTC One X、Iphone5

热门文章

  1. AWS中联网Amazon VPC相关概念
  2. 阿里云杨国彦:云上护航,陪伴成长
  3. 国内比较好的软件接单平台有哪些?
  4. 模拟频率、数字频率、模拟角频率之间的关系
  5. Android 手机重启相关内容
  6. 460. LFU缓存
  7. 【摸鱼吃瓜工作录】刚到公司,如何让项目经理对你刮目相看
  8. 腾讯企业邮箱管理权限可实现什么?
  9. 怎么把图片的文字提取出来?
  10. Android利用jsoup爬虫爬网页数据(二)