Skip to content

API_LIST

SW_JUNGHOONLEE edited this page May 25, 2023 · 21 revisions

Java Spring API

로그인 및 회원가입 기능

  1. 회원가입란에 정보를 입력하고 회원가입을 실시& 파이어베이스 Authentication에 등록
238175978-b22f502b-e53f-450c-a581-c665805d02a6

2.안드로이드 app 에서 그 정보들을 JSON 형태로 서버단에 보낸다

{"user_info":
{
            "UID":"example.com",
            "email":"example@gmail.com",
            "password":"123456",
            "auth":"user"
}
}
  1. 서버에서는 그 정보를 받아 DB에 저장
스크린샷 2023-05-24 오후 7 08 29

식재료 리스트 관리(Using jpa)

1)Entity

데이터 베이스 구조에 맞추어 3개의 레시피 데이터 엔티티를 구성함

-food list(전체 레시피를 구성하는 용도)

Untitled

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

Untitled 1

id값,재료이름,재료의 양, 선택한 레시피의 id값을 담는 총 4개의 필드로 구성

-recipe_Cooking(전체 레시피리스트에서 선택한 레시피의 단계별 조리정보를 가지고있는 엔티티)

Untitled 2

id값,해당조리단계에대한 설명,조리 단계 순서, 선택한 레시피의 id값을 담는 총 4개의 필드로 구성

2) 쿼리 작성(Recipedetail을 예시로)

  • JPQL을 이용하여 id값을 입력 하면 해당하는 data들을 DB에서 retrieve 해줌
%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2023-04-05_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_3 06 04

사용자 레시피를 등록 기능

어플리케이션에서 사용자가 레시피를 등록할 수 있도록 API개발 하였다

Untitled 4

사용자가 위의 화면에서 레시피의 정보들을 입력하면 어플리케이션에서 json으로 변환된 정보들이 parameter로 Access Point http://ec2-43-200-41-187.ap-northeast-2.compute.amazonaws.com:8080/android/saveRecipe 로 post요청됨

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2023-04-05_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9 07 12

api서버로 넘겨져온 recipe정보들은 jpa인터페이스를 이용하여 데이터 베이스에저장

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2023-04-05_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9 08 51

Python FLASK API

음성 인식 챗봇 API 구현.

자체 학습한 명령어 임베딩 및 인텐트, 엔티티 구별 모델에 대한 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 요청 예시 :

Untitled Untitled Untitled Untitled

이때 chatString 내용을 각각 KoBERT 모델, 및 임베딩 → 엔티티 모델에 입력하여 모델 예측 결과를 도출

  • API 에서 클라이언트로 보내는 return 값
{
            "intent":"intent_result(명령어 의도분류 결과)",
            "entity":"entity_result(명령어 엔티티 분류 결과)",
            "append":"entity_num(명령어 엔티티 분류 결과에 따른 제어용 변수)",
            "text":"text(명령어 임베딩 결과)"
}
  • API 요청 return 예시 :

Untitled Untitled Untitled Untitled

추천 시스템 API 구현.

컨텐츠 베이스 및 협업 필터링 기반 필터링 함수들을 API화.

현재 서비스중인 프로그램의 데이터베이스에서 현재 존재하는 레시피 데이터, 사용자 평점 데이터를 추출하여 데이터셋화 하여 이를 기반으로 유사도 테이블 형성 및 추천 리스트를 생성하는 함수들을 API 를 통해 접근 가능하도록 설계함.

음성인식과 동일한 Python Flask 기반의 Flask restx 를 활용하여 recommend_api를 제작.

  • API 사용시 클라이언트로부터 입력받는 내용 (http/body)
{"last_ID" : 0,"user_ID" : 3,"type" : 0,"num" : 5}

예시 :

Untitled

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 (사용자가 요청한 추천 리스트 갯수)"
}

예시 :

Untitled

Gachon-USER

Front End(Android)
Back End
Data Base
API

Clone this wiki locally