Skip to content
 
 

Latest commit

 

History

40 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐟 양식등대

2024 부산 해양데이터 해커톤
개발기간: 2024.10 ~ 2024.11


🛳 프로젝트 소개

  • 양식등대는 2024년 부산 해양데이터 해커톤 본선 진출 및 장려상 수상 작품으로, 해양과 빅데이터의 융합을 기반으로 해양의 디지털 전환과 기후 변화에 대응하는 서비스를 개발하였습니다.
  • 저희 등대지기 팀의 출품작은 '내 손 안에 들어오는 양식업 도우미' 로, 양식업을 배우고자 하는 청년 어민들을 대상으로 한 RAG 기반 챗봇 서비스 및 다양한 해양 데이터를 제공하는 웹 서비스입니다.

🎯 기술 스택

  • Backend:
  • Frontend:
  • ETC:

🚣 등대지기 팀원 소개

김명석 정지윤 이승재 김민경
ML/Frontend ML/DL Backend Frontend
@mangsgi @enchantee00 @Ea3124 @kim-minkyoung
부산대학교 정보컴퓨터공학부 3학년 부산대학교 정보컴퓨터공학부 3학년 부산대학교 정보컴퓨터공학부 3학년 부산대학교 정보컴퓨터공학부 3학년


⭐️ 탄생 배경

3 4

⭐️ 기능 1

7

⭐️ 기능 2

8 9 10

⭐️ 기능 3

12 13

⭐️ 사회적 의의

22


📁 프로젝트 주요 구조

C:.
│  app.py                              # Streamlit 메인 앱 파일 (사이드 바 네비게이션 포함)
│  llm.py                              # LLM 관련 유틸리티 및 처리 함수
│  requirements.txt                    # 필요한 Python 패키지 목록
│  server.py                           # 백엔드 서버 실행 스크립트 (Flask API)
│
├─.streamlit
│      config.toml                     # Streamlit 설정
│      secrets.toml                    # API 키 및 IP 저장 (e.g., ServiceKey)
│
├─components # page 구성 파일
│  │  home.py                          # 홈 페이지 (Streamlit 랜딩 페이지)
│  │  chat.py                          # Chat 페이지 구성 (LLM 응답 등)
│  │  ocean.py                         # 실시간 수온 데이터 및 예측 시각화
│  │
│  ├─model
│  │      lstm_model_2012_2024.h5      # 학습된 수온 예측 LSTM 모델
│  │      model.py                     # 수온 예측 모델 로직
│  │
│  └─wiki
│      │  wiki.py                      # 위키 메인 페이지 (생물 목록 표시)
│      └─ wiki_detail.py               # 생물 상세 페이지 (종별 특성 표시)
|
├─data
│  │  daily_average_water_bui.csv     # 관측소 별 일평균 부이 수온 데이터 2024.10.06 ~ 2024.11.4
│  │  daily_average_water_temp.csv    # 관측소 별 일평균 수온 평균 데이터 2024.10.06 ~ 2024.11.4
│  │  observation_stations.csv        # 수온 관측소 정보
│  │  optimal_rearing_temperature.csv # 종별 적정 사육 수온
│  │  question.csv                    # 챗봇 모델 파인튜닝을 위한 사용자 질문 데이터
│  │  wiki_data.csv                   # 해양 생물 종 정보 데이터
│  │  yearly_temperature.csv          # 2024년 특정 일별 수온 데이터
│  │
│  └─images                           # Wiki 페이지에 사용되는 이미지 모음
│
└─faiss # FAISS DB
    ├─etc                              # 기타 생물 종에 대한 벡터 인덱스*.pkl, *.index              
    │
    ├─fish                             # 어류 관련 벡터 인덱스*.pkl, *.index
    │
    ├─seaweed                          # 해조류 관련 벡터 인덱스*.pkl, *.index
    │
    └─shellfish                        # 패류 관련 벡터 인덱스
           *.pkl, *.index

🛠️ 설치 및 실행 가이드

1. 리포지토리 클론

git clone https://github.com/mangsgi/Ocean-Data.git

2. 의존성 설치 (가상환경 사용 추천)

  • 파이썬 버전 3.9.21
  • CUDA 버전 11.8
pip install -r requirements.txt

3. 환경 변수 설정

  • .streamlit 폴더 내 secrets.toml 파일을 생성한 후 아래와 같이 설정합니다:
# 반드시 KEY는 문자열로 지정 
BACKEND_IP="<your-backend-ip>"
ServiceKey="<your-service-key>" # 해양수산부 바다누리 해양정보서비스 API
LOCATION_API_KEY="<your-api-key>" # Google Geolocation API

4. 페이지 실행

# Flask 서버 실행
python server.py
# 웹 페이지 실행
streamlit run app.py

📈 향후 계획

  • RAG 모델 경량화 및 성능 향상을 통해 언제 어디서나 사용가능하도록 로컬에 설치가능한 챗봇 구현
  • API 제한이 없는 GPS를 통한 제한없는 정보 불러오기
    • 현재 Geolocation API 제한으로 인해 위도와 경도를 고정하고 API 사용은 주석 처리한 상태
  • 깃허브 Action를 통한 관측소 수온 정보 실시간 업데이트 및 CI/CD 구현
    • 현재는 프로젝트 당시를 기준으로 관측소별 데이터가 존재

About

Ocean data Hackathon

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages