"2분반-냉고"의 두 판 사이의 차이
(→포스터) |
(→프로토타입 사진 혹은 작동 장면: group) |
||
| (같은 사용자의 중간 판 9개는 보이지 않습니다) | |||
| 1번째 줄: | 1번째 줄: | ||
__TOC__ | __TOC__ | ||
| + | |||
==프로젝트 개요== | ==프로젝트 개요== | ||
| + | |||
=== 기술개발 과제 === | === 기술개발 과제 === | ||
''' 국문 : ''' 냉고(냉장고 고수) | ''' 국문 : ''' 냉고(냉장고 고수) | ||
''' 영문 : ''' fridge-expert | ''' 영문 : ''' fridge-expert | ||
| + | |||
===과제 팀명=== | ===과제 팀명=== | ||
냉고 | 냉고 | ||
| + | |||
===지도교수=== | ===지도교수=== | ||
이동희 교수님 | 이동희 교수님 | ||
| + | |||
===개발기간=== | ===개발기간=== | ||
2026년 3월 ~ 2026년 6월 (총 4개월) | 2026년 3월 ~ 2026년 6월 (총 4개월) | ||
| + | |||
===구성원 소개=== | ===구성원 소개=== | ||
| − | *서울시립대학교 컴퓨터과학부 | + | *서울시립대학교 컴퓨터과학부 20229200** 김*린(팀장) |
| − | *서울시립대학교 컴퓨터과학부 | + | *서울시립대학교 컴퓨터과학부 20209200** 최*성 |
| − | *서울시립대학교 컴퓨터과학부 | + | *서울시립대학교 컴퓨터과학부 20229200** 백*정 |
| − | *서울시립대학교 컴퓨터과학부 | + | *서울시립대학교 컴퓨터과학부 20239200** 박*우 |
| + | |||
==서론== | ==서론== | ||
| + | |||
===개발 과제의 개요=== | ===개발 과제의 개요=== | ||
| + | |||
====개발 과제 요약==== | ====개발 과제 요약==== | ||
본 과제는 1인 가구 및 자취생을 위한 AI 기반 레시피 추천 모바일 애플리케이션 '냉고(냉장고 고수)'를 개발하는 것을 목표로 한다. 사용자가 보유한 식재료를 텍스트 또는 이미지 형태로 입력하면, RAG(Retrieval-Augmented Generation) 기반 의미 검색 기술을 활용하여 가장 적합한 단일 레시피를 추천한다. 또한 사용자와의 대화를 통해 "다이어트", "맵기 조절" 등의 추가 조건을 반영하여 레시피를 재추천하는 대화형 추천 시스템을 제공한다. 더불어 만개의 레시피와 유튜브 등의 플랫폼에서 약 5,000건 이상의 데이터를 구축하고, 사용자 참여형 레시피 커뮤니티를 통해 지속적으로 데이터를 확장하는 것을 목표로 한다. | 본 과제는 1인 가구 및 자취생을 위한 AI 기반 레시피 추천 모바일 애플리케이션 '냉고(냉장고 고수)'를 개발하는 것을 목표로 한다. 사용자가 보유한 식재료를 텍스트 또는 이미지 형태로 입력하면, RAG(Retrieval-Augmented Generation) 기반 의미 검색 기술을 활용하여 가장 적합한 단일 레시피를 추천한다. 또한 사용자와의 대화를 통해 "다이어트", "맵기 조절" 등의 추가 조건을 반영하여 레시피를 재추천하는 대화형 추천 시스템을 제공한다. 더불어 만개의 레시피와 유튜브 등의 플랫폼에서 약 5,000건 이상의 데이터를 구축하고, 사용자 참여형 레시피 커뮤니티를 통해 지속적으로 데이터를 확장하는 것을 목표로 한다. | ||
| 35번째 줄: | 44번째 줄: | ||
===관련 기술의 현황=== | ===관련 기술의 현황=== | ||
| + | |||
====관련 기술의 현황 및 분석(State of art)==== | ====관련 기술의 현황 및 분석(State of art)==== | ||
*전 세계적인 기술현황 | *전 세계적인 기술현황 | ||
| 119번째 줄: | 129번째 줄: | ||
===개발과제의 기대효과=== | ===개발과제의 기대효과=== | ||
| + | |||
====기술적 기대효과==== | ====기술적 기대효과==== | ||
*단일 단계의 RAG 활용을 넘어, 사용자 입력에 따라 반복적으로 Retrieval과 Generation을 수행하는 다단계 RAG 구조를 구현할 수 있다. 초기에는 보유 재료를 기반으로 1차 레시피를 추천하고, 이후 사용자가 추가 조건을 입력할 경우 이를 반영하여 재검색·재생성을 수행한다. | *단일 단계의 RAG 활용을 넘어, 사용자 입력에 따라 반복적으로 Retrieval과 Generation을 수행하는 다단계 RAG 구조를 구현할 수 있다. 초기에는 보유 재료를 기반으로 1차 레시피를 추천하고, 이후 사용자가 추가 조건을 입력할 경우 이를 반영하여 재검색·재생성을 수행한다. | ||
| 133번째 줄: | 144번째 줄: | ||
===기술개발 일정 및 추진체계=== | ===기술개발 일정 및 추진체계=== | ||
| + | |||
====개발 일정==== | ====개발 일정==== | ||
개발 기간은 2026년 3월부터 2026년 6월까지 약 4개월간 진행되었으며, 단계별 추진 순서는 위 '기술 로드맵'(기본 시스템 구축 → API 연동 및 기본 기능 → RAG 기반 추천 시스템 → 대화형 추천 확장 → 이미지 기반 재료 인식 → 커뮤니티 기능)을 따른다. | 개발 기간은 2026년 3월부터 2026년 6월까지 약 4개월간 진행되었으며, 단계별 추진 순서는 위 '기술 로드맵'(기본 시스템 구축 → API 연동 및 기본 기능 → RAG 기반 추천 시스템 → 대화형 추천 확장 → 이미지 기반 재료 인식 → 커뮤니티 기능)을 따른다. | ||
| 142번째 줄: | 154번째 줄: | ||
*백민정(팀원) : UI/UX 디자인, 프론트엔드 | *백민정(팀원) : UI/UX 디자인, 프론트엔드 | ||
*박진우(팀원) : 백엔드(서버) | *박진우(팀원) : 백엔드(서버) | ||
| + | |||
==설계== | ==설계== | ||
| + | |||
===설계사양=== | ===설계사양=== | ||
| + | |||
====제품의 요구사항==== | ====제품의 요구사항==== | ||
{| class="wikitable" | {| class="wikitable" | ||
| 265번째 줄: | 280번째 줄: | ||
===상세설계 내용=== | ===상세설계 내용=== | ||
'''[시스템 아키텍처]''' 사용자 입력 → 의도 분석 → 검색 계획 → 벡터 검색 → 추천 응답 스트리밍 파이프라인. | '''[시스템 아키텍처]''' 사용자 입력 → 의도 분석 → 검색 계획 → 벡터 검색 → 추천 응답 스트리밍 파이프라인. | ||
| + | <gallery widths="460" heights="300"> | ||
| + | 파일:naengo_architecture.png|없음|시스템 아키텍처 | ||
| + | </gallery> | ||
'''2.5 조립도 ― 컴포넌트''' | '''2.5 조립도 ― 컴포넌트''' | ||
| 395번째 줄: | 413번째 줄: | ||
==결과 및 평가== | ==결과 및 평가== | ||
| + | |||
===완료 작품의 소개=== | ===완료 작품의 소개=== | ||
| + | |||
====프로토타입 사진 혹은 작동 장면==== | ====프로토타입 사진 혹은 작동 장면==== | ||
| − | 완성된 애플리케이션의 주요 화면은 다음과 같다. ( | + | 완성된 애플리케이션의 주요 화면은 다음과 같다. |
| − | + | ||
| − | + | ;메인 화면 | |
| − | + | [[파일:냉고_메인화면.jpg|섬네일|없음|메인 화면]] | |
| − | + | ||
| − | + | ;프로필 및 패널 (비로그인 상태) | |
| − | + | <div style="display:flex; flex-wrap:wrap; gap:8px;"> | |
| + | [[파일:냉고_프로필_비로그인_1.jpg|섬네일|없음|프로필 및 패널 (비로그인)]] | ||
| + | [[파일:냉고_프로필_비로그인_2.jpg|섬네일|없음|프로필 및 패널 (비로그인)]] | ||
| + | [[파일:냉고_프로필_비로그인_3.jpg|섬네일|없음|프로필 및 패널 (비로그인)]] | ||
| + | </div> | ||
| + | |||
| + | ;메인 화면 및 패널 (로그인 상태) | ||
| + | <div style="display:flex; flex-wrap:wrap; gap:8px;"> | ||
| + | [[파일:냉고_메인_로그인_1.jpg|섬네일|없음|메인 화면 및 패널 (로그인)]] | ||
| + | [[파일:냉고_메인_로그인_2.jpg|섬네일|없음|메인 화면 및 패널 (로그인)]] | ||
| + | [[파일:냉고_메인_로그인_3.jpg|섬네일|없음|메인 화면 및 패널 (로그인)]] | ||
| + | [[파일:냉고_메인_로그인_4.jpg|섬네일|없음|메인 화면 및 패널 (로그인)]] | ||
| + | [[파일:냉고_메인_로그인_5.jpg|섬네일|없음|메인 화면 및 패널 (로그인)]] | ||
| + | [[파일:냉고_메인_로그인_6.jpg|섬네일|없음|메인 화면 및 패널 (로그인)]] | ||
| + | </div> | ||
| + | |||
| + | ;채팅 화면 및 상세보기 | ||
| + | [[파일:냉고_채팅화면.jpg|섬네일|없음|채팅 화면 및 상세보기]] | ||
| + | |||
| + | ;게시판 및 내 레시피 | ||
| + | <div style="display:flex; flex-wrap:wrap; gap:8px;"> | ||
| + | [[파일:냉고_게시판_1.jpg|섬네일|없음|게시판 및 내 레시피]] | ||
| + | [[파일:냉고_게시판_2.jpg|섬네일|없음|게시판 및 내 레시피]] | ||
| + | </div> | ||
| + | |||
| + | ;레시피 작성 | ||
| + | <div style="display:flex; flex-wrap:wrap; gap:8px;"> | ||
| + | [[파일:냉고_레시피작성_1.jpg|섬네일|없음|레시피 작성]] | ||
| + | [[파일:냉고_레시피작성_2.jpg|섬네일|없음|레시피 작성]] | ||
| + | [[파일:냉고_레시피작성_3.jpg|섬네일|없음|레시피 작성]] | ||
| + | </div> | ||
| − | + | ;Google Play 사전 체험판 등록 | |
| − | + | [[파일:냉고_플레이스토어.jpg|섬네일|없음|Google Play 사전 체험판 등록]] | |
| − | + | ||
| − | + | ====포스터==== | |
| + | ※ 원문에 포스터 항목은 포함되어 있지 않다. | ||
===관련사업비 내역서=== | ===관련사업비 내역서=== | ||
| 415번째 줄: | 466번째 줄: | ||
! 항목 (품명·규격) !! 세부 내역 !! 금액 !! 비고 | ! 항목 (품명·규격) !! 세부 내역 !! 금액 !! 비고 | ||
|- | |- | ||
| − | | OpenAI API 사용료 || 8,349 + | + | | OpenAI API 사용료 || 8,349 + 8,368 + 8,368 + 16,752 + 41,818 || 83,655원 || |
|- | |- | ||
| − | | Anthropic Claude API 사용료 || 33,876 + 8,265 + 33,092 + 25,366 + 18,752 + 34,392 + 18,867 | + | | Anthropic Claude API 사용료 || 33,876 + 8,265 + 33,092 + 25,366 + 18,752 + 34,392 + 25,786 + 18,867 || 198,396원 || |
|- | |- | ||
| AWS 서버 || 22,961 + 146,123 || 169,084원 || | | AWS 서버 || 22,961 + 146,123 || 169,084원 || | ||
| 425번째 줄: | 476번째 줄: | ||
| 호스팅케이알 도메인 || 19,800 || 19,800원 || 현금 | | 호스팅케이알 도메인 || 19,800 || 19,800원 || 현금 | ||
|- | |- | ||
| − | ! colspan="2" | 합계 !! colspan="2" | | + | | 도서 구매 || 65,700 (도서 2권) || 65,700원 || 현금 |
| + | |- | ||
| + | ! colspan="2" | 합계 !! colspan="2" | 575,080원 | ||
|} | |} | ||
| − | ※ 총 예산 600천원 중 | + | ※ 총 예산 600천원 중 575,080원 집행 (잔액 24,920원). 학교부담금 600천원 / 과제팀부담금 0원. |
'''[자재소요서 ― 외부 서비스 및 API]''' | '''[자재소요서 ― 외부 서비스 및 API]''' | ||
| 508번째 줄: | 561번째 줄: | ||
===특허 출원 내용=== | ===특허 출원 내용=== | ||
| − | ※ 현재 출원된 특허는 없으며 차별화 핵심 요소는 다음과 같다. | + | ※ 현재 출원된 특허는 없으며, 향후 특허 출원을 검토 중인 단계이다. 차별화 핵심 요소는 다음과 같다. |
*RAG 기반 의미 검색 + 대화형 조건 반영 + 재료 기반 추천을 결합한 구조 | *RAG 기반 의미 검색 + 대화형 조건 반영 + 재료 기반 추천을 결합한 구조 | ||
*재료 메타데이터 기반 사전 필터링과 벡터 검색을 결합한 구조 | *재료 메타데이터 기반 사전 필터링과 벡터 검색을 결합한 구조 | ||
*사용자 대화 입력을 반영한 Query 재구성 및 재검색 방식 | *사용자 대화 입력을 반영한 Query 재구성 및 재검색 방식 | ||
*이미지 기반 재료 추출과 RAG 시스템의 연동 구조 | *이미지 기반 재료 추출과 RAG 시스템의 연동 구조 | ||
2026년 6월 26일 (금) 19:36 기준 최신판
프로젝트 개요
기술개발 과제
국문 : 냉고(냉장고 고수) 영문 : fridge-expert
과제 팀명
냉고
지도교수
이동희 교수님
개발기간
2026년 3월 ~ 2026년 6월 (총 4개월)
구성원 소개
- 서울시립대학교 컴퓨터과학부 20229200** 김*린(팀장)
- 서울시립대학교 컴퓨터과학부 20209200** 최*성
- 서울시립대학교 컴퓨터과학부 20229200** 백*정
- 서울시립대학교 컴퓨터과학부 20239200** 박*우
서론
개발 과제의 개요
개발 과제 요약
본 과제는 1인 가구 및 자취생을 위한 AI 기반 레시피 추천 모바일 애플리케이션 '냉고(냉장고 고수)'를 개발하는 것을 목표로 한다. 사용자가 보유한 식재료를 텍스트 또는 이미지 형태로 입력하면, RAG(Retrieval-Augmented Generation) 기반 의미 검색 기술을 활용하여 가장 적합한 단일 레시피를 추천한다. 또한 사용자와의 대화를 통해 "다이어트", "맵기 조절" 등의 추가 조건을 반영하여 레시피를 재추천하는 대화형 추천 시스템을 제공한다. 더불어 만개의 레시피와 유튜브 등의 플랫폼에서 약 5,000건 이상의 데이터를 구축하고, 사용자 참여형 레시피 커뮤니티를 통해 지속적으로 데이터를 확장하는 것을 목표로 한다.
개발 과제의 배경
- 2025년 대한민국 1인 가구는 804만 5천 가구로 전체 가구의 36.1%를 차지하여 역대 최고치를 경신했다.
- 기존 요리 애플리케이션은 가족 단위 식사나 복잡한 요리를 중심으로 구성되어 있어, 자취생이나 1인 가구가 활용하기에 실용성이 낮은 경우가 많다.
- 자취생은 냉장고에 남은 재료를 효율적으로 활용하기 어려워, 식재료 낭비가 발생하는 문제가 존재한다.
- 재료 기반 레시피 추천과 간단한 요리 중심의 콘텐츠를 제공함으로써 1인 가구의 요리 접근성을 높일 수 있다.
- 사용자 간 레시피 공유 커뮤니티를 통해 실생활에 적합한 간단하고 현실적인 요리 정보를 확산할 수 있다.
개발 과제의 목표 및 내용
- 사용자가 보유한 재료를 입력하거나 사진 촬영을 통해 재료를 인식하여 레시피를 추천하는 기능을 구현한다.
- 챗봇 기반 인터페이스를 활용하여 사용자와의 대화를 통해 개인 맞춤형 레시피를 제공한다.
- 사용자들이 직접 레시피를 등록하고 공유할 수 있는 커뮤니티 게시판 기능을 구현하며, AI는 이를 학습하여 레시피 추천에 반영한다.
- 안드로이드 기반 모바일 애플리케이션으로 개발하며, Node.js 서버와 PostgreSQL 데이터베이스를 활용하여 시스템을 구축한다.
관련 기술의 현황
관련 기술의 현황 및 분석(State of art)
- 전 세계적인 기술현황
- 최근 인공지능 분야에서는 대형 언어모델(LLM)과 이를 보완하는 RAG(Retrieval-Augmented Generation) 기술이 핵심 패러다임으로 자리 잡고 있다.
- 최근에는 RAG와 추천 시스템을 결합한 구조가 활발히 연구되고 있다. 2026년 발표된 연구에서는 Retrieval-Augmented LLM 기반 추천 시스템이 제안되었으며, retrieval 모듈과 사용자 행동 데이터를 결합하여 추천 성능을 향상시키는 구조가 제시되었다.
- 특허조사 및 특허 전략 분석
- [특허조사]
- 카테고리로 분류된 식재료 추출 방법과 이를 이용한 레시피 추천 방법 및 이를 위한 관리 장치 (공개번호: 1020240099972, 출원인: 숭실대학교산학협력단) — 영수증 이미지 등에서 식재료를 추출하고, BERT 기반 모델로 재료를 카테고리화하여 사용자 식재료 DB를 구축한 후 레시피를 추천한다.
- AI를 이용한 개인 맞춤형 레시피 제공 플랫폼 시스템 (공개번호: 1020230075299, 출원인: 성신여자대학교 연구 산학협력단) — 전용 애플리케이션을 통해 레시피를 제공받는 사용자 단말 중심의 개인 맞춤형 레시피 제공 플랫폼이다.
- [특허전략]
- 기존 특허가 단순 매칭 기반 추천 또는 정적 추천 시스템에 집중되어 있다는 점을 고려하여, "RAG 기반 의미 검색 + 대화형 조건 반영 + 재료 기반 추천"의 결합적 구조를 핵심 차별 요소로 설정한다.
- 재료 메타데이터 기반 사전 필터링과 벡터 검색 결합 구조, 사용자 대화 입력을 반영한 Query 재구성 및 재검색 방식, 이미지 기반 재료 추출과 RAG 시스템의 연동 구조를 중심으로 특허 가능성을 고려한다.
- 기존 기술 대비 정확도·개인화·실시간성 측면에서 차별화된 시스템으로 발전시키고, 향후 특허 출원을 검토한다.
- 기술 로드맵
- 기본 시스템 구축 : 크로스 플랫폼(iOS & Android) UI 구현 및 Spring Boot 서버·PostgreSQL DB 구축
- API 연동 및 기본 기능 구현 : REST API 설계, 프론트-백엔드 연동 및 데이터를 활용한 레시피 추천 흐름 구현
- RAG 기반 추천 시스템 구축 : 임베딩 모델 적용, pgvector 기반 벡터 DB 구축, 코사인 유사도 기반 검색 구현
- 대화형 추천 기능 확장 : 사용자 조건 입력 처리 및 Query 재구성·재검색 기능 구현
- 이미지 기반 재료 인식 : Vision API 적용 및 이미지 재료 추출 후 RAG 연계
- 커뮤니티 기능 구현 : 레시피 게시판 기능 개발 및 사용자 데이터 축적 구조 구축
시장상황에 대한 분석
- 경쟁제품 조사 비교
- 만개의 레시피 : 다양한 사용자 레시피와 방대한 요리 데이터를 제공하는 대표적인 레시피 플랫폼. 커뮤니티 기반 공유가 활발하나, 특정 재료 기반 추천 기능이 제한적이고 1인 가구·자취생용 간단 레시피 중심 서비스는 부족하다.
- 삼성푸드 : 식단 관리와 레시피 추천을 제공하는 음식 관리 플랫폼. 다양한 콘텐츠와 식단 관리 기능이 강점이나, 사용자와 상호작용하는 AI 챗봇 기능이 없어 개인 맞춤형 추천이 제한적이다.
- Fridge Scanner : 냉장고 재료를 촬영·입력하면 해당 재료로 만들 수 있는 레시피를 추천. 재료 인식 기능이 특징이나, 카테고리 구조가 복잡하고 자취생에게는 난이도가 높은 레시피가 많으며 추가 정보 입력 기반 추천 기능이 없다.
- 해먹으리 : 외부 영상을 AI가 자동으로 레시피로 변환하고 단계별 영상-레시피 동기화를 제공. AI 기반 요리 Q&A를 포함하나, 추천보다는 저장 기능에 치중하여 상황 기반 자동 추천이 제한적이다.
- 쿡잉 : 냉장고 재료를 스캔·등록하면 조리 도구 등 현재 상황에 맞는 요리를 AI가 추천. 레시피 관리·저장·커스터마이징 기능이 부족하고 취향 기반 개인화가 제한적이다.
| 구분 | 만개의 레시피 | 삼성푸드 | Fridge Scanner | 해먹으리 | 쿡잉 |
|---|---|---|---|---|---|
| 핵심 기능 | 레시피 공유 | 식단 관리 | 재료 기반 추천 | 영상 레시피 추출 + AI 변환 | 재료 기반 AI 추천 |
| 재료 기반 추천 | △ | X | O | X | O |
| AI 활용 | 없음 | △ | △ | O | O |
| 개인화 추천 | X | △ | △ | △ | △ |
| 사용 목적 | 레시피 탐색 | 식단 관리 | 재료 활용 | 레시피 저장/활용 | 빠른 메뉴 결정 |
| 사용 난이도 | 낮음 | 보통 | 높음 | 낮음 | 낮음 |
- 마케팅 전략 제시
- [냉고의 차별점 및 특성]
- RAG 기반 의미 검색을 통해 재료와 조건을 종합적으로 고려한 레시피를 추천한다.
- 재료 중심 구조를 기반으로 현재 보유 식재료로 만들 수 있는 요리를 우선 추천한다.
- 챗봇을 통해 추가 조건을 반영하는 대화형 추천 시스템을 제공한다.
- 자취생을 대상으로 간단하고 실용적인 레시피에 집중하며, 데이터 5,000개 이상을 수집·정제한다.
- 사용자 레시피 공유를 통해 데이터가 축적되는 참여형 구조를 구축한다.
| Strength | Weaknesses |
|---|---|
|
|
| Opportunities | Threats |
|
|
개발과제의 기대효과
기술적 기대효과
- 단일 단계의 RAG 활용을 넘어, 사용자 입력에 따라 반복적으로 Retrieval과 Generation을 수행하는 다단계 RAG 구조를 구현할 수 있다. 초기에는 보유 재료를 기반으로 1차 레시피를 추천하고, 이후 사용자가 추가 조건을 입력할 경우 이를 반영하여 재검색·재생성을 수행한다.
- 다단계 RAG 구조는 단순 검색 결과 반환이 아닌, 조건 기반 재랭킹 및 필터링을 포함한 반복적 추천 프로세스(iterative recommendation pipeline)를 가능하게 한다. 이를 통해 사용자 요구 변화에 유연하게 대응하고 추천 결과의 정밀도와 개인화 수준을 동시에 향상시킬 수 있다.
- 조건 반영 과정에서 메타데이터 필터링과 의미 기반 검색을 함께 활용함으로써, 검색 공간을 효과적으로 축소하고 불필요한 후보를 제거할 수 있다. 이는 시스템 효율성 및 응답 속도 개선에 기여한다.
- 임베딩 모델 및 유사도 계산 방법의 비교·적용을 통해 의미 기반 검색 성능 최적화에 대한 실험적 결과를 도출할 수 있다.
- 메타데이터 기반 필터링과 벡터 검색을 결합하여 검색 정확도 향상 및 응답 속도(latency) 개선 효과를 기대할 수 있다.
경제적, 사회적 기대 및 파급효과
- 1인 가구 증가에 따라 간편 요리에 대한 수요를 충족시키는 실용적인 생활 밀착형 서비스로 활용될 수 있다.
- 식재료 활용도를 높여 음식물 쓰레기 감소 및 자원 절약에 기여함으로써, 환경적 지속가능성 측면에서 긍정적인 효과를 기대할 수 있다.
- 개인 맞춤형 식단 추천을 통해 건강한 식생활 형성 및 식습관 개선에 기여할 수 있다.
- 사용자 참여 기반 레시피 공유를 통해 지속적인 콘텐츠 생산 구조를 형성할 수 있다.
기술개발 일정 및 추진체계
개발 일정
개발 기간은 2026년 3월부터 2026년 6월까지 약 4개월간 진행되었으며, 단계별 추진 순서는 위 '기술 로드맵'(기본 시스템 구축 → API 연동 및 기본 기능 → RAG 기반 추천 시스템 → 대화형 추천 확장 → 이미지 기반 재료 인식 → 커뮤니티 기능)을 따른다. ※ 원문에는 월별 세부 일정표(Gantt 등)가 별도로 포함되어 있지 않다.
구성원 및 추진체계
- 김나린(팀장) : 프론트엔드, 서류 정리
- 최유성(팀원) : 백엔드(AI 담당)
- 백민정(팀원) : UI/UX 디자인, 프론트엔드
- 박진우(팀원) : 백엔드(서버)
설계
설계사양
제품의 요구사항
| 번호 | 요구사항 | D or W | 비고 |
|---|---|---|---|
| 1 | 소셜 계정을 통한 회원가입 및 로그인 | D | |
| 2 | 메인 화면에서 레시피 추천 기능 접근 | D | |
| 3 | 사용자가 재료를 텍스트로 입력할 수 있다 | D | |
| 4 | 사용자가 재료 사진을 업로드할 수 있다 | D | |
| 5 | 이미지에서 식재료를 추출할 수 있다 | D | Vision API 기반 인식 |
| 6 | 입력된 재료를 기반으로 질의를 생성한다 | D | RAG 기반 검색 수행 |
| 7 | 생성된 질의를 임베딩하여 벡터로 변환한다 | D | |
| 8 | 검색된 레시피 중 가장 적합한 레시피를 선택한다 | D | |
| 9 | 추천된 레시피를 사용자에게 출력한다 | D | |
| 10 | 사용자가 추가 조건을 입력할 수 있다 | D | 예: 다이어트, 맵기 |
| 11 | 추가 조건을 반영하여 질의를 재구성한다 | D | 재료 + 조건 결합 |
| 12 | 재구성된 질의를 기반으로 레시피를 재검색한다 | D | |
| 13 | 조건이 반영된 새로운 레시피를 출력한다 | D | |
| 14 | 새 채팅방을 생성할 수 있다 | D | |
| 15 | 이전 대화 기록을 볼 수 있다 | D | |
| 16 | 사용자가 게시판에 자신만의 레시피를 작성할 수 있다 | D | |
| 17 | 게시판에서 사용자 레시피 목록을 조회할 수 있다 | D | |
| 18 | 레시피 상세 정보를 조회할 수 있다 | D | |
| 19 | 레시피에 좋아요를 누를 수 있다 | W | |
| 20 | 레시피를 인기순/최신순/내북마크 순으로 볼 수 있다 | D | |
| 21 | 사용자 프로필 조회 및 수정 기능 | W | 닉네임, 프로필 이미지 |
| 22 | 로그아웃 및 회원탈퇴 기능 | W | |
| 23 | 사용자가 자신이 작성한 레시피 목록을 조회할 수 있다 | D | |
| 24 | 작성한 레시피의 상태를 확인할 수 있다 | D | 상태: 승인/검토/반려 |
| 25 | 추천 레시피를 북마크할 수 있다 | D | |
| 26 | 북마크한 레시피 목록을 조회할 수 있다 | D | |
| 27 | 추천 레시피의 난이도 및 소요 시간을 제공한다 | D |
※ D : Demand(필수 요구사항), W : Want(선택 요구사항)
설계 사양
시스템은 '사용자 입력 → 의도 분석 → 검색 계획 → 벡터 검색 → 추천 응답 스트리밍'으로 이어지는 파이프라인 구조로 설계되었다. 프론트엔드(Flutter)에서 입력된 메시지·재료·조건·이미지를 백엔드(FastAPI)로 전달하고, AI Agent가 의도를 분류한 뒤 RAG 기반 검색을 수행하여 추천 결과를 SSE(Server-Sent Events) 방식으로 실시간 스트리밍한다.
개념설계안
- AI 채팅 기반 맞춤형 레시피 추천 기능
- 설명 : 사용자가 보유 재료, 선호 음식, 조리 시간 등 다양한 요구사항을 자연어로 입력하면, AI를 활용하여 사용자 조건에 적합한 레시피를 추천한다.
- 기술적 특징 및 AI 활용 이점
- LLM 기반 AI로 사용자의 자연어 입력을 이해하고 조건에 맞는 레시피를 생성·추천한다.
- SSE 기반 스트리밍을 적용하여 AI 응답을 청크 단위로 실시간 출력함으로써 응답 대기 시간을 감소시킨다.
- 동일 채팅방 내 이전 대화 내용을 AI 컨텍스트로 활용하여 연속적인 질의응답 및 맞춤 추천이 가능하다.
- AI 응답과 함께 추천 레시피 객체를 칩(Chip) 형태로 제공하여 상세 화면으로 즉시 이동할 수 있다.
- 사용자별 채팅방 단위로 대화를 분리하여 주제별 대화 관리 및 개인화된 추천 환경을 제공한다.
- 동작 과정 예시 : 홈 화면 입력창에 질문 입력 → 새 채팅방 자동 생성 → AI 응답 실시간 스트리밍 → 추천 레시피 칩 선택 → 레시피 상세 화면 이동
- 사진 인식 기반 재료 분석 및 레시피 추천 기능
- 설명 : 사용자가 냉장고 내부 또는 식재료 사진을 촬영하면, 멀티모달 AI가 사진 속 재료를 분석하고 이에 적합한 레시피를 추천한다.
- 기술적 특징 및 AI 활용 이점
- 재료명을 직접 입력하지 않아도 이미지 기반 AI 분석으로 재료 정보를 자동 추출한다.
- 멀티모달 AI로 이미지와 텍스트를 함께 처리하여 재료 인식 정확도를 향상시킨다.
- 촬영 직후 미리보기 단계를 제공하여 재촬영·전송 여부를 선택할 수 있다.
- 분석된 이미지를 채팅 버블 형태로 대화 흐름에 통합하여 대화 경험의 연속성을 유지한다.
- 동작 과정 예시
- 홈 화면에서 카메라 실행 : 카메라 아이콘 선택 → 사진 촬영 → 미리보기 확인 → 전송 → 새 채팅방 생성 및 사진 첨부 → AI 응답 스트리밍 확인
- 진행 중인 채팅방에서 카메라 실행 : 카메라 아이콘 선택 → 동일한 촬영·전송 과정 → 기존 채팅 컨텍스트를 활용한 재료 분석 및 레시피 추천
- 레시피 게시판 기반 정보 공유 기능
- 설명 : 공식 레시피와 사용자 작성 레시피를 제공하는 게시판을 통해 사용자 간 정보 공유 및 커뮤니티 기능을 지원한다.
- 기술적 특징 및 AI 활용 이점
- 전체 레시피와 사용자 작성 레시피를 분리하여 탐색 기능과 개인 관리 기능을 구분한다.
- 최신순·좋아요순·북마크순 정렬을 제공하여 다양한 탐색 시나리오를 지원한다.
- ValueNotifier 기반 상태 동기화로 좋아요·북마크 상태 변경을 실시간 반영한다.
- 상세 화면에서 재료 목록, 조리 과정, 조리 팁, 인분 수, 조리 시간, 칼로리, 이미지·영상 URL 등 다양한 메타데이터를 제공한다.
- 승인된 사용자 레시피 데이터를 AI 학습 데이터로 활용하여 추천 품질 향상에 기여한다.
- 동작 과정 예시
- 레시피 탐색 : 게시판 진입 → 정렬 옵션 선택 → 레시피 카드 선택 → 상세 화면 진입 → 좋아요·북마크 활용
- 레시피 작성 : 사이드 메뉴 → '레시피 작성하기' 선택 → 제목·재료·조리법·이미지 입력 → 게시글 등록
이론적 계산 및 시뮬레이션
| 시뮬레이션 항목 | 방법 및 기대 결과 |
|---|---|
| 의도 분류 정확도 | 테스트 발화 세트를 기준으로 IntentClassifier가 RECIPE_RECOMMENDATION, PROFILE_UPDATE, OFF_TOPIC 등 목표 intent를 맞히는지 측정. (목표: 주요 intent F1-Score 0.85 이상) |
| 벡터 검색 정합성 | 추천 요청별 상위 N개 레시피가 재료·상황에 부합하는지 Precision@5로 측정. (목표: Precision@5 60% 이상) |
| SSE 이벤트 안정성 | room, metadata, message, profile_update, recipes, done, error 이벤트 순서와 종료 처리가 프론트엔드 렌더링 흐름에 맞는지 통합 테스트. (목표: 정상 시나리오 100% 완료) |
| 시뮬레이션 항목 | 측정 방법 | 목표 | 측정값 | 판정 |
|---|---|---|---|---|
| 의도 분류 정확도 | 7개 카테고리 140개 발화로 IntentClassifier의 예측 라벨과 정답 라벨을 비교, Macro F1-Score 산출 | Macro F1 ≥ 0.85 | 0.87 | 통과 |
| 벡터 검색 정합성 | 20개 추천 시나리오에 대해 사전 라벨링된 정답 셋과 pgvector 검색 상위 5개 결과를 비교, Precision@5 산출 | Precision@5 ≥ 0.60 | 0.68 | 통과 |
| SSE 이벤트 안정성 | room, metadata, message(×N), recipes(opt), done 이벤트의 순서와 종료 처리를 15개 정상 시나리오로 통합 테스트 | 정상 시나리오 100% 완료 | 100% | 통과 |
상세설계 내용
[시스템 아키텍처] 사용자 입력 → 의도 분석 → 검색 계획 → 벡터 검색 → 추천 응답 스트리밍 파이프라인.
2.5 조립도 ― 컴포넌트
| ID | 컴포넌트 | 기술 스택 | 역할 |
|---|---|---|---|
| C1 | 프론트엔드 앱 | Flutter/Dart 기반 클라이언트 | 채팅 화면, 추천 레시피 카드, 레시피 목록·상세, 좋아요·스크랩, 제출 레시피 상태 확인 UI |
| C2 | 백엔드 API 서버 | Python 3.13 + FastAPI | REST API, SSE 스트리밍, 인증/권한 경계, OpenAPI 문서 제공 |
| C3 | AI Agent | PydanticAI + LLM Gateway | 의도 분류, route 결정, 대화 응답 생성, 프로필 업데이트 후보 생성 |
| C4 | 검색 계획 모듈 | RecipeSearchPlanner | 사용자 발화를 검색 query와 필터 후보 JSON으로 변환 |
| C5 | 레시피 검색 모듈 | Embedding API + pgvector | 레시피 임베딩 검색, cutoff, metadata 기반 rerank |
| C6 | 데이터베이스 | PostgreSQL | 사용자, 레시피, 채팅, 스크랩, staging/import 상태 저장 |
| C7 | 데이터 수집/정제 | CLI scripts | 공공데이터·만개의레시피 원본 수집, 파싱, 검수, production import |
| C8 | 관리자 웹(Admin) | React/Vite/Tailwind 기반 Admin 클라이언트 + Admin API | 제출 레시피 심사, 필수 필드 보완, 승인/반려, recipe source 검수·import, 관리자용 레시피 조회 UI |
| C9 | 배포/품질 | Docker, GitHub Actions, Ruff, pytest | 개발·운영 컨테이너, EC2 배포, 테스트 자동화 |
2.5 조립도 ― 데이터 흐름
| 단계 | 흐름 | 설명 |
|---|---|---|
| 1 | C1 → C2 | 사용자가 Flutter 앱 채팅 화면에서 메시지·보유 재료·조건 또는 이미지를 입력하면 프론트엔드가 Chat API로 전송한다. |
| 2 | C2 → C3 | AgentService가 대화 이력을 불러오고 IntentClassifier로 사용자 의도를 분류한다. |
| 3 | C3 → C4 | 레시피 추천 의도인 경우 RecipeSearchPlanner가 query_text, main_ingredients, avoid_ingredients, cooking_time_max 등을 만든다. |
| 4 | C4 → C5 | RecipeRetrievalService가 embedding 검색과 cosine cutoff를 적용해 후보 레시피를 선별한다. |
| 5 | C5 → C6 | 레시피 상세, 재료, 단계, 미디어, 통계, 사용자 좋아요·스크랩 상태를 조합한다. |
| 6 | C3 → C2 | StreamEventBuilder가 metadata, message, recipes, done 이벤트를 순서대로 구성한다. |
| 7 | C2 → C1 | SSE로 답변 chunk와 추천 레시피 배열을 전송하고, 프론트엔드는 채팅 답변·추천 카드·레시피 상세 진입 UI를 갱신한다. |
| 8 | C7 → C6 | batch script가 원본 레시피를 staging에 저장하고, 승인된 source를 production recipes로 import한다. |
| 9 | C8 → C2/C6 | 관리자가 Admin 웹에서 제출 레시피와 recipe source를 검수하고, Admin API로 상태 수정·승인·반려·import를 수행한다. 처리 결과는 DB에 반영된다. |
2.6 부품도 ― AI Agent
| 사양 | 내용 |
|---|---|
| 입력 | 사용자 메시지, 최근 대화 이력, 사용자 프로필, 이미지 분석 결과, intent result |
| 출력 | assistant message, 추천 레시피 id 목록, 추천 근거, 프로필 업데이트 후보, live research 사용 여부 |
| 주요 route | RECIPE_RECOMMENDATION, RECIPE_DETAIL_QUESTION, COOKING_TIP, INGREDIENT_SUBSTITUTION, DIET_OR_ALLERGY, PROFILE_UPDATE, IMAGE_BASED_RECIPE, IDENTITY, SMALLTALK, OFF_TOPIC |
| 안전 정책 | 취향·알레르기·식이 제한은 AUTO_SAVE, REQUIRE_CONFIRMATION, IGNORE 정책으로 분류한다. |
| 품질 기준 | LLM/embedding API는 mock으로 경계 분리하고, route 선택·SSE 이벤트·DB 저장 여부를 서비스 테스트로 검증한다. |
2.6 부품도 ― 레시피 검색 및 RAG
| 사양 | 내용 |
|---|---|
| 입력 | 검색 query_text, 보유/제외/필수 재료, 조리 시간, 난이도, cuisine, taste, diet 조건 |
| 처리 | Embedding API로 query를 벡터화하고 recipe_embeddings의 pgvector similarity를 검색한다. |
| 후처리 | 낮은 score는 cutoff로 제외하고, 재료·카테고리·제목 일치·사용자 선호·인기도 신호로 rerank한다. |
| 출력 | 프론트엔드가 바로 렌더링 가능한 Recipe 배열과 추천 근거 요약 |
| 확장 | 프로필 기반 가중치, 싫어하는 재료 패널티, 최근 추천 중복 회피, live research 보강 |
2.6 부품도 ― 데이터 수집/정제 파이프라인
| 사양 | 내용 |
|---|---|
| Source | foodsafetykorea 공공데이터, 만개의레시피 웹 스크래핑 데이터 |
| Staging | recipe_sources.raw_payload에 원본을 보존하고 recipe_source_extractions*에 파싱 결과를 저장한다. |
| 검수 | parse_status, review_status, import_status로 lifecycle을 분리해 운영자가 승인 가능한 상태를 관리한다. |
| Import | APPROVED + NOT_IMPORTED source만 recipes*, recipe_ingredients, recipe_steps, recipe_labels, recipe_nutrition으로 이동한다. |
| 후속 작업 | classification backfill, embedding backfill, 선택적 AI image generation을 import 이후 분리 실행한다. |
2.7 소프트웨어 설계 ― 백엔드 API 엔드포인트
| Method | Endpoint | 입력 | 출력 | 비고 |
|---|---|---|---|---|
| GET | /api/v1/users/me | - | 사용자 계정 정보 | 인증 연동 전 임시 사용자 컨텍스트 사용 |
| POST | /api/v1/users/me/profile | {text} | 최신순 user_input | 개인화 정보 저장 |
| GET | /api/v1/recipes | cursor, limit, sort | items, next_cursor, has_next | 전체 레시피 목록 및 무한 스크롤용 페이지네이션 |
| GET | /api/v1/recipes/{recipe_id} | - | 레시피 상세, 재료, 단계, 미디어, likes_count, scrap_count, is_liked, is_scrapped | 상세 화면 및 토글 후 상태 동기화용 |
| POST | /api/v1/chat/rooms | 초기 메시지 | SSE 이벤트 | 새 채팅방 생성 |
| POST | /api/v1/chat/rooms/{room_id} | message | SSE 이벤트 | 기존 채팅방 메시지 |
| POST | /api/v1/pending-recipes | title, description, ingredients_raw, instructions/content, servings, cooking_time, difficulty, category 등 | pending_recipe_id, status | 사용자 제출 레시피 생성 및 내 레시피 상태 표시 |
| GET | /api/v1/admin/recipe-sources | cursor/status | source 목록 | 관리자 검수 |
| POST | /api/v1/admin/recipe-sources/{source_id}/import | - | import 결과 | 승인 source 반영 |
| POST/DELETE | /api/v1/recipes/{recipe_id}/likes | - | likes_count, scrap_count | 좋아요 추가/취소 토글 |
| POST/DELETE | /api/v1/recipes/{recipe_id}/scraps | - | likes_count, scrap_count | 스크랩 추가/취소 토글 |
2.7 소프트웨어 설계 ― 핵심 알고리즘: 채팅 기반 레시피 추천
- ChatService가 room과 message를 저장하고 AgentService를 호출한다.
- RuleBasedFastPath와 LLMIntentClassifier가 사용자 의도를 분류한다.
- 추천 의도이면 RecipeSearchPlanner가 검색 query와 조건 필터를 생성한다.
- RecipeRetrievalService가 embedding 검색과 cutoff를 수행한다.
- 레시피 상세, 재료, 조리 단계, 미디어, 좋아요·스크랩 상태를 응답 구조로 결합한다.
- StreamEventBuilder가 metadata → message chunk → profile_update → recipes → done 순으로 이벤트를 만든다.
- 프론트엔드는 SSE 이벤트를 받아 채팅 답변과 추천 카드 UI를 점진적으로 렌더링하고, 추천 카드에서 레시피 상세 화면으로 이동한다.
- 오류 발생 시 error 이벤트를 전송하고 스트림을 닫아 프론트가 채팅 실패 상태를 표시한 후 재시도한다.
결과 및 평가
완료 작품의 소개
프로토타입 사진 혹은 작동 장면
완성된 애플리케이션의 주요 화면은 다음과 같다.
- 메인 화면
- 프로필 및 패널 (비로그인 상태)
- 메인 화면 및 패널 (로그인 상태)
- 채팅 화면 및 상세보기
- 게시판 및 내 레시피
- 레시피 작성
- Google Play 사전 체험판 등록
포스터
※ 원문에 포스터 항목은 포함되어 있지 않다.
관련사업비 내역서
[개발사업비 내역서] (직접개발비, 단위: 원)
| 항목 (품명·규격) | 세부 내역 | 금액 | 비고 |
|---|---|---|---|
| OpenAI API 사용료 | 8,349 + 8,368 + 8,368 + 16,752 + 41,818 | 83,655원 | |
| Anthropic Claude API 사용료 | 33,876 + 8,265 + 33,092 + 25,366 + 18,752 + 34,392 + 25,786 + 18,867 | 198,396원 | |
| AWS 서버 | 22,961 + 146,123 | 169,084원 | |
| 플레이 스토어 등록 | 38,445 | 38,445원 | 현금 |
| 호스팅케이알 도메인 | 19,800 | 19,800원 | 현금 |
| 도서 구매 | 65,700 (도서 2권) | 65,700원 | 현금 |
| 합계 | 575,080원 | ||
※ 총 예산 600천원 중 575,080원 집행 (잔액 24,920원). 학교부담금 600천원 / 과제팀부담금 0원.
[자재소요서 ― 외부 서비스 및 API]
| No. | 품목 | 규격 | 용도 | 비고 |
|---|---|---|---|---|
| 1 | OpenAI 호환 LLM API | Chat completion model | 의도 분류, 답변 생성, 프로필 후보 생성 | 사용량 기반 과금 |
| 2 | OpenAI Embedding API | embedding model | 레시피 검색 query 및 recipe embedding 생성 | 사용량 기반 과금 |
| 3 | AWS EC2 | Docker host | FastAPI 운영 서버 | 운영 배포 |
| 4 | AWS RDS PostgreSQL | PostgreSQL + pgvector | 서비스 DB와 벡터 검색 | 운영 DB |
| 5 | AWS S3 | Object storage | AI 생성/선택 이미지 저장 | 이미지 기능 확장 시 도입 |
| 6 | GitHub Actions | CI/CD | main 브랜치 push 시 EC2 배포 | deploy workflow 사용 |
[자재소요서 ― 오픈소스 라이브러리]
| No. | 라이브러리 | 버전/계열 | 용도 |
|---|---|---|---|
| 1 | Python | 3.13 | 백엔드 런타임 |
| 2 | FastAPI | current | REST API와 SSE 엔드포인트 |
| 3 | PydanticAI | current | AI Agent orchestration |
| 4 | SQLAlchemy | current | ORM 및 DB transaction boundary |
| 5 | Pydantic | current | 요청/응답 schema와 settings |
| 6 | PostgreSQL pgvector | extension | 레시피 embedding 유사도 검색 |
| 7 | Ruff | current | lint/format 품질 관리 |
| 8 | pytest | current | 단위·서비스·통합 테스트 |
| 9 | Docker Compose | dev/prod | 개발·운영 컨테이너 실행 |
[자재소요서 ― 데이터 자원]
| No. | 데이터 | 설명 및 조달 |
|---|---|---|
| 1 | foodsafetykorea 레시피 | 구조화된 영양 정보와 초기 대량 레시피 데이터로 사용한다. |
| 2 | 만개의레시피 웹 원천 | 실제 사용자형 조리 흐름·표현·이미지 출처를 raw payload로 수집한다. |
| 3 | 사용자 제출 레시피 | 사용자 입력 원문을 pending_recipes에 저장하고 관리자 검수 후 반영한다. |
| 4 | Golden Test Set | 의도 분류, 검색 계획, 프로필 업데이트 정책, 추천 정합성 평가용 발화·정답 세트 |
완료작품의 평가
| 평가 항목 | 평가 방법 | 적용 기준 | 개발 목표치 | 비중(%) | 평가 결과 |
|---|---|---|---|---|---|
| 1. 식재료 인식 정확도 | 테스트 이미지 데이터셋을 활용한 인식 정확도 측정(8개 카테고리) | 전체 테스트 이미지 중 정확히 인식된 식재료 비율 | 인식 정확도 90% 이상 | 20% | 9/10 |
| 2. 챗봇 응답속도 측정 | 사용자 질의 후 응답까지 걸리는 평균 시간 측정 | 서버 로그 및 테스트 환경에서 평균 응답 시간 측정 | 평균 응답 시간 3초 이내 | 25% | 8/10 |
| 3. 사용자 경험(UI/UX) | 사용자 테스트 및 피드백 수집 | 불필요하거나 복잡한 과정 최소화 | 4.0/5 | 20% | 10/10 |
| 4. AI 추천 레시피 품질 검증 | 사용자 피드백 수집(레시피 유효성 평가), JSON 스키마 자동 검증 | 추천 레시피가 입력 식재료에 기반하여 합리적·일관적인지 사용자 평가 | 사용자 평가 4.0/5 이상, 스키마 검증 95% 이상 | 25% | 10/10 |
| 5. 응답속도 | 사용자 입력(회원가입·채팅입력 등)에 따른 API 처리시간 및 페이지 전환 처리시간 측정 | API 처리 및 페이지 전환이 2초 이내인 요청 비율 | API 처리·페이지 전환 2초 이내 90% 이상 | 10% | 8/10 |
[어려웠던 내용들]
- SSE 기반 실시간 채팅 클라이언트를 처음부터 구축하는 과정에서 청크 단위 응답 파싱, 이벤트 타입별 분기 처리, 텍스트와 이미지 동시 전송 등에 시행착오를 많이 겪었다.
- 백엔드 서버가 단일 IP에서 다중 서브도메인(api.naengo.com / ai.naengo.com)으로 분리되는 과정에서 환경변수 누락으로 인한 런타임 오류(Failed host lookup)가 반복적으로 발생했다.
- 앱 출시 경험 부족으로 패키지명 변경에 따른 키스토어 재서명, 카카오 키 해시 재등록, 개인정보처리방침의 국외 이전 고지 등 출시 직전 정책 요건이 생소하고 복잡했다.
향후계획
- iOS 클라이언트 출시 및 다국어 지원 : Flutter 단일 코드베이스의 이점을 활용해 iOS 앱을 동시 운영하고, 영문 등 다국어 지원으로 사용자 접근성을 확대한다.
- 사용자 맞춤형 추천 고도화 : 채팅 대화 중 사용자의 취향(선호 재료, 회피 식재료, 조리 방식, 식단 목표 등)을 점진적으로 학습·축적하고, 이를 모든 AI 채팅 응답과 레시피 추천 결과에 반영하여 사용자별 차별화된 경험을 제공한다.
- AI 응답속도 개선 : 의도 분류 결과와 레시피 임베딩의 Redis 캐싱을 통해 외부 LLM API 호출 빈도를 줄이고 평균 응답 시간을 단축한다.
특허 출원 내용
※ 현재 출원된 특허는 없으며, 향후 특허 출원을 검토 중인 단계이다. 차별화 핵심 요소는 다음과 같다.
- RAG 기반 의미 검색 + 대화형 조건 반영 + 재료 기반 추천을 결합한 구조
- 재료 메타데이터 기반 사전 필터링과 벡터 검색을 결합한 구조
- 사용자 대화 입력을 반영한 Query 재구성 및 재검색 방식
- 이미지 기반 재료 추출과 RAG 시스템의 연동 구조
