이 작업은 복잡해 보일 수 있지만이 작업을 수행하는 데는 1 주일 반을 소비 했으므로 알아낼 수는 없습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있기를 바랍니다. 정말 고맙습니다!Node.js - IBM Watson Discovery 및 Conversation Services 결합
대화 봇을 생성하기 위해 IBM Watson 및 Node.js와 협력하고 있습니다. 나는 로봇을 만들었고 IBM의 예제 프로그램 중 하나 (Conversation-Simple)를 사용하여 웹 사이트가 로봇과 상호 작용할 수있게했다. 그것으로 모든 것이 작동합니다. 이제 Watson의 Discovery를 사용하여 문서를 검색하고 쿼리 응답과 함께 질문에 응답하려고합니다. Discovery는 쿼리 할 수있는 곳에서 작동하며 쿼리 할 Node.js 프로그램이 있습니다.
이제 두 개를 연결하려고합니다. 대화에서 검색을 쿼리 할 준비가되면 query
이라는 인 텐트로 이동합니다.
왓슨이 응답을 보내고 응답의 변수가 currentText
인 것처럼 보입니다. 나는 틀릴 수도 있지만 그 것처럼 보입니다.
function buildMessageDomElements(newPayload, isUser) {
var textArray = isUser ? newPayload.input.text : newPayload.output.text;
if (Object.prototype.toString.call(textArray) !== '[object Array]') {
textArray = [textArray];
}
var messageArray = [];
textArray.forEach(function(currentText) {
if (currentText) {
var messageJson = {
// <div class='segments'>
'tagName': 'div',
'classNames': ['segments'],
'children': [{
// <div class='from-user/from-watson latest'>
'tagName': 'div',
'classNames': [(isUser ? 'from-user' : 'from-watson'), 'latest', ((messageArray.length === 0) ? 'top' : 'sub')],
'children': [{
// <div class='message-inner'>
'tagName': 'div',
'classNames': ['message-inner'],
'children': [{
// <p>{messageText}</p>
'tagName': 'p',
'text': currentText
}]
}]
}]
};
messageArray.push(Common.buildDomElement(messageJson));
}
});
return messageArray;
}
는 때 여기에 응답 간다 (또는 다른 곳의 경우는) 어떻게 의도가 query
있는지 확인 할 수 있으며 쿼리 왓슨 디스커버리 인 경우?
이것은 내가 현재 발견을 조회하는 방법입니다
는url2 = 'fakeURL'
var request = require("request");
var myJSON = require("JSON");
global var body1;
function getMyBody(url, callback) {
request(
{
url: url,
auth: {'user': 'fakeUsername','pass': 'fakePassword'},
json: true
},
function (error, response, body) {
if (error || response.statusCode !== 200) {
return callback(error || {statusCode: response.statusCode});
}
else{
callback(null, JSON.parse(JSON.stringify(body.results)));
}
});
}
getMyBody(url2, function test8(err, body) {
body1 = body[0];
console.log(body1)
}
);
이 코드는 현재 인쇄 :
{ id: 'a3990d05fee380f8d0e9b99fa87188a7',
score: 1.0697575,
os: { OperatingSystem: 'Windows 10 Professional' },
price: '174.99',
text: 'Lenovo ThinkCentre M58 Business Desktop Computer, Intel Core 2 Duo 30 GHz Processor, 8GB RAM, 2TB Hard Drive, DVD, VGA, Display Port, RJ45, Windows 10 Professional (Certified Refurbished)',
url: 'https://www.amazon.com/Lenovo-ThinkCentre-M58-Professional-Refurbished/dp/B01M4MD9C1?SubscriptionId=AKIAJXXNMXU323WLP4SQ&tag=creek0a-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B01M4MD9C1',
highlight: { text: [Array] } }
나는 텍스트의 가치와 URL의 값으로 할 사용자에 대한 응답을. conversation-with-discovery :
이 IBM https://github.com/watson-developer-cloud/conversation-simple IBM 개발자에서이 예처럼
그래서이 프로젝트를 사용하려고했지만 문제가 발생했습니다. " call_discovery ". 대화 대화에서 어떻게 호출합니까? 도와 주셔서 너무 고마워요! – James
Watson 대화 내에서 하나의 컨텍스트 변수를 생성해야합니다. 검색 서비스를 호출하려는 대화 상자 노드에서 쿼리 된 텍스트를 반환합니다. –
call_discovery를 호출합니까? – James