LUIS와 Power Automate를 사용하여 두 가지 가격을 비교하는 LINE Bot을 만들어 보았습니다.

시도한 것



800ml 들어가는 리필 세제와 600ml 비 리필 (병 포함)은 어느 것이 싼 것일까? 라고 생각하는 경우가 자주 있습니다.
그런, 단가의 계산은, 따로 계산기 싶으면 좋지만 조금 귀찮아요.
그래서 단가의 계산을 해주는 LINE bot를 만들어 보았습니다.

사용한 소재는 이쪽
  • Power Automate (Premium 필수)
  • LUIS (Azure의 Cognitive Service)
  • LINE Messaging API

  • 이상
    LUIS는 입력된 메시지에서 가격 부분과 수량(200ml, 500g, 10개)을 읽는데 이용했습니다. LUIS에 의한 문장 해석의 결과, 2개씩 수량과 가격이 취해지고 있는 전제로, Power Automate상에서 단가를 계산해, 어느 쪽이 싼가를 Reply로 돌려주고 있습니다.



    LUIS 부분



    LUIS 부분은 기합입니다. 오로지 예문을 넣어 수량과 가격을 표시합니다.
    LUIS의 도입 부분은, 조금 화면이 바뀌고 있습니다만, 이쪽의 기사를 알기 쉽습니다.

    자신의 메모로 LINE 제출한 일정을 AI로 읽고 Google 캘린더에 자동 등록하자

    실제 Authoring 화면은 다음과 같습니다.



    ※위 그림에서는 어느 정도 조교하고 있기 때문에, 예문을 넣으면, 어떤 요소인가, 부드럽게 마크해 줍니다.
    파란색 밑줄이 그어져 있는 부분을 수량인지 가격인지 지정해 갑니다.

    추세로는 문장의 시작 부분에 1자리 수량이 오면 인식 확률이 매우 낮아졌습니다. 그래서 "이봐, XX"와 같은 워드를 사용자에게 넣어주는 궁리가 필요할 것 같습니다.

    Power Automate 부품



    Power Automate 부품은 간단합니다. 이미 LINE Messaging API의 커스텀 커넥터을 만들었으므로 응답은 메시지를 넣습니다.



    전반, Webhook의 수신은 Messaging API의 사양대로.
    받은 메시지를 그대로 LUIS의 입력으로 합니다.
    이제 결과가 반환되는데 결과는 다음과 같은 배열로 반환됩니다.

    luis_output.json
    [
      {
        "entity": "5",
        "type": "amount",
        "startIndex": 3,
        "endIndex": 3,
        "score": 0.5533202
      },
      {
        "entity": "1 0",
        "type": "amount",
        "startIndex": 15,
        "endIndex": 16,
        "score": 0.9669346
      },
      {
        "entity": "安い",
        "type": "highlow",
        "startIndex": 31,
        "endIndex": 32,
        "score": 0.9992584
      },
      {
        "entity": "3 5 0 0 円",
        "type": "price",
        "startIndex": 7,
        "endIndex": 11,
        "score": 0.9945259
      },
      {
        "entity": "7 5 0 0 円",
        "type": "price",
        "startIndex": 20,
        "endIndex": 24,
        "score": 0.996291
      }
    ]
    

    ※Quantity가 아닌가? 어쨌든 잘 쓰세요. .

    주의해야 할 것은 수량, 가격 모두 숫자 사이에 반각 공간이 들어가는 점입니다. 실제로 나눌 때 (단가로 할 때) 공백을 제거해야합니다.

    이러한 결과에서 첫 번째 수량 및 가격 조합과 뒤의 수량 & 가격 조합을 만듭니다.



    LUIS의 해석 결과 자체는, 정밀도의 정보라든지, 어디에 해당하는가, 혹은 어느 타입의 독해 결과인가를 모두 포함하고 있습니다.
    후속으로 계산하기 쉽도록 가격과 수량만의 배열을 생성하고 공간을 제거합니다.

    여기에는 Select(선택) 액션을 이용하고 있습니다.
    그리고는 솔직하게 계산. Power Automate에서 나눗셈은 div() 함수입니다.



    이런 식으로 꽤 짧은 흐름과 함수를 조금 잡는 것만으로 단가 비교의 LINE Bot이 완성되었습니다!

    포인트는 LUIS에서 열심히 조련하는 것과 LINE 부분을 간단하게하기 위해 커스텀 커넥터를 사용하는 곳입니다.

    이상, 생활 도움 Bot의 개요였습니다.

    좋은 웹페이지 즐겨찾기