콘텐츠와 Azure 기능을 갖춘 채팅 로봇을 구축하는 방법
14304 단어 contentfulbotsjavascriptazure
채팅 로봇의 장점은 매우 뚜렷하다. 그들은 고객을 기쁘게 하고 판매 도구로 운영하며 당신이 대화 관계를 유지할 수 있도록 한다.나는 낙담하지 않았다. 나는 줄곧 호텔과 연락을 유지해 왔다. 현재 우리는 이미 대화의 역사를 세웠다.
대화 로봇은 고객에게 도달하기 위해 중요한 경로를 제공했기 때문에 대다수 브랜드는 전문가 로봇을 개발하고 구체적인 해결 방안을 제공하고 있다.일부 채팅 로봇은 흔히 볼 수 있는 문제 해결 방안을 제공하고 다른 채팅 로봇은 고객의 수요에 따라 특정 제품을 추천하며 일부 채팅 로봇은 계산서와 계좌 정보에 관한 문제를 신속하게 대답한다.Contentful은 채팅 로봇의 콘텐츠 층을 처리할 수 있으며 본고는 당신에게 구조, 실현과 결과를 이해하도록 안내할 것입니다.
채팅 로봇의 특정 상하문과 기술 창고
우리의 한 기업 고객은 콘텐츠 플랫폼을 사용하여 웹 제품에 대한 지원에 성공한 후에 콘텐츠를 가진 흔한 문제 해답 채팅 로봇을 구축하기를 희망한다.그들은 이미 Microsoft 클라우드 서비스를 사용하고 있기 때문에 우리는 Microsoft Azure 기능과 지식 라이브러리를 이용하여 개념을 신속하게 검증하기로 결정했다.Amazon Web Services, Google Cloud Platform 또는 IBM Watson과 같은 다른 클라우드 및 로봇 서비스와 함께 사용할 수도 있습니다. 이는 API 덕분입니다.몇 가지 초보적인 조사를 통해 우리는 여기에 소개된 구조를 개발했다. 이것은 내용이 있는 Webhook, Azure 클라우드 기능과 Microsoft의 지식 라이브러리 서비스를 사용했다.
건축학
게시 프로세스
게시 스트림 취소 중
실시
만족했어
우리는 Contentful을 사용하여 채팅 로봇에 문제와 답을 저장합니다.내용이 풍부한 웹 응용 프로그램에서 편집자는 이 내용을 쉽게 작성하고 편집하며 발표할 수 있다.
컨텐트 모델
본 프레젠테이션에서 우리는 내용 모델을 매우 간단하게 유지한다. - 단지 하나의 내용 유형에 우리의 문답 쌍과 내용 편집기의 내부 제목을 참고로 포함한다.
네트워크 연결
우리는 Webhook을 사용하여 이벤트를 발표하고 취소하여 우리의 클라우드 기능을 촉발합니다.
발표 이벤트 웹hook을 만들 때, 항목 발표 이벤트에 웹hook 트리거를 설정하십시오. 아래와 같습니다.URL의 경우 클라우드 기능을 구성하지 않았기 때문에 클라우드 기능의 끝점을 추가해야 합니다.우리는 DummyWebhook 사이트 또는 ngrok을 사용하여 가상 단점을 만들고 추가할 수 있다.
게시 취소 이벤트 웹hook을 만들 때, 항목의 게시 취소 이벤트에 웹hook의 트리거를 설정하십시오. 아래와 같습니다.지난번처럼 우리는 Dummy Webhook이나ngrok의 가상 값을 사용하여 URL을 채울 것입니다.
완료된 후, 게시와 취소, 발송된 웹hook 부하를 검사하여 우리의 작업 흐름을 테스트할 수 있는 항목을 만들 수 있습니다.그리고 웹 훅 로그에서 유효 부하를 볼 수 있습니다.
발표 항목 웹훅 부하:
{
"sys": {
"type": "Entry",
"id": "1ssZF4Lqq1Wpi9KSHvq9jE",
"space": {
"sys": {
"type": "Link",
"linkType": "Space",
"id": "bwn0phmhnub6"
}
},
"environment": {
"sys": {
"id": "master",
"type": "Link",
"linkType": "Environment"
}
},
"contentType": {
"sys": {
"type": "Link",
"linkType": "ContentType",
"id": "faqQuestion"
}
},
"revision": 2,
"createdAt": "2020-04-13T23:06:07.225Z",
"updatedAt": "2020-04-13T23:07:05.635Z"
},
"fields": {
"title": {
"en-US": "First question"
},
"question": {
"en-US": "What is contentful? \n\n"
},
"answer": {
"en-US": {
"data": {},
"content": [
{
"data": {},
"content": [
{
"data": {},
"marks": [],
"value": "Contentful is Headless CSM",
"nodeType": "text"
}
],
"nodeType": "paragraph"
}
],
"nodeType": "document"
}
}
}
}
항목 웹 훅 로드 게시 취소:{
"sys": {
"type": "DeletedEntry",
"id": "1ssZF4Lqq1Wpi9KSHvq9jE",
"space": {
"sys": {
"type": "Link",
"linkType": "Space",
"id": "bwn0phmhnub6"
}
},
"environment": {
"sys": {
"id": "master",
"type": "Link",
"linkType": "Environment"
}
},
"contentType": {
"sys": {
"type": "Link",
"linkType": "ContentType",
"id": "faqQuestion"
}
},
"revision": 2,
"createdAt": "2020-04-13T23:27:30.971Z",
"updatedAt": "2020-04-13T23:27:30.971Z",
"deletedAt": "2020-04-13T23:27:30.971Z"
}
}
지금, 이것이 바로 우리가 만족 속에서 해야 할 일이다. icrosoft Knowledgebase에서 FAQ 채팅 로봇 만들기
QnA 서비스
1. https://www.qnamaker.ai/으로 이동하여 무료 계정을 만듭니다.
2. 지식고를 구축한다.
3. QnA 서비스를 만듭니다.
4. 구독 이름과 Azure QnA 서비스를 보기 위해 https://www.qnamaker.ai/으로 돌아가서 새로 고칩니다.
5. 지식 라이브러리 작성의 나머지 단계를 완료합니다.완료되면 아래와 같은 지식 라이브러리가 있습니다.
통합할 API
현재 우리는 지식 라이브러리를 만드는 작업을 마쳤고 그 안에 Contentful에서 온 문제와 답안을 채워 채팅 로봇이 사용할 수 있도록 해야 한다.지식 라이브러리의 정보를 추가, 업데이트 또는 삭제할 수 있는 API를 찾아보겠습니다.
우리는 update endpoint을 사용하여 내용을 추가하고 삭제할 것입니다.우리는 또한 download endpoint을 사용하여 모든 문제와 답안을 얻은 후에 그것들을 필터할 것이다.
Azure 기능
Azure 기능은 서버 없는 어플리케이션을 개발하고 배포하는 강력한 방법입니다.이 용례에 대해 우리는 Azure 함수를 선택했다. 왜냐하면 우리는 우리의 개념 검증을 신속하게 개발하고 테스트할 수 있기 때문이다.
설치 프로그램
Visual Studio 코드를 사용하여 Azure 기능 항목을 설정하는 지침을 제공합니다.
우리는 이 채팅 로봇 프로젝트를 위해 다음과 같은 설정을 사용했다.
우리는 두 가지 함수를 포함하는 새로운 Azure 함수 항목을 만들었습니다:publishWebhookHandler와 unpublishWebhookHandler.
publishWebhookHandler
내용이 발표될 때마다 이 함수는 Contentful에서 온 웹 훅을 사용하여 내용을 지식 라이브러리로 전송하는 데 사용됩니다.
알고리즘
{
"add": {
"qnaList": [
{
"answer": "answer",
"source": "source",
"questions": [
"question"
],
"metadata": [{"name":"contentfulid","value":"1ssZF4Lqq1Wpi9KSHvq9jE"}]
}
]
}
}
업데이트 질문:{
"update": {
"name": "QnA Maker FAQ Prompts Bot",
"qnaList": [
{
"id":87,
"answer": "answer 2",
"source": "source",
"questions": {
"add":["questions 1"],
"delete":[]
}
}
]
}
}
우리의 지식 라이브러리에 내용을 추가하는 예제 함수:module.exports = async function(context, req) {
if (req.body) {
const contentfulID = req.body.sys.id;
const contentfulQuestion = req.body.fields.question['en-US'];
const contentfulAnswer = req.body.fields.answer['en-US'].content[0].content[0].value;
const questionFromKB = await getQuestionIdFromKB(contentfulID);
const response = await upsertQuestionInKB(context, questionFromKB, contentfulID, contentfulAnswer, contentfulQuestion);
context.res = {
status: 200,
body: JSON.stringify(response),
};
} else {
context.res = {
status: 400,
body: 'Please pass a name on the query string or in the request body',
};
}
};
WebHookHandler 게시 취소
내용이 발표되지 않을 때마다 이 함수는 발표되지 않은 웹 훅을 사용하여 우리의 지식 라이브러리에서 내용을 삭제합니다.
module.exports = async function(context, req) {
if (req.body) {
const contentfulID = req.body.sys.id;
const questionId = await getQuestionIdFromKB(contentfulID);
const response = await removeQuestionFromKB(questionId);
context.res = {
body: JSON.stringify(response),
};
} else {
context.res = {
status: 400,
body: 'Please pass a name on the query string or in the request body',
};
}
};
알고리즘{
"delete":{
"ids":[
29
]
}
}
미국 석유 학회 배치
일단 이 두 가지 기능이 모두 준비되면 그것들을 Azure 클라우드에 배치할 수 있다.
배치가 완료되면 Microsoft Azure portal에서publishWebhookHandler와 unpublishWebhookHandler URL을 가져옵니다.첫 번째 단계에서 만든 웹 훅에 추가합니다.
채팅 로봇 테스트
컨텐츠 채우기
우리는 세 개의 테스트 문답을 발표했다.모든 발표 이벤트는 웹 훅을 터치하여 우리의 지식 라이브러리로 전송합니다.검사를 진행하기 위해서, 우리는 에 로그인하여 문제가 발표되었는지 확인합니다.
아래 화면 캡처에서 발표된 세 개의 문답 문제를 볼 수 있습니다. 내용이 풍부하고 저희 지식 라이브러리에 추가됩니다.
https://www.qnamaker.ai
이제 우리 지식고에서 훈련 내용을 배울 것이다.QnA 서비스에서 Test를 클릭하면 채팅 로봇을 테스트할 수 있습니다.
결과
현재 당신은 스마트 채팅 로봇이 하나 생겨서 고객이 그것과 이야기할 수 있다.이렇게 하면 고객은 사이트의 대량의 목록을 조회해서 간단한 답안을 검색할 필요가 없다.너는 또한 고객의 정서와 그들이 자주 제기하는 문제를 평가할 수 있다.이러한 추가 정보가 있으면 우리는 흔히 볼 수 있는 문제를 개선할 수 있다.
채팅 로봇의 미래 증강 기능
Reference
이 문제에 관하여(콘텐츠와 Azure 기능을 갖춘 채팅 로봇을 구축하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/contentful/what-can-i-help-you-with-powering-chatbots-with-contentful-e14텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)