(파이썬)nlp 프로젝트_Spring으로 통신하는 방법

su dong·2023년 5월 20일
0

두 가지 주요 방법으로 파이토치 프레임워크를 사용하여 NLP 모델의 결과를 통신할 수 있다는 것에 대한 설명입니다.

1. 서브프로세스 실행

첫 번째 방법은 파이토치 모델을 별도의 서브 프로세스로 실행하는 것입니다. 이 방법은 효율적일 수 있지만, 서브 프로세스를 관리하고 모니터링하는 것이 상당히 어려울 수 있습니다.

2. Fast API사용

두 번째 방법은 FastAPI나 Flask같은 파이썬 웹 프레임워크를 사용하는 것입니다. 이 두 프레임워크 모두 개발자가 작성해야 하는 코드 양이 상대적으로 적다는 장점이 있습니다. (Django는 이들보다 규모가 큰 프로젝트에 적합합니다.)

FastAPI를 사용하여 파이토치 모델의 결과를 통신하는 전체 과정은 다음과 같습니다:

  1. 먼저, 스프링에서 파이토치 모델의 결과를 요청할 비즈니스 로직을 작성합니다. 이 경우, 결과는 상담 질문에 대한 응답이나 상담 데이터의 분석 결과일 수 있습니다.
  1. 비즈니스 로직이 완성되면 스프링에서 FastAPI 서버로 파이토치 모델의 결과를 요청합니다.
  1. FastAPI 서버는 요청을 받고 파이토치 모델을 실행하여 결과를 계산하고 데이터베이스에 저장합니다. 이 과정에서 FastAPI는 '요청이 정상적으로 받아졌다'는 응답을 스프링으로 보냅니다. 이 단계는 파이토치 모델의 실행이 상대적으로 시간이 걸릴 수 있기 때문에, 응답을 먼저 보내고 모델의 실행을 시작하는 것이 좋습니다.
  1. FastAPI가 모델의 실행을 시작하면, 스프링은 일정 시간 간격으로 FastAPI에게 데이터베이스에 결과가 저장되었는지 확인하는 요청을 보냅니다.
  1. 만약 결과가 아직 준비되지 않았다면, 스프링은 계속해서 FastAPI에게 확인 요청을 보내게 됩니다. 결과가 준비되면 FastAPI는 '작업이 완료되었다'는 응답을 스프링으로 보냅니다. 이후, 스프링은 데이터베이스에서 결과를 검색하여 필요한 작업을 수행합니다.

Fast api를 처음 접하시는 분들을 위한 tutorial link
https://fastapi.tiangolo.com/tutorial/

profile
사람들을 돕는 문제 해결사, 개발자 sudong입니다. 반갑습니다. tkddlsqkr21@gmail.com

1개의 댓글

comment-user-thumbnail
2024년 3월 31일

안녕하세요. 현재 비슷한 주제로 대학 팀플을 진행중인데, fastapi 코드좀 알 수 있을까요?

답글 달기