Skip to content

Commit 73e8336

Browse files
author
Oliver Ivanoski
committed
chore(context):Removed context inline with V2 API
* Refactored context inline with V2 Assistant API, context now is only called when required.
1 parent a396469 commit 73e8336

4 files changed

Lines changed: 23 additions & 27 deletions

File tree

index.js

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,7 @@ const assistant = new AssistantV2({
3232

3333
const date = new Date();
3434
date.setMonth(date.getMonth() + 1);
35-
const newContext = {
36-
global: {
37-
system: {
38-
turn_count: 1,
39-
},
40-
},
35+
const initContext = {
4136
skills: {
4237
'main skill': {
4338
user_defined: {
@@ -97,12 +92,6 @@ app.post('/api/message', (req, res) => {
9792
});
9893
}
9994

100-
const contextWithAcc = (req.body.context) ? req.body.context : newContext;
101-
102-
if (req.body.context) {
103-
contextWithAcc.global.system.turn_count += 1;
104-
}
105-
10695
let textIn = '';
10796

10897
if (req.body.input) {
@@ -113,16 +102,16 @@ app.post('/api/message', (req, res) => {
113102
const payload = {
114103
assistant_id: assistantId,
115104
session_id: req.body.session_id,
116-
context: contextWithAcc,
117105
input: {
118106
message_type: 'text',
119107
text: textIn,
120-
options: {
121-
return_context: true,
122-
},
123108
},
124109
};
125110

111+
if (req.body.isFirstCall || req.body.context) {
112+
payload.context = req.body.context || initContext;
113+
}
114+
126115
// send payload to Conversation and return result
127116
return assistant.message(payload, (err, data) => {
128117
if (err) {

package-lock.json

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/components/App.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,9 @@ class App extends React.Component {
110110
// TODO: wrap in a settimeout of 0
111111
// this puts it within the event loop
112112
// so that rendering
113+
const firstCallVal = true;
113114
setTimeout(() => {
114-
this.routeToPath(this.state.paths[0]);
115+
this.routeToPath(this.state.paths[0], firstCallVal);
115116
}, 0);
116117
}
117118

@@ -183,8 +184,8 @@ class App extends React.Component {
183184
actions.forEach((act) => {
184185
executeClientAction(act)
185186
.then((result) => {
186-
if (!outputObj.context.skip_user_input) {
187-
this.sendMessageToConversation(result.result, this.state.lastMessageContext);
187+
if (outputObj.context === undefined) {
188+
this.sendMessageToConversation(result.result);
188189
} else if (result.result === 'statement') {
189190
const action = executeWorkspaceAction({ statement_display: result.dates });
190191
responses.push(action);
@@ -246,7 +247,7 @@ class App extends React.Component {
246247
}
247248
}
248249

249-
routeToPath(path) {
250+
routeToPath(path, firstCallVal) {
250251
trackEvent('Navigated to Panel', 'Button', 'NavButton');
251252
this.setState({ messages: [] });
252253
this.setState({ currentPath: path.id });
@@ -255,7 +256,7 @@ class App extends React.Component {
255256
// the fetchMessage call clears the existing context
256257
// the sendMessageToConversation call sets the context to the selected
257258
// path
258-
fetchMessage('', null, (err, data) => {
259+
fetchMessage('', null, firstCallVal, (err, data) => {
259260
if (data) {
260261
this.updateConversationContext(data.context);
261262
this.sendMessageToConversation(path.path, this.state.lastMessageContext);
@@ -267,7 +268,7 @@ class App extends React.Component {
267268
sendMessageToConversation(text, context = null) {
268269
this.updateMessageStatus(IN_PROGRESS);
269270

270-
fetchMessage(text, context, (err, data) => {
271+
fetchMessage(text, context, false, (err, data) => {
271272
// data.code is set for an error response
272273
if (err || data.code !== undefined) {
273274
this.updateMessageStatus(FAILED);

src/conversation.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
let sessionId = null;
22

3-
function getMessage(text, context, callback) {
3+
function getMessage(text, context, firstCallVal, callback) {
44
const payload = {
55
session_id: sessionId,
66
input: { text },
77
context,
8+
isFirstCall: firstCallVal,
89
};
9-
1010
fetch('/api/message', {
1111
method: 'POST',
1212
headers: {
@@ -55,18 +55,19 @@ function getSessionId(callback) {
5555
*
5656
* @param {String} text - the inputted text from the user
5757
* @param {Object} context - the current context object for the conversation
58+
* @param {boolean} firstCallVal - determines whether context is to be sent with payload
5859
*/
59-
const fetchMessage = (text, context, callback) => {
60+
const fetchMessage = (text, context, firstCallVal, callback) => {
6061
if (sessionId === null) {
6162
getSessionId((err) => {
6263
if (err) {
6364
console.log(`ERROR ${JSON.stringify(err)}`);
6465
callback(err);
6566
}
66-
getMessage(text, context, callback);
67+
getMessage(text, context, firstCallVal, callback);
6768
});
6869
} else {
69-
getMessage(text, context, callback);
70+
getMessage(text, context, firstCallVal, callback);
7071
}
7172
};
7273

0 commit comments

Comments
 (0)