프로젝트 소개
- 프로젝트 주제: AI 활용 동화 생성 웹 서비스
- 프로젝트 내용: 아이를 위한 맞춤형 동화를 생성해주는 AI 기반 웹 애플리케이션
- 프로젝트 기간: 2025년 5월 17일 ~ 2025년 6월 12일
- 프로젝트 주요 기능
기능 구분 | 상세 내용 |
👶 회원 & 아이 관리 | - 회원가입/로그인/탈퇴 - 아이 등록 및 생년월일 기반 출생일 계산 |
📘 동화 생성 | - 테마를 선택하면 AI가 동화 생성 - GPT-4o-mini 사용 |
🔊 TTS 음성 읽기 | - OpenAI TTS 사용 - 다양한 목소리 선택 (10종 이상) - 재생 속도 조절 기능 |
🎨 이미지 생성 & 변환 | - Stability AI 기반 이미지 생성 - 흑백 변환을 통한 컬러링북 스타일 제공 |
🖼 갤러리 | - 사용자별 이미지 및 동화 확인 - 다운로드 및 공유 가능 |
🎵 자장가 찾기 | - 테마별 무료 자장가 음원 추천 |
📺 유튜브 영상 추천 | - 테마 관련 유튜브 영상 5개 자동 검색 및 제공 |
◆ 사용 기술 스택
영역 | 기술 스택 |
Frontend | Streamlit |
Backend | FastAPI |
Database | PostgreSQL |
AI 모델 | OpenAI GPT-4o-mini, TTS API |
이미지 생성 | Stability AI (DALL·E 3 → 교체됨) |
음악 API | Jamendo API |
영상 추천 | Google YouTube API |
이미지 처리 | OpenCV |
기타 기능 | 이메일 발송, 임시 비밀번호, 비밀번호 변경, 회원 탈퇴, 컨텐츠 삭제 등 |
ERD(Entity-Relationship Diagram)
사용자(User) 테이블을 기준으로,
Article(게시판), Baby(아이), Story(동화) 테이블이 있으며,
향후 확장성을 고려하여 Role(권한), Like(좋아요) 테이블까지 총 6개의 테이블 생성
테이블 간 관계 (사용자 테이블 기준)
- 사용자와 동화 간 관계 (일대다) : 하나의 사용자 여러 개 동화
- 사용자와 게시물 간의 관계 (일대다): 하나의 사용자 여러 개 게시글
- 사용자와 아기 간의 관계 (일대다): 하나의 사용자 여러 명 아기
- 사용자와 좋아요 간의 관계 (일대다): 하나의 사용자 여러 개의 좋아요
- 사용자와 역할 간의 관계 (다대일): 여러 사용자, 각 사용자당 하나의 역할
최종 화면 - 앱 실행 시(로그인 전)
◆ 메인 화면
◆ 로그인 화면
◆ 회원가입 화면
◆ 계정 설정 화면
- 아이디 찾기
- 임시 비밀번호 발급
- 비밀번호 변경
최종 화면 - 앱 실행 시(로그인 후)
◆ 메인 화면
◆ 메뉴
- 홈: 로그인 후 기본으로 보여지는 페이지
- 동화 만들기: 인공 지능으로 동화(텍스트) 생성, 생성된 텍스트 음성 변환, 해당 텍스트로 이미지 생성, 생성된 이미지를 컬러링용 이미지로 변환하는 기능 제공
- 갤러리: 생성된 이미지 (컬러, 흑백) 조회 및 삭제
- 자장가 음악: 테마에 맞는 자장가 음악 추천
- 자장가 유튜브: 테마에 맞는 자장가 유튜브 영상 출력
- 프로필: 아이 추가 등록, 아이 삭제, 회원 탈퇴
- 로그아웃: 로그아웃을 하게 되면 메인 화면으로 이동하도록 구현
◆ 동화 만들기
- 동화 생성 옵션
- 아이: 사용자가 등록한 아이 이름 자동으로 선택
- 속도: 0부터 2 사이의 숫자 (기본값 1)
- 테마: 자연, 도전, 가족, 사랑, 우정, 용기
- 목소리: OpenAI TTS에서 제공하는 목소리
- 동화 생성 및 음성 파일
- 사용자가 설정한 아이 이름이 주인공이 되도록 동화 생성 (OpenAI gpt-4o-mini 사용)
- 생성된 동화 텍스트를 앞서 선택한 속도와 목소리에 따라 음성으로 변환
- 동화 이미지 생성
- 생성된 동화 텍스트를 기반으로 아이 친화적인 이미지 생성 (Stable Diffusion 사용)
- 흑백 이미지 변환
- 앞서 생성된 컬러 이미지를 컬러링용 흑백 이미지로 변환 (openCV 사용)
◆ 이미지 갤러리
사용자가 생성한 이미지 (컬러 / 흑백)가 보여지는 게시판
- 생성된 모든 이미지를 한 번에 다운로드 할 수 있도록 구현
- 보기 모드 제공: 그리드 / 목록
<보기 모드: 그리드>
<보기모드: 목록>
이미지를 다운로드 하거나, 외부 공유 가능 (공유 기능의 경우 서비스 배포 후 가능)
이미지 삭제 선택 시 [삭제 실행] 버튼 나타나며 삭제 가능
◆ 자장가 음악 메뉴
테마를 선택하면 해당 테마에 맞는 자장가 리스트를 불러옴
- 제공되는 테마: 잔잔한 피아노, 기타 멜로디, 자연의 소리, 달빛, 하늘, 클래식
◆ 자장가 유튜브
테마를 선택하면 유튜브에서 자장가 영상을 찾아 띄워줌
- 제공되는 테마: 잔잔한 피아노, 기타 멜로디, 자연의 소리, 달빛, 하늘, 클래식
◆ 프로필
- 아이 추가
부모는 여러 아이를 가질 수 있으므로, 아이가 추가될 수 있도록 설정
- 등록된 아이 삭제하기
등록된 아이를 삭제할 수 있도록 구현
- 회원 탈퇴하기
다음내용
[파이썬] AI 활용 웹 서비스 개발 기록 : 2 controllers 설명
이전 내용 [파이썬] AI 활용 웹 서비스 개발 기록 : 1 - 서비스 화면 및 기능 소개프로젝트 소개- 프로젝트 주제: AI 활용 동화 생성 웹 서비스- 프로젝트 내용: 아이를 위한 맞춤형 동화를 생성해주
puppy-foot-it.tistory.com
'[파이썬 Projects] > <파이썬 웹개발>' 카테고리의 다른 글
[파이썬] AI 활용 웹 서비스 개발 기록 : 3 emails 설명 (0) | 2025.06.27 |
---|---|
[파이썬] AI 활용 웹 서비스 개발 기록 : 2 controllers 설명 (0) | 2025.06.27 |
[패키지 버전 관리] requirements.txt (0) | 2025.06.09 |
[파이썬] FastAPI - 메모 앱 프로젝트 18(최종): 자동 로그아웃 (0) | 2025.05.19 |
[파이썬] FastAPI - 메모 앱 프로젝트 17: 소셜 로그인 탈퇴 (0) | 2025.05.15 |