웹위키 챗봇제작 코드

마인드컨트롤·2026년 4월 13일

*chatbot.js, css 업로드

docker cp /volume1/docker/bookstack/bluesen/chatbot.js hybrid_bookstack:/app/www/public/bluesen/chatbot.js
docker cp /volume1/docker/bookstack/bluesen/chatbot.css hybrid_bookstack:/app/www/public/bluesen/chatbot.css

**위치
docker cp /volume1/docker/bookstack/bluesen/

***매핑 테이블
─────────────────────────────────
★ 직접 매핑 테이블
키워드 → 표시할 계정과목 목록 (순서대로 직접 지정)
수정 방법: 계정명 배열 안에서 추가/삭제/순서변경
-개수 제한 없음
─────────────────────────────────
var BL_SEARCH_MAP = {
"식대": ["여비교통비(제)식대","여비교통비(판)식대","복리후생비(판)식대","복리후생비(제)식대","복리후생비(판)조식"],
"출장": ["여비교통비(제)식대","여비교통비(판)식대","여비교통비(제)음료","여비교통비(판)음료","여비교통비(제)숙박비","여비교통비(판)숙박비","여비교통비(판)기타"],
"음료": ["여비교통비(제)음료","여비교통비(판)음료","복리후생비(판)음료","복리후생비(판)생수"],

──────────────────────────────────
검색 엔진 (직접 매핑 방식)
: 자동 검색등록 엔진 ──────────────────────────────────
// 2. 폴백: 계정명 직접 검색
return BL_ACCT_DB.filter(function(acct){
return acct.계정명.toLowerCase().indexOf(kwL) !== -1 ||
acct.유형.toLowerCase().indexOf(kwL) !== -1;
}).slice(0, 4);
→ 현재 최대 4개 제한 있음, 이건 매핑 없을 때만 작동

──────────────────────────────────
과세, 면세, 불공제 부분 내용추가
→ 불공, 과세, 면세 외 추가 시──────────────────────────────────

  if(results.length > 1){
    var moreMsg = "📋 <b>관련 계정과목 목록</b>\n\n";
    results.forEach(function(acct, i){
      var vat = acct.부가세==="면세" ? "❌면세" : acct.부가세==="불공제" ? "⛔불공제" : "✅과세";
      moreMsg += (i===0?"🥇 ":"• ")+acct.계정명+" ["+acct.판관+"] "+vat+"\n";
      moreMsg += "  → "+acct.사례[0]+"\n";
    });
    addMsg("bot", moreMsg);
  }
}, 500);

}

0개의 댓글