반응형
시작
Gradio로 Whisper_STT를 서비스하는 서버를 만들었는데, 파일을 넣고 "파일 변환"을 누르면 작업중 웹에서 "Error" 가 표시되고 중지되었다. Docker기반 애플리케이션이기 때문에 바로 `docker logs -f [컨테이너명]` 명령어로 로그를 추적해봤더니 "ValueError: An event handler (transcribe_file) didn't receive enough output values" 오류를 뿜고있었다.
Traceback (most recent call last): File "/home/sttUser/.local/lib/python3.10/site-packages/gradio/routes.py", line 439, in run_predict output = await app.get_blocks().process_api( File "/home/sttUser/.local/lib/python3.10/site-packages/gradio/blocks.py", line 1392, in process_api data = self.postprocess_data(fn_index, result["prediction"], state) File "/home/sttUser/.local/lib/python3.10/site-packages/gradio/blocks.py", line 1288, in postprocess_data self.validate_outputs(fn_index, predictions) # type: ignore File "/home/sttUser/.local/lib/python3.10/site-packages/gradio/blocks.py", line 1263, in validate_outputs raise ValueError( ValueError: An event handler (transcribe_file) didn't receive enough output values (needed: 2, received: 1). Wanted outputs: [textbox, file] Received outputs: [None]
웹에 검색해보아도 몇가지 정보가 없어 난감한 상태.. 하지만 오류 발생 이유는 쉬웠다.
해결 방법
상황 파악 및 해결절차
- 일단 변환 작업은 별탈없이 잘 진행된것 같다.
- 웹을 새로고쳐도 돌려도 똑같은 상황
- 어디서 잘못눌려 코드가 잘못쳐졌나?(원본과 코드 비교) -> 문제없음
- 회사 Git에서 다른점 비교
- 변환된 파일을 ~/outputs 디렉토리에 저장을 해야하는데 outputs 디렉토리가 없었다.
- outputs 디렉토리를 생성하고 다시 "변환 시작"버튼 클릭
- 성공
결론
지정된 디렉토리 존재 여부를 파악하고 없으면 생성해주자.
아마 정리한답시고 ~/outputs 디렉토리를 삭제했다보다.
반응형
'프로그래밍 > Python' 카테고리의 다른 글
Python dictionaries deep merge - 중첩딕셔너리 Merge (0) | 2023.06.14 |
---|---|
ElasticSearchMapping 문자열 데이터 파싱과 맵핑 프로그램 (2) | 2023.06.13 |