- 챗봇 페이스북 페이지 바로가기
- 깃허브 레포지토리 바로가기
- 프로젝트 포스팅 목록
아티스트 유사도
- 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 | |