-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
159 lines (124 loc) · 4.77 KB
/
app.js
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
/*eslint-env node*/
//------------------------------------------------------------------------------
// node.js starter application for Bluemix
//------------------------------------------------------------------------------
var express = require('express');
var extend = require('util')._extend;
// cfenv provides access to your Cloud Foundry environment
// for more info, see: https://www.npmjs.com/package/cfenv
var cfenv = require('cfenv');
var Rnr = require('./modules/rnr');
// create a new express server
global.app = express();
var expressWs = require('express-ws')(app);
var fs = require('fs');
global.watson = require('watson-developer-cloud');
var stt = require("./stt")(app);
var dialog_service = watson.dialog({
username: '1293409a-12c0-4234-8d84-eff15a10b5db',
password: 'nNA413mnZYwR',
version: 'v1'
});
app.get('/create', function(req, res, next) {
var createParams = {
name: 'rapiro-nodejs',
file: fs.createReadStream('./dialogs/robot.xml')
};
dialog_service.createDialog(createParams, function(err, dialog) {
if (err)
console.log(err)
else
console.log(dialog);
});
});
var dialog_id = 'c1675894-c361-47de-8407-5f66a51a3f85';
var updateParams = {
dialog_id: dialog_id,
file: fs.createReadStream('./dialogs/robot.xml')
};
dialog_service.updateDialog(updateParams, function(err, dialog) {
if (err)
console.log(err)
else
console.log(dialog);
});
/*dialog_service.getDialogs({}, function(err, dialogs) {
if (err)
console.log(err)
else
console.log(dialogs);
});*/
app.get('/conversation', function(req, res, next) {
var dialogParams = {
conversation_id: req.query.conversation_id == null ? '' : parseInt(req.query.conversation_id),
dialog_id: dialog_id,
client_id: req.query.client_id == null ? '' : parseInt(req.query.client_id),
input: req.query.input
};
dialog_service.conversation(dialogParams, function(err, results) {
if (err) {
console.log(err)
} else {
console.log(results);
var converAry = new Array();
var converseOuts = results.response;
var input = results.input;
var actionParams = null;
for( var i=0; i<converseOuts.length; i++) {
if( converseOuts[i].indexOf('Backend_Action') >= 0 ) {
actionParams = JSON.parse(converseOuts[i]);
//break;
} else {
converAry.push( converseOuts[i] );
}
}
if( actionParams != null && actionParams.Backend_Action != null && actionParams.Backend_Action != '' ) {
if( actionParams.Backend_Action == 'sayHello' ) {
converAry.unshift("你好," + (actionParams.Person_Name).replace(/\s+/g,"") + ",很高兴认识你。");
results.response = converAry;
res.json({ dialog_id: dialog_id, conversation: results});
res.end();
} else if( actionParams.Backend_Action == 'rnr' ) {
var rnr = new Rnr();
//rnr.question(actionParams.Question, function(answer) {
var q = input.replace(/\s+/g,"");
rnr.question(q, function(answer) {
if( answer == "0" ) {
converAry.unshift("对不起,我的知识库里没有找到关于这个问题的答案");
} else {
converAry.unshift(answer);
}
results.response = converAry;
res.json({ dialog_id: dialog_id, conversation: results});
res.end();
});
}
} else {
results.response = converAry;
res.json({ dialog_id: dialog_id, conversation: results});
res.end();
}
}
});
//getProfiles(req.query.client_id);
});
app.get('/profile', function(req, res, next) {
var params = extend({ dialog_id: dialog_id }, req.query);
console.log(JSON.stringify(req.query));
console.log("[app.js - profile] params:" + JSON.stringify(params) );
dialog_service.getProfile(params, function(err, results) {
if (err)
return next(err);
else
res.json(results);
});
});
// serve the files out of ./public as our main files
app.use(express.static(__dirname + '/public'));
// get the app environment from Cloud Foundry
var appEnv = cfenv.getAppEnv();
// start server on the specified port and binding host
app.listen(appEnv.port, '0.0.0.0', function() {
// print a message when the server starts listening
console.log("server starting on " + appEnv.url);
});