프로젝트 목표: 입력 받은 서지(도서) 정보와 검색 엔진을 이용해 나온 서지들과의 유사도를 반환하는 API 개발 및 수요 업체 온프레미스에 배포 기간: 2022년 10월 ~ 2022년 12월 구성원: 모델 파인튜닝 및 추론 모듈 개발 (1명), API 개발 및 배포 (본인) API 개발 1. FastAPI 사용: 빠른 속도, 사용하기 쉬움 2. 검색 엔진은 수요 업체에서 제공해준 자바 패키지를 사용: - 딥러닝 모델로 추론이 필요한 상황이라 파이썬을 사용해야하므로 자바 패키지를 파이썬에서 사용이 가능하도록 도와주는 JPype 모듈 사용 3. 3개의 엔드포인트 구현: - /health (GET): API 상태 체크 - /rank (POST): 검색 엔진 이용을 사용하지 않고 서지 정보와 검색 엔진 결과 N..
1. Dockerfile에 다음을 추가하여 tzdata 설치 apt-get install -y tzdata 2. 컨테이너 실행 시 환경변수 TZ 추가 - Docker를 이용해 실행 시 docker run --env TZ=Asia/Seoul {image_name} {command} - Docker Compose를 이용해 실행 시 environment: - TZ=Asia/Seoul
프로젝트 목표: 오디오 및 비디오 파일(32MB 미만)을 입력 받아 음원 분리 후 결과 파일의 경로를 반환하는 API 개발 및 클라우드(GCP)에 배포 기간: 2022년 6월 ~ 2022년 7월 지연 시간이 가장 짧도록 단일 리전 (서울) 설정 외부에서 오디오 파일을 다운로드 가능해야 하므로 세분화된 엑세스 제어 설정 컬렉션은 미리 명시적으로 만들 필요 없음, 문서에 데이터를 추가할 때 암시적으로 생성됨 키 파일을 key.json으로 변경하는 이유는 Dockerfile 중 환경변수를 다음와 같이 작성했기 때문 (GOOGLE_APPLICATION_CREDENTIALS=key.json) Separate API를 먼저 띄우는 이유는 Main API가 Separate API의 주소를 환경변수로 받아야하기 때문 ..
도커 컴포즈로 로그를 출력하다보면 일정 시간 동안 출력할 로그가 없는 경우 이후부터 로그 출력이 동작하지 않을 때가 있는데, 아래와 같이 환경 변수를 넘겨주어 타임아웃을 늘려주면 됨 COMPOSE_HTTP_TIMEOUT={int} docker-compose logs {service_name} ex. 타임 아웃 = 하루, 로그 추적 (-f), 타임스탬프 출력 (-t), 대상 서비스 = service_1, service_2 COMPOSE_HTTP_TIMEOUT=86400 docker-compose logs -ft service_1 service_2
공식 문서를 참고하여 Firestore에 접근하여 데이터를 추가 및 업데이트하는 파이썬 코드 추가 Dockerfile에 ENV key(GOOGLE_APPLICATION_CREDENTIALS)=value(생성한 비공개 키 경로) 추가 트리거는 미러링한 저장소의 소스를 기반으로 빌드하기 때문에 (깃에는 key.json을 푸시하지 않았으므로 빌드 오류 발생) 트리거는 사용하지 않고 클라우드 쉘에 gcloud builds submit 입력하여 빌드 및 배포함 이 과정에서 권한 오류가 발생하여 269351677998-compute@developer.gserviceaccount.com의 269351677998@cloudbuild.gserviceaccount.com에게 '서비스 계정 사용자'라는 권한을 추가해줌 배포..