-
Notifications
You must be signed in to change notification settings - Fork 0
API_LIST
-메인화면(로그인 화면으로 구성)

-회원가입

- 회원가입란에 정보를 입력하고 회원가입을 실시하면
2.파이어베이스 Authentication에 등록이 되고
3.안드로이드 app 에서 그 정보들을 JSON 형태로 서버단에 보낸다
- 서버에서는 그 정보를 받아 DB에 저장
5.DB에 저장됨
데이터 베이스 구조에 맞추어 3개의 레시피 데이터 엔티티를 구성함
-food list(전체 레시피를 구성하는 용도)

-recipe_ingredient(전체 레시피리스트에서 선택한 레시피의 재료정보를 가지고있는 엔티티)

id값,재료이름,재료의 양, 선택한 레시피의 id값을 담는 총 4개의 필드로 구성
-recipe_Cooking(전체 레시피리스트에서 선택한 레시피의 단계별 조리정보를 가지고있는 엔티티)

id값,해당조리단계에대한 설명,조리 단계 순서, 선택한 레시피의 id값을 담는 총 4개의 필드로 구성
- JPQL을 이용하여 id값을 입력 하면 해당하는 data들을 DB에서 retrieve 해줌
어플리케이션에서 사용자가 레시피를 등록할 수 있도록 API개발 하였다

사용자가 위의 화면에서 레시피의 정보들을 입력하면 어플리케이션에서 json으로 변환된 정보들이 parameter로 Access Point http://ec2-43-200-41-187.ap-northeast-2.compute.amazonaws.com:8080/android/saveRecipe 로 post요청됨
api서버로 넘겨져온 recipe정보들은 jpa인터페이스를 이용하여 데이터 베이스에저장
자체 학습한 명령어 임베딩 및 인텐트, 엔티티 구별 모델에 대한 API 구현
(해당 모델 학습 관련 내용은 ChatBot 페이지 확인)
- ChatBot Document Page :
ChatBot : ChatBot Page
- API 제작시 사용한 프레임 워크 : Python Flask 기반의 Flask restx 를 활용
Flask : Flask
Flask-RESTX : Flask-RESTX
- API 사용시 클라이언트로부터 입력받는 내용 (http/body)
{"chatString":"사용자 명령어 stt 결과"}- API 요청 예시 :

이때 chatString 내용을 각각 KoBERT 모델, 및 임베딩 → 엔티티 모델에 입력하여 모델 예측 결과를 도출
- API 에서 클라이언트로 보내는 return 값
{
"intent":"intent_result(명령어 의도분류 결과)",
"entity":"entity_result(명령어 엔티티 분류 결과)",
"append":"entity_num(명령어 엔티티 분류 결과에 따른 제어용 변수)",
"text":"text(명령어 임베딩 결과)"
}- API 요청 return 예시 :

컨텐츠 베이스 및 협업 필터링 기반 필터링 함수들을 API화.
현재 서비스중인 프로그램의 데이터베이스에서 현재 존재하는 레시피 데이터, 사용자 평점 데이터를 추출하여 데이터셋화 하여 이를 기반으로 유사도 테이블 형성 및 추천 리스트를 생성하는 함수들을 API 를 통해 접근 가능하도록 설계함.
음성인식과 동일한 Python Flask 기반의 Flask restx 를 활용하여 recommend_api를 제작.
- API 사용시 클라이언트로부터 입력받는 내용 (http/body)
{"last_ID" : 0,"user_ID" : 3,"type" : 0,"num" : 5}예시 :

last_ID : 사용자가 마지막으로 사용한 아이템에 대한 고유 ID값 → content 기반 추천 시스템에 사용.
user_ID : 사용자 고유 ID 값 → collaborate_filtering 기반 추천시스템에 사용.
type : 추천 시스템의 type을 결정하는 값 (content 기반 시스템의 2가지 종류중 1택)
num : 사용자가 요청하는 추천 리스트의 갯수.
- API 에서 클라이언트로 보내는 return 값
{
"content_base":"content_result (content 기반 추천 ID 리스트 : int arr)",
"user_base":"user_result (collaborate_filtering 기반 추천 ID 리스트 : int arr)",
"num":"request_num (사용자가 요청한 추천 리스트 갯수)"
}예시 :
