botpress의 채널 모듈 제작 방법(1)

13044 단어 chatbotbotpresstech

개요


사용자 정의 모듈을 만들면botpress[1]는 분배 가능한 형식으로 기능을 추가하거나 확장할 수 있습니다.본고는 사용자 정의 모듈로 Botpress가 외부에서 메시지를 받는 메시지 채널[2]을 만드는 방법을 총괄하였다.
사용한botpress 버전은 v12입니다.21.0

이 기사를 읽었어요.

  • botpress에서 모듈을 만드는 순간
  • 모듈에서 메시지 채널을 만들 때의 요점을 알고 있음(기타 기사)
  • 외부에서 Botpress로 메시지를 받는 URL에 대한 추가 방법
  • 묻힌 정보를botrepss의 정보 처리 프로세스에 전달하는 방법
  • 처리된 메시지의 응답을 외부 시스템으로 되돌려주는 방법
  • 원래 botpress는?


    채팅방을 구축하는 플랫폼[3]이다.개발 프레임워크도 모듈을 통해 기능을 추가할 수 있다.
    다음 책은 일본어 중에서 가장 추천합니다.(4장 이후 botpress로 챗봇 만들기 설명)
  • 챗봇 교과서

  • Chatbot Today
  • 챗봇의 교과서 지원 사이트
  • 샘플 모듈


    마지막으로 HTTP를 통해 외부 시스템에서 정보를 받아botpress에서 생성한 응답 메시지를 간단하게 되돌려주는 모듈을 제작한다.

    미리 준비하다


    botpress 동작을 모듈 동작을 확인할 수 있는 환경을 준비합니다.

  • 참조소스 코드 분석 환경 구조 - Botpress 상세 설명(2)v12.21.0으로 시작하십시오.
  • 첫 번째는 관리자의 ID, 비밀번호 설정으로 설정한 후 로그인합니다.
  • 템플릿에서 모듈 만들기


    여기서부터 clone botpress 내의 디렉터리에서 작업을 시작합니다.공식 맞춤형 모듈의 제작 방법[4]을 참고하여 맞춤형 모듈을 제작한다.
    botpress의 원본 코드에 있는botpress/examples/module/templates에서 모듈을 만들 때의 모형이 있기 때문에botpress/modules 디렉터리 아래로 복사합니다.
    # channel-simple-httpという名称でコピー
    cp -r examples/module-templates/basic-module modules/channel-simple-http
    cd modules/channel-simple-http
    

    모듈 카탈로그 구조


    모형의 목록 구성을 시험해 보다.
    공식Module Structure으로는 최소한의 구성이다.
    이번에 수정된 것은 패키지입니다.json, src/backend/index.ts의 파일 두 개.

    ModuleEntry Point 객체


    모듈은 sdk여야 합니다.ModuleEntryPoint 객체를 내보내고botpress에 모듈 정보를 전달해야 합니다.ModuleEntry Point의 정의는 여기.입니다.
    대체적인 메타데이터 설정과 처리 프로그램 설정 두 개만 누르면 시작할 수 있습니다.

    메타데이터 설정


    definition 속성에 모듈의 메타데이터를 설정합니다.
  • 모듈의 이름 설정(name 속성)
  • botpress의 관리 화면 확장을 진행할 때 메뉴에 아이콘이 추가되어 설정 등(menuIcon,menuText 속성)
  • 프로세서 설정


    onServerStarted, onServer Ready 등 미리 결정된 시간에 botpress 측은 모듈을 호출하기 때문에 호출할 곳을 설정합니다.
    실용적인 모듈을 만들 때 처리 프로그램의 매개 변수를 사용하여 전달하는 sdk의 API가 무엇을 하는지가 중점이다.

    템플릿은 다음과 같습니다. 최소한 메타데이터와 프로세서가 설정한 상태입니다.
    examples/module-templates/basic-module/src/backned/index.ts
    import * as sdk from 'botpress/sdk'
    
    const onServerStarted = async (bp: typeof sdk) => {}
    const onServerReady = async (bp: typeof sdk) => {}
    
    const entryPoint: sdk.ModuleEntryPoint = {
      onServerStarted,
      onServerReady,
      definition: {
        name: 'basic-module',
        menuIcon: 'none',
        menuText: 'BasicExample',
        noInterface: false,
        fullName: 'BasicExample',
        homepage: 'https://botpress.com'
      }
    }
    
    export default entryPoint
    

    모듈 생성 및 구축

  • package.json과 src/backend/index.ts 변경
    name, fullName, description 속성을 변경합니다.
  • package.json
    +++ package.json	2021-05-01 15:08:04.000000000 +0900
    @@ -1,7 +1,8 @@
     {
    -  "name": "basic-module",
    +  "name": "channel-simple-http",
    +  "fullName": "Channel - simple http",
       "version": "1.0.0",
    -  "description": "",
    +  "description": "simple http channel",
       "private": true,
       "main": "dist/backend/index.js",
       "author": "Botpress, Inc.",
    
    모듈이botpress에서 호출되고 실행되었는지 확인하기 위해 컨트롤러에 메시지를 보내는 것으로 수정되었습니다.
    src/backend/index.ts
     import * as sdk from 'botpress/sdk'
     
    -const onServerStarted = async (bp: typeof sdk) => {
    -  console.log("simple httpのonServerStarted")
    -}
    -
    -const onServerReady = async (bp: typeof sdk) => {
    -  console.log("simple httpのonServerReady")
    -}
    +const onServerStarted = async (bp: typeof sdk) => {}
    +const onServerReady = async (bp: typeof sdk) => {}
     
     const entryPoint: sdk.ModuleEntryPoint = {
       onServerStarted,
       onServerReady,
       definition: {
    -    name: 'channel-simple-http',
    +    name: 'basic-module',
         menuIcon: 'none',
    -    menuText: 'Channel SimpleHTTP',
    -    noInterface: true,
    -    fullName: 'Channel SimpleHTTP',
    +    menuText: 'BasicExample',
    +    noInterface: false,
    +    fullName: 'BasicExample',
         homepage: 'https://botpress.com'
       }
     }
    
  • 구축
  • yarn build
    

    동작 확인


  • 모듈 화면으로 이동, 모듈 확인 동작 활성화
    메뉴의 Modules 화면, package로 이동합니다.json으로 편집된 모듈의 이름과 설명을 표시하고 단순 http 모듈을 추가합니다.


  • 사용 안 함으로 설정되었으므로 추가된 모듈을 사용하려면 스위치를 뒤집습니다.

  • 수정된 메시지 표시 컨트롤러와botpress가 모듈에 성공적으로 불러온 메시지를 표시하면 생성된 모듈이 실행 중입니다!

    참고 자료

  • Custom Module · | Developer's Guide
  • 각주
    Developer Stack to Build Chatbots | Botpress ↩︎
    Botpress는 외부에서 메시지를 받는 경로를 Messageing Channes로 사용합니다.
    Messaging Channels · | Developer's Guide
    모듈은 마이크로소프트 팀스, 슬랙 등 표준 메일을 받을 수 있는 채널을 실현했다.↩︎
    About Botpress ↩︎
    Custom Module · | Developer's Guide ↩︎

    좋은 웹페이지 즐겨찾기