시놀로지 도커 AI 레시피 추출기 v0.3.0 – API 키 가이드 수정

 

image.png

image.png

유튜브에서 레시피 검색하다가 한 번 만들어볼까? 하고 만들어본 프로그램입니다

 

가끔 쇼츠 보다가 어 저런 레시피 나중에 한 번 해볼까? 할 때

그냥 영상을 통째로 저장 했었는데 이게 정리가 안되서 좀 불편하더라고요

영상 내용 레시피 수동으로 옮겨적어서 영상이랑 따로 저장하는 것도 정리가 안되기도 하고 귀찮기도 하고요

 

그래서 그냥 도커 컨테이너 웹앱으로 만들어 봤습니다

 

v0.3.0 업데이트 내역 

https://svrforum.com/software/2538717

 

  • 관리자 계정 및 로그인 기능 추가

  • 계정 별로 레시피를 관리 할 수 있습니다

  • 계정 설정에서  각 사용자들은 본인의 API키와 모델을 관리할 수 있습니다 

  • 관리자 메뉴에 전체 DB 백업 기능 및 사용자 관리 기능 추가

  • 확장 프로그램 사용 가능

이전 업데이트 내역

v0.2.1

https://svrforum.com/software/2532190

 

  • 카테고리 일괄 선택 및 수정, 이동, 삭제 기능 추가

  • 카테고리 변경 UI 최적화

  • 저장 된 레시피 UI 최적화

  • 확장 프로그램 지원

v0.2

  • 검색 기록 추가 (쿼터 소비 없이 기존 내역 확인 가능)

  • 내보내기한 엑셀 파일로 DB복원 기능 추가

  • 환경 변수에서 검색 결과 개수 설정 가능

  • (쿼터 소비는 100으로 동일하지만 개수가 많아지면 속도가 느려질 수 있음)

  • 레시피 저장 또는 수정 시 카테고리가 존재하면 목록에 표시 및 선택 가능

  • 제미나이 모델 지정 가능

 

 

image.png

유튜브 데이터 API를 이용해서 유튜브에서 해당 메뉴를 검색 하고

 

 

image.png

설정한 최대 개수 이하의 결과값을 뽑아 줍니다

image.png

v0.3.0 에서 사용자 계정 설정을 통해 출력 되는 최대 결과 값을 정할 수 있습니다

자막이 없는 경우 결과값에서 제외되기 때문에 설정한 값보다 적은 결과값이 표시될 수 있습니다

 해당 메뉴를 뽑을 때 기준은 아직 안정했는데 조회수나 구독자수 같은 수치를 기준으로 뽑을 수도 있을 거 같네요

 

image.png

유튜브 링크를 누르면 해당 유튜브로 가서 확인을 할 수 있습니다

 

image.png

레시피 생성 버튼을 누르면 제미나이 API를 통해 영상의 자막을 분석하고

 

 

image.png

레시피를 정리 해줍니다

 

image.png

카테고리를 지정하고 저장을 하면

 

image.png

레시피 db에 저장이 됩니다

 

image.png

v0.2.1 ui 수정

 

검색 기능도 있고 해당 레시피를 펼치면 수정 삭제 버튼이 나옵니다

레시피에는 영상 링크도 함께 저장이 돼있습니다

 

지금은 제목 검색만 되지만 나중에는 재료 검색이나 재료들을 입력해서

만들 수 있는 레시피를 보여준다거나 하는 기능을 추가할 수 있을 거 같습니다

 

image.png

image.png

저장 된 레시피를 엑셀로 출력 하거나 출력한 엑셀 파일로 DB 복원이 가능합니다

 

 

image.png

생성 된 카테고리는 변경이 가능하고 저장 된 레시피를 선택해 일괄 이동 할 수도 있습니다

모두 선택 하거나 카테고리 별 또는 개별 선택이 가능 합니다

 

image.png

수정 버튼을 누르면 저장한 레시피를 수정 할 수 있습니다

 

 

image.png

v0.2 추가 – 최근 검색 기록 버튼을 누르면 이전에 검색 했던 결과 목록들이 나옵니다 해당 목록은 삭제 가능하고요

 

image.png

해당 목록을 누르면 쿼터 소비 없이 검색 결과창을 다시 확인 가능 합니다

 

 

 

 

image.png

시놀로지 파일 스테이션에서 docker/ai-recipe-extractor 폴더(원하는 폴더) 생성 후 

.env 파일과 data 폴더를 생성 해 줍니다

 

# .env (다중 사용자 시스템용)

# [필수] Flask 앱의 보안을 위한 시크릿 키 (아무도 모르는 복잡한 값으로 변경하세요)
SECRET_KEY=your-very-secret-and-long-random-string

# [선택] 신규 사용자 가입 허용 여부 (true 또는 false, 기본값: true)
# 처음 가입한 계정이 admin 권한을 갖습니다
ALLOW_REGISTRATION=true

.env 파일을 작성 합니다

암호화키를 추가하시고 회원 가입 기능 사용 여부를 설정 해주세요

처음 가입한 계정이 admin 권한을 갖게 됩니다

v0.3.0 부터는 API 키와 모델 설정을 각 사용자의 계정 설정 페이지에서 진행 합니다

image.png

2.5 flash lite preview 모델은 분당15회 일일 1000회로 사용량이 가장 넉넉합니다만 모델명이 바뀌거나 사라질 수 있습니다

2.5 flash 모델은 분당 10회 일일 250회로 넉넉하진 않지만 조리 방법이 다른 모델에 비해 자세합니다

분당 10회 이게 좀 애매하긴 한데 어차피 로딩 속도나 이것저것 고려하면 분당 10회 괜찮은 거 같기도 하고

일일 250회도 하루 날잡아서 레시피 모으는 거 아니고 그냥 일반적인 사용 패턴이면 나쁘지 않은 거 같네요

각 모델 무료 티어 사용량 및 퀄 비교 정보는 게시글 하단에 있습니다

 

image.png

Get API key | Google AI Studio

 

구글 AI 스튜디오의 API 옵션으로 가셔서 우측 상단 API 키 생성을 누르시면 이렇게 화면이 뜹니다

만약 Google Cloud 에 프로젝트가 없다면 자동 생성 됩니다

 

image.png

제미나이 API 키 생성이 완료되면 하단에 이렇게 표시가 되는데요

 

프로젝트 이름을 클릭해서 이동 합니다

 

image.png

그럼 이런 화면으로 오게 되는데 가운데 생성한 api 키가 보입니다

 

image.png

클릭 하셔서 키 제한 부분을 보시면 API 1개 라고 돼있습니다

제미나이 API만 사용 가능한 키라는 의미 인데요

저희는 유튜브 데이터 API도 사용 해야하니 추가를 해줘야 합니다

좌측 메뉴의 라이브러리를 클릭 합니다

 

image.png

라이브러리 화면에서 youtube 로 검색을 하시면

 

image.png

목록 중에 youtube data api v3 라고 보입니다

선택

 

image.png

이렇게 나오면 유튜브 데이터 API를 클릭

 

image.png

사용을 눌러 줍니다

 

image.png

완료가 되면 이런 창이 표시 됩니다

이제 유튜브 데이터 API의 할당량이나 이런저런 정보를 확인 및 관리가 가능하죠

 

image.png

죄측 상단의 사용 설정된 API 및 서비스를 눌러서 하단을 확인하면 

두 개의 API가 보이실 겁니다 확인 하시고

만약 안보인다면 과정을 다시 진행 해주세요

 

image.png

다시 좌측의 사용자 인증 정보를 눌러서 아까 봤던 화면으로 돌아와 API 키를 선택 해줍니다

 

image.png

그럼 아까 API 1개 라고 표시됐었던 내용과 다르게 키 제한 아래 선택하라고 뜨죠

 

image.png

둘 다 선택을 해줍니다

 

image.png

그리고 확인 저장 눌러 주시고요

 

API 키 발급이 끝났습니다

 

설정이 적용 되는데 최대 5분 걸릴 수 있다고 하니 기다렸다 진행 하시면 됩니다 

 

image.png

위 과정을 통해 생성한 API키는 별다른 추가 설정 없이 잘 동작 합니다

 

API 무료 할당량을 다 사용 했다면 모델을 변경하거나 다른 계정의 API 키로 변경해서 사용하는 방법이 있겠습니다

 

API 키를 삭제 후 새로 생성 하는 경우 프로젝트 이름을 눌러 구글 클라우드 페이지로 가서

유튜브 데이터 API 권한을 추가하는 작업을 다시 해주세요

 

image.png

유튜브 데이터 API는 이미 사용으로 돼있으니 API 1개 부분에서 추가 선택만 해주면 됩니다

그 후 확인 저장 5분 대기

 

 

version: '3.8'

services:
  recipe-app:
    image: sruinz/ai-recipe-extractor:latest
    container_name: ai-recipe-extractor
    restart: unless-stopped
    ports:
      - "8083:5000" # 좌측의 포트는 접속 포트 입니다 수정 가능합니다. (우측 포트는 수정 금지)
    
    volumes:
      - ./data:/app/data
    
    env_file:
      - .env

컨테이너 매니저에서 프로젝트 생성 후 위에서 생성한 폴더 지정 후 위의 코드로 생성 해줍니다

 

 

테스트 해보니 아직까지는 별 문제가 없긴 합니다만 이것저것 추가나 수정을 좀 해봐야겠네요

 

 

image.png

 

image.png

사용하는 API는 유튜브 데이터 API와 제미나이 API인데 하루에 몇 개 정도 만드는 거라면 무료 범위에서 사용 가능할 거 같습니다

 

API 제한이 넉넉한 편이 아니라 맘 놓고 쓰기에는 좀 무리가 있을 거 같네요

 

그냥 제미나이 API 말고 앱이나 웹에서 링크 주고 정리 해달라고 하는게 맘편하긴 합니다만 정리가 귀찮아서 만들어 봤습니다

n8n 같은 것들이나 다른 방법을 통해서도 구현이 가능할 거 같습니다만 역시나 귀찮아서 그냥 도커 컨테이너로….

 

유튜브 데이터 API는 하루 100번 정도 검색 할 수 있는데 초과 됐을 때는 검색 기능을 사용할 수가 없네요

캐시 설정을 통해서 동일 검색 같은 경우 토큰을 절약할 수는 있겠지만 의미가 있나 싶습니다

 image.png

제미나이 API는 modles/gemini-2.5-flash-lite-preview-06-17 분당 15회 일일 1000회

언제 사라질지 모르지만 지금은 이게 사용량이 가장 넉넉합니다

models/gemini-2.5-flash 분당 10회 일일 250회 – 기본 설정 모델

분당 10회가 좀 적긴 하지만 사실 10회나 15회나 비슷하긴 합니다

하루 250회는 가끔씩 사용하기에는 충분합니다만 왠지 좀 아쉽네요

 

gemini-1.5-flash-latest 기준 분당 15회 일일 50회

models/gemini-2.0-flash-lite 가 분당 30회 일일 200회

분당 30회로 가장 많긴 한데 퀄이 좀 떨어지더라고요

라이트 아닌 그냥 2.0-flash 버전도 퀄이 좀 떨어집니다

 

무료 사용량 다 쓰면 모델을 변경해서 사용하는 것도 방법이겠습니다

 

1.5 flash vs 2.0 flash 퀄 비교

원본 영상

 

image.png

2.5 flash lite preview

 

image.png

2.5 flash

 

image.png

1.5 flash

 

image.png

2.0 flash

 

image.png

2.0 flash lite

 

원본 자막 보시면 영상 35초 부분에 화유를 소개하고

40초 부분에 화유 2스푼 넣으라는 부분이 있는데

유튜브 자막은 자동생성 자막인지 영상에 표시되는 자막과 다르게

화유가 화요 라고 나와있더라고요 

 

2.5 flash와 1.5 flash는 화요를 무시하고 화유로 저장하고

2.0 flash는 화유랑 화요를 개별로 인식 해서 저장을 하네요

2.0 flash 퀄이 좀 떨어지는 거 말고 나머지 2.5나 1.5는 비슷 한 거 같습니다

 

image.png

image.png

위 – 2.5 flash / 아래 – 2.5 flash lite preview

 

라이트 프리뷰 모델이 언제 사라질지 모르지만 지금은 가장 넉넉하고

1분에 10개씩 만들지 않는 이상 2.5 flash 분당 10회 일일 250회도 충분할 거 같습니다

2.5 flash 모델이 조리 방법이 가장 자세하네요

 

 

 

대략 한 번에 5~600 토큰 사용하는 거 같습니다

 

2.5 flash 기준 분당 10회 일일 250회

2.5 flash lite preview 기준 분당 15회 일일 1000회

넉넉한건 아니지만 그래도 혼자 사용하기에는 충분할 거 같습니다 

 

 

그냥 호기심으로 시작해서 만들어 봤는데 다른 부분에도 응용을 좀 해봐야겠습니다

 

크롬이나 엣지 확장 프로그램을 만들거나

디코나 텔레그램을 통해 영상 주소를 보내서

레시피를 추출하는 기능 같은 것들을 추가할 수 있겠네요

   

나중에는 오픈AI API랑 연동이 되게 수정을 해서 오픈AI API키를 이용하거나

LM스튜디오나 올라마를 통해 LLM모델도 선택 사용할 수 있게 수정을 해봐야겠습니다

 

 

 

sruinz/AI-Recipe-Extractor: AI 레시피 추출기의 크롬, 엣지 확장 프로그램 입니다

AI 레시피 추출기 – Chrome 웹 스토어

AI 레시피 추출기 – Microsoft Edge Addons

 

깃허브, 엣지 스토어 및 크롬 스토어에 업로드 됐습니다 편한 방법으로 설치하시면 됩니다

 

깃헙 설치 방법

image.png

깃허브에서 확장 프로그램을 다운로드 ZIP 으로 다운 받으시고 적당한 곳에 압축을 풀어 줍니다

image.png 

크롬이나 엣지에서 확장 프로그램 관리 – 압축 풀린 파일 로드 선택 후 해당 폴더를 선택 하시면 됩니다

위의 메뉴가 없는 경우 

image.png

개발자 모드를 켜주세요

image.png

제대로 로딩이 되면 하단 기타 출처에 추가가 됩니다

 

image.png

설치 후 확장 프로그램 옵션 창에 AI 레시피 추출기 주소를 입력 해주시면 됩니다

 

image.png

영상 우클릭 후 AI 레시피 추출하기를 누르면

 

image.png

로딩 페이지가 표시되고 로딩이 끝나면

 

image.png

레시피 저장 페이지가 표시 됩니다

 

 

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다