마쓰코 디럭스와의 유사도를 회신 해주는 마츠코 bot을 개발했다
소개
이번에는 LINEmessagingAPI와 MicrosoftFaceAPI를 조합하여 마츠코 디럭스와 얼마나 비슷한지를 회신 해주는 마츠코 bot를 개발했습니다. 다음과 같이 마츠코가 회신 해줍니다. 확실히 마츠코에 대해 높은 수치를 내고 있습니다.
개발 환경
마츠코 디럭스란?
모르는 사람은 없다고 생각합니다만 일단 설명해 둡니다. 마츠코 디럭스 씨는 일본의 코멘테이터에서 현재 많은 프로그램에 출연되고 있으며, 독설 캐릭터로 대인기입니다. 자세한 내용은 Wikipedia을 참조하십시오.
구현
이번에는 다음과 같이 구현합니다. 이미 bot를 작성하고 있는 전제로 진행해 갑니다.
Heroku 설정
이쪽은 이미 많은 분이 자세하게 설명하고 있으므로 그쪽을 본 것이 알기 쉬울까 생각합니다. 여기의 기사를 참고로 했습니다. 터미널에서 다음과 같이 설정합니다.
$ heroku login
$ heroku create matsuko-bot
$ heroku config:set YOUR_CHANNEL_SECRET="Channel Secretの欄の文字列" --app matsuko-bot
$ heroku config:set YOUR_CHANNEL_ACCESS_TOKEN="アクセストークンの欄の文字列" --app matsuko-bot
설정 파일 만들기
각각 설정 파일을 작성합니다.
runtime.txtpython-3.6.6
requirements.txtFlask==0.12.2
line-bot-sdk==1.5.0
requests==2.18.4
gunicorn
Procfileweb: python main.py
main.py#一部のみ
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text='顔画像を送信しなさい'))
@handler.add(MessageEvent, message=ImageMessage)
def handle_image(event):
message_id = event.message.id
message_content = line_bot_api.get_message_content(message_id)
image = BytesIO(message_content.content)
r_1 = requests.post(url_detect, headers = headers_detect, params = params, data = open('matsuko.jpg','rb'))
r_2 = requests.post(url_detect , headers = headers_detect, params = params, data = image)
faceId = r_1.json()[0]['faceId']
try:
faceIds = r_2.json()[0]['faceId']
body['faceId'] = faceId
body['faceIds'] = [faceIds]
r_find_similar = requests.post(url_similar, headers = headers_similar, data = json.dumps(body)).json()[0]['confidence']
line_bot_api.reply_message(event.reply_token,TextSendMessage(text='私との類似度は{}'.format(r_find_similar)))
except:
line_bot_api.reply_message(event.reply_token,TextSendMessage(text='顔が検出できなかったですよ'))
matsuko.jpg (이쪽의 얼굴 이미지와 비슷한지를 비교합니다)
파일 구조$ tree
.
├── Procfile
├── main.py
├── matsuko.jpg
├── requirements.txt
└── runtime.txt
Heroku에 배포
$ git init
$ git add .
$ git commit -m "new commit"
$ git push heroku master
git push 할 수 없으면 다음 명령을 실행하십시오.
$ git remote add heroku https://git.heroku.com/アプリケーション名.git
디버깅을 위해 로그 확인
$ heroku logs --tail -a <アプリケーション名>
webhook 설정
LINEbot의 설정 화면에서 다음과 같이 설정합니다.
Webhook 제출: 사용
Webhook URL: https://<응용 프로그램 이름>.herokuapp.com/callback
요약
이번에는 LINE과 Microsoft의 API를 조합하여 얼굴 인식의 bot를 만들어 보았습니다. 웹 관련 지식은 전혀 없었습니다만 의외로 간단하게 할 수 있었습니다(Heroku의 설정으로 조금 고전했다). 앞으로는 스스로 API 서버를 구축하여 편리한 LINEbot을 만들어 가고 싶습니다. 이번 구현은 GitHub에 실어 둡니다.
Reference
이 문제에 관하여(마쓰코 디럭스와의 유사도를 회신 해주는 마츠코 bot을 개발했다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/NakaokaRei/items/3f38b745bc0a6b58fb54
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이번에는 다음과 같이 구현합니다. 이미 bot를 작성하고 있는 전제로 진행해 갑니다.
Heroku 설정
이쪽은 이미 많은 분이 자세하게 설명하고 있으므로 그쪽을 본 것이 알기 쉬울까 생각합니다. 여기의 기사를 참고로 했습니다. 터미널에서 다음과 같이 설정합니다.
$ heroku login
$ heroku create matsuko-bot
$ heroku config:set YOUR_CHANNEL_SECRET="Channel Secretの欄の文字列" --app matsuko-bot
$ heroku config:set YOUR_CHANNEL_ACCESS_TOKEN="アクセストークンの欄の文字列" --app matsuko-bot
설정 파일 만들기
각각 설정 파일을 작성합니다.
runtime.txt
python-3.6.6
requirements.txt
Flask==0.12.2
line-bot-sdk==1.5.0
requests==2.18.4
gunicorn
Procfile
web: python main.py
main.py
#一部のみ
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text='顔画像を送信しなさい'))
@handler.add(MessageEvent, message=ImageMessage)
def handle_image(event):
message_id = event.message.id
message_content = line_bot_api.get_message_content(message_id)
image = BytesIO(message_content.content)
r_1 = requests.post(url_detect, headers = headers_detect, params = params, data = open('matsuko.jpg','rb'))
r_2 = requests.post(url_detect , headers = headers_detect, params = params, data = image)
faceId = r_1.json()[0]['faceId']
try:
faceIds = r_2.json()[0]['faceId']
body['faceId'] = faceId
body['faceIds'] = [faceIds]
r_find_similar = requests.post(url_similar, headers = headers_similar, data = json.dumps(body)).json()[0]['confidence']
line_bot_api.reply_message(event.reply_token,TextSendMessage(text='私との類似度は{}'.format(r_find_similar)))
except:
line_bot_api.reply_message(event.reply_token,TextSendMessage(text='顔が検出できなかったですよ'))
matsuko.jpg (이쪽의 얼굴 이미지와 비슷한지를 비교합니다)
파일 구조
$ tree
.
├── Procfile
├── main.py
├── matsuko.jpg
├── requirements.txt
└── runtime.txt
Heroku에 배포
$ git init
$ git add .
$ git commit -m "new commit"
$ git push heroku master
git push 할 수 없으면 다음 명령을 실행하십시오.
$ git remote add heroku https://git.heroku.com/アプリケーション名.git
디버깅을 위해 로그 확인
$ heroku logs --tail -a <アプリケーション名>
webhook 설정
LINEbot의 설정 화면에서 다음과 같이 설정합니다.
Webhook 제출: 사용
Webhook URL: https://<응용 프로그램 이름>.herokuapp.com/callback
요약
이번에는 LINE과 Microsoft의 API를 조합하여 얼굴 인식의 bot를 만들어 보았습니다. 웹 관련 지식은 전혀 없었습니다만 의외로 간단하게 할 수 있었습니다(Heroku의 설정으로 조금 고전했다). 앞으로는 스스로 API 서버를 구축하여 편리한 LINEbot을 만들어 가고 싶습니다. 이번 구현은 GitHub에 실어 둡니다.
Reference
이 문제에 관하여(마쓰코 디럭스와의 유사도를 회신 해주는 마츠코 bot을 개발했다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/NakaokaRei/items/3f38b745bc0a6b58fb54
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(마쓰코 디럭스와의 유사도를 회신 해주는 마츠코 bot을 개발했다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/NakaokaRei/items/3f38b745bc0a6b58fb54텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)