-
카카오톡 채널 생성 및 프로필, 배경사진 제작
-
왜 배경사진이 이상하게 들어가는지 노이해...
-
각 사용자가 키워드를 추가하면 그 키워드에 대한 공지사항을 알려주는 어플
-
오픈 빌더 신청
-
피들러로 뜯어보니까 제목이랑 링크는 b-title-box 클래스에 담겨있음.
-
https://www.ajou.ac.kr/kr/ajou/notice.do 페이지 응답에는 10개씩!
-
express myapp을 했는데 vulnerabilities가 떳다.
- 확인하니 jade에서 발생. 찾아보니 jade는 예전 버전이고 지금은 pug로 개명됐다 한다.
- 하튼 걍 express myapp --view=ejs로 뷰 단을 그냥 애초에 ejs로 시작해버림
-
request get에서 문제 발생 unable to verify the first certificate
- https 인증서를 사용할 수 없다는 그런 뜻?
- 해결법 1 : 옵션으로 {rejectUnauthorized: false} 넣어줌
- 해결법 2 : 모듈 열리는 곳에 process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; 삽입
-
해결법 2와 헤더에 user-agent 넣어주는 것으로 공지사항 html 불러오기 성공
-
html에서 클래스로 데이터 빼와서 제목이랑 글 번호, 주소 빼오기 도전!
-
처음엔 node-html-parser를 썻는데. cheerio가 더 난듯
-
데이터 가져오기
- cheerio를 통해 제이쿼리 용법을 사용 가능하게함
- const $ = cheerio.load(body)로 $선언하고 이후 제이쿼리처럼 $ 가지고 사용하면 됨
- 이번 경우엔 .each함수로 배열을 처리하고 text()로 innerHTML을 가져옴
- 그 다음 공백 문자가 너무 많아. trim()으로 공백을 제거.
- 요소의 attribute는 .attr("~")로 해결
- 링크는 href 앞에 아주대 공지사항 도메인 주소를 넣어 해결
-
디비설계, erd, 요구사항 정리, 기획 이런부분을 해야할듯 이제
- 크롤링 구현 완료
- 웹페이지에 p태그로 띄우며 체크
- data라는 객체에 배열로 저장
- 나중에 카톡 메시지로 배포할땐 shortend link로 주는게 좋겠당
- 자동 크롤링은 크론탭을 활용해서 해결하는 쪽으로 생각해보자
- 메시지 쏘는건 event api가 있넹 유료긴한데 뭐...
- 오픈빌더 승인 완료.
- 서버구축 시작.
- ec2로 서버 만들고 퍼티로 우분투 키고 mysql이랑 노드 설치
- https://luji.tistory.com/7?category=734037
- 로컬에 agong 디비 만들고 그 디비에 접근 할 수 있는 agongMaster 라는 유저 생성 후, 권한 줌
- https://velog.io/@re_brother/TIL-Node.js-Version-Update-for-Ubuntu-May-13-2020
- nvm 사용법
- https://calvinjmkim.tistory.com/22
- https://devkingdom.tistory.com/84
- 쓰읍 왜 외부 연결이 안되지..
- 차선책으로 rds 사용?
- 그 사용자에게 외부 접속 가능하게 해줘야함
- root는 기본적으로 로컬호스트로 돼있음
- https://galid1.tistory.com/349
- 엔티티란 봇이 이해할 수 있는 요어를 정리한 데이터 사전. 엔티티가 정의되어 있다면, 봇은 사용자 발화로부터 사용자의 의도에 맞는 동작 수행을 위한 주요 데이터를 추출할 수 있게 된다. 사용자 발화 : 사용자가 봇과 커뮤니케이션하기 위한 텍스트
- 엔티티의 구조를 미리 설계한 후 발화등록 작업을 진행하면 제작 과정이 훨씬 수월해짐. '나의 엔티티' 구조 : 사용자가 정의할 수 있는 엔티티는 [엔티티명], [대표엔트리], [동의어] 총 세 가지 요소로 구성됩니다
- 작업자가 직접 정의하는 '나의 엔티티', 미리 정의해놓은 '시스템 엔티티'로 나뉨.
- 나의 엔티티에서는 봇이 알아 들어야 하는 주요 용어들을 대표 엔트리로 설정 하며 동의어 추가 가능.
-
시나리오는 봇 안에서 사용자가 경험할 수 있는 서비스 단위
-
각 기능이라 보면 될 듯, 아공은 키워드 추가, 삭제, 보기 정도? -> 노노노노 시나리오는 큰 틀. 긍까 공지사항 이정도? 저 기능을 블록
-
기본 시나리오는 모든 봇에 장착되며 3개 블럭을 포함
- 웰컴 블럭 : 봇이 처음만날때
- 폴백 블럭 : 발화의도를 이해하지 못할떄
- 탈출 블럭 : 사용자가 대화를 초기화하거나 탈출하고 싶을때
-
되묻기 질문은 시나리오 설정에서 가능
- 하단 슬라이드 메뉴!! 여기에 사용법 안내 그런거 넣으면 될듯
- 사용자의 의도의 기본 단위. 인텐트라고도 불림. 1개의 블럭은 1개의 의도를 표현. 발화가 봇으로 유입되면 블록 안쪽 사전에 등록된 발화내용을 기반으로 사용자 의도가 파악되어 1개의 블록을 최종 추출
- 블럭에는 사용자 예상 발화, 봇이 수행할 액션과 응답할 내용이 설계. 기능마다 블록으로 짜는거 같음! 키워드 삽입 삭제 보기
- 챗봇이 사용자 발화를 인식할 수 있도록 만드는 원리의 핵심은 패턴임.
- 사용자가 말할거 같은 발화문을 등록
- 문장 안에서 중요한 의미를 갖는 부분을 엔티티로 태깅
- 중요한 부분은 엔티티로 태깅하면 조금씩 다르게 말해도 의도에 해당하는 블록을 선택해 보여줄 수 있다.
- 파라미터는 봇이 사용자의 의도를 정확히 이해하기 위해 필요로 하는 데이터, 봇과의 대부분 대화는 파라미터 데이터를 채우는 작업. 만약 필요한 파라미터가 없으면 다시 되묻기도 합니다.
- API 형태로 구성된 스킬은 데이터가 입력되면 들어온 데이터에 맞는 다양한 결과값을 보내준다.
- 스킬에 보내지는 데이터 또한 파라미터이다.
- 만약 지역별 날씨를 알려주는 스킬이면. 지역명을 스킬로 보내고 실제 날씨를 출력한다. 여기서 스킬로 보내지는 지역 정보가 파라미터 데이터이다.