- 챗봇 페이스북 페이지 바로가기
- 깃허브 레포지토리 바로가기
- 프로젝트 포스팅 목록
아티스트 유사도
- Artist track들의 audio feature 데이터에 대해 평균을 낸 값을 사용하여 Artist 끼리의 유사도를 계산한다.
- 아테나(Athena)에 미리 만들어놓았던 두가지 top_tracks와 audio_features 테이블을 이용하여 유사도를 구하고 해당 유사도를 PostgreSQL 데이터베이스에 삽입한다.
아테나(Athena) 연동
1 |
|
artist_id | y_artist | distance |
0LcJLqbBmaGUft1e9Mm8HV | 7A9yZMTrFZcgEWAX2kBfK6 | 0.27980773482656995 |
1ZwdS5xdxEREPySFridCfh | 7fIvjotigTGWqjIz6EP1i4 | 0.2882160292783355 |
3EhbVgyfGd7HkpsagwL9GS | 7A9yZMTrFZcgEWAX2kBfK6 | 0.26411908256068184 |
7xkAwz0bQTGDSbkofyQt3U | 7fIvjotigTGWqjIz6EP1i4 | 0.186260244237497 |
6Q192DXotxtaysaqNPy5yR | 7A9yZMTrFZcgEWAX2kBfK6 | 0.3029041230758847 |
45lorWzrKLxfKlWpV7r9CN | 7fIvjotigTGWqjIz6EP1i4 | 0.38931553129958446 |
0WgyCbru4tXnMsbTmX4mFw | 7A9yZMTrFZcgEWAX2kBfK6 | 0.38289397784182017 |
1By9QBFnjZAoI83BZppHlt | 7fIvjotigTGWqjIz6EP1i4 | 0.16577755424396057 |
4pJCawaKSZ40EnxN0YEYw3 | 7A9yZMTrFZcgEWAX2kBfK6 | 0.16981935349152513 |
6O74knDqdv3XaWtkII7Xjp | 7fIvjotigTGWqjIz6EP1i4 | 0.2553551414854985 |
3rfgbfpPSfXY40lzRK7Syt | 7A9yZMTrFZcgEWAX2kBfK6 | 0.11591289512496193 |
… | … | … |
페이스북 메신저 API
람다 함수(Lambda Func) 생성
API 게이트웨이(Gateway) 생성
메소드(method) 설정
맵핑 템플릿(mapping template)
배포(Deploy)
URL 복사
토큰 생성
S3 버킷 생성
구조
1 |
|
- psycopg가 lambda용이 따로 있기 때문에 이번엔 모든 라이브러리를 설치한 상태에서 zip하여 보내준다.
deploy.sh
1 |
|
requirements.txt
1 |
|
fb_bot.py
1 |
|
lambda_handler.py
1 |
|
배포
1 |
|
Facebook API 필드 추가
IAM 퍼미션(Permissions) 추가
테스트
- 기존에 있는 아티스트를 넣으면 잘 가져온다.
- 존재하지 않는 아티스트를 넣으면 Postgres와 DynamoDB에 자동으로 추가되며, ‘We added artist. Please try again in a second!’와 함께 다시 검색하면 전시된다.
- 람다 핸들러를 수정하여, 가수 이름을 검색했을 때 그 가수의 장르를 전시하고 유사한 가수를 추천하는 서비스를 완성시킨다.
1 |
|