응급상황 인식 및 응급실 연계 서비스 포탈

2024. 12. 26. 16:45·KT AIVLE School/프로젝트

 

  • AI모델: LLM, 언어모델파인튜닝 (Hugging Face), KM-BERT
  • API : OpenAI, NaverMaps
  • H/W: 클라우드웹서버
  • DB : JPA,SQLite3(향후다양한DBMS연동)
  • S/W: SpringBoot, FastAPI
  • 배포 : Docker
  • 컨테이너 : MS AZURE

 

1. 가상환경과 라이브러리 설치

requirements.txt
ipywidgets
scikit-learn
matplotlib
seaborn torch==2.5.1
openai==1.55.0
transformers==4.46.3
datasets==3.1.0
httpx==0.27.2
haversine
fastapi
uvicorn[standard]

 

conda create -n em python=3.12 -y
conda env list
conda activate em
pip install -r requirements.txt

- 설치 후 em선택

 

- 이 파일을 지우면 가사환경 지울 수 있다.

 

 

 

https://sqlitebrowser.org/dl/

 

Downloads - DB Browser for SQLite

(Please consider sponsoring us on Patreon 😄) Windows Our latest release (3.13.1) for Windows: Free code signing provided by SignPath.io, certificate by SignPath Foundation. Windows PortableApp There is a PortableApp available, but it’s still the previ

sqlitebrowser.org

 

이전 6차때 만들었던 응급실 연계 시스템에서 언제 시스템 요청을 했는지에 대한 log를 나중에 검토하거나 분석할 수 있도록 하기 위해 DB에 기록하는 작업을 진행했다. 중요한 것은 요청한 시간과 응급질 정보들을 저장해두는 것이었다. 첫날에 DB를 설계하고 데이터를 입력해보기만 하였지만 원래 진행했던 모듈을 조금씩 변경하느라 시간이 좀 걸렸던 것 같다.

 

2. Fastapi 연결

https://fastapi.tiangolo.com/ko/#_4

 

FastAPI

FastAPI framework, high performance, easy to learn, fast to code, ready for production

fastapi.tiangolo.com

- FastAPI 설치

pip install fastapi
pip install "uvicorn[standard]"

 

- 서버 실행

uvicorn main:app --reload

 

- 접속

http://127.0.0.1:8000/docs

결과

 

응급상황과 위도, 경도 데이터를 @get으로 받아오는 것까진 쉽게 되었는데 응급상황이 아닐 때 넘겨주는 데이터를 다르게 주자고 논의하여 중증도 1-3은 병원 추천, 4-5는 개인 관리 권장 및 대처방안, 6은 비응급 상황이라는 메세지를 넘겨주도록 만들었다.

3. Spring Boot 시작

- vm 설정

 

- submit을 보내면 데이터가 나오는 형태

- css 꾸미기

피그마를 사용해서 틀 잡아두기

4. 기능 구현

 

5. docker container에 넣기

1. FastAPI를 Container에 배포한다.

생성한 FastAPI와 로컬의 WebApp을 dockerfile를 통해 이미지로 만들어 빌드시켰다. 

 

- build 후 local에 Docker Image를 생성한다.

docker buildx build --platform linux/amd64 -t 본인Docker Hub 계정/aivle_mini7_6_fastapi:latest --load .

 

- Docker Hub에서 build된 Image를 받아와 local에 Docker Image를 생성한다.

docker pull nunssuby/aivle_mini7_6_fastapi:latest

 

-Local 에서 Docker 구동

docker run -d -p 8000:8000 --name aivle_mini7_6_fastapi_container -e OPENAI_API_KEY=본인openai api 
key본인Docker Hub 계정/aivle_mini7_6_fastapi:latest

 

- Docker hub에 push

이를 Docker Hub에 올리고 웹앱을 만들어둔다. 

docker push 본인Docker Hub 계정/aivle_mini7_6_fastapi:latest

 

- Azure Web App with Container

Azure에서 웹앱 만들 때, 이미지 태그 넣기: 본인Docker Hub 계정/aivle_mini7_6_fastapi:latest

+ API키 추가

 

2. Spring Boot Container를 배포한다.

- 멀티플랫폼을 위해 buildx를 사용한다.

 docker buildx build --platform linux/amd64 -t 본인Docker Hub 계정/aivle_mini7_6_spring:latest --load .

 

- Local Docker를 구동시켜본다.

docker run -p 8080:8080 --name aivle_mini7_6_spring_container 본인Docker Hub 계정/aivle_mini7_6_spring:latest

 

- Docker hub에 push 후 웹앱에 추가

docker push 본인Docker Hub 계정/aivle_mini7_6_spring:latest

 

 

6. MS에 올려서 배포

설정 > 구성

  • SCM 기본인증게시자격증명: 설정
  • FTP 기본인증게시자격증명: 설정

설정 > 배포센터

  • 지속적인 배포 : 설정
  • Webhook URL 복사

FastAPI, Spring Boot

Docker Hub > Manage Repository > Webhooks > url

 

 

 

 

'KT AIVLE School > 프로젝트' 카테고리의 다른 글

[KT AIVLE SCHOOL - 6기 기자단] OpenWeatherMap API사용하기  (0) 2025.02.25
[KT AIVLE SCHOOL - 6기 기자단] 빅프로젝트 후기  (0) 2025.02.25
Colab에서 음성파일 만들기  (0) 2024.11.19
미니 프로젝트 2차 후기  (6) 2024.10.09
K-DT 해커톤 참여  (1) 2024.09.30
'KT AIVLE School/프로젝트' 카테고리의 다른 글
  • [KT AIVLE SCHOOL - 6기 기자단] OpenWeatherMap API사용하기
  • [KT AIVLE SCHOOL - 6기 기자단] 빅프로젝트 후기
  • Colab에서 음성파일 만들기
  • 미니 프로젝트 2차 후기
Rabet
Rabet
  • 블로그 메뉴

    • 관리자
    • 글쓰기
  • Rabet
    卯
    Rabet
  • 전체
    오늘
    어제
    • Root (139)
      • KT AIVLE School (85)
        • Start (4)
        • Python프로그래밍 & 라이브러리 (6)
        • 데이터 처리 및 분석 (7)
        • 데이터 분석 및 의미 찾기 (7)
        • 웹크롤링 (10)
        • 머신러닝 (10)
        • 딥러닝 (6)
        • 시각지능 딥러닝 (10)
        • 언어지능 딥러닝 (6)
        • JAVA (4)
        • SQL (2)
        • 가상화 클라우드 (5)
        • 프로젝트 (8)
      • QA (2)
        • 오류사항 (1)
      • 웹공부 (14)
        • SPRING (11)
        • React (1)
      • 코딩 알고리즘 스터디 (23)
      • 코딩테스트 (9)
        • JAVA (8)
        • HTML (1)
      • CS공부 (3)
      • 자격증공부 (3)
        • 정보처리기사 (1)
        • 컴퓨터활용능력 1급 (1)
        • AICE Associate (1)
        • CSTS (0)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
Rabet
응급상황 인식 및 응급실 연계 서비스 포탈
상단으로

티스토리툴바