728x90
인공지능 모델이나 알고리즘을 이용한 결과물을 자바 스프링 웹 서버를 사용해 브라우저에 띄우고 싶을 때 사용하는 방법입니다.
인공지능 모델이나 알고리즘은 감정 분석(analyze_sentiment)을 하는 코드라고 가정합니다.
먼저, flask 파이썬 코드입니다.
# flask 서버의 기본 주소는 /flask-api-server
from flask import Flask, request, jsonify
from your_ai_module import analyze_sentiment # 가정: 여기에 실제 모델 호출 코드가 들어감
app = Flask(__name__)
@app.route('/analyze_sentiment', methods=['POST'])
def analyze_sentiment_endpoint():
data = request.json
text = data.get('text')
result = analyze_sentiment(text)
return jsonify({'sentiment': result})
if __name__ == '__main__':
app.run(debug=True)
HTML POST 요청을 보내는 <form>태그
<body>
<form action="/call_python_api" method="post">
<label for="userCode">사용자 코드:</label>
<input type="text" id="userCode" name="userCode" required>
<br>
<button type="submit">전송</button>
</form>
</body>
다음은 스프링 코드입니다. post 방식으로 /call_python_api 엔드포인트로 접속하면 callPythonApi를 실행합니다.
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@RestController
public class YourController {
@PostMapping("/call_python_api")
public String callPythonApi(@RequestBody String text) {
String apiUrl = "http://flask-api-server/analyze_sentiment";
RestTemplate restTemplate = new RestTemplate();
String result = restTemplate.postForObject(apiUrl, "{\"text\": \"" + text + "\"}", String.class);
// result는 파이썬 API의 응답을 나타냅니다.
return result;
}
}
작동되는 방식은 다음과 같습니다.
1. HTML Form태그에서 데이터를 입력하면 POST방식으로 데이터를 /call_python_api를 엔드포인트로 전송합니다.
2. Spring Boot 서버의 YourController 클래스에 정의된 callPythonApi 메서드가 호출
3. 전송된 데이터는 @RequestBody String text로 매핑되어 변수 text에 저장
4. Spring Boot 서버는 RestTemplate을 사용하여 Flask 서버의 /analyze_sentiment 엔드포인트로
HTTP POST 요청을 보냅니다. 이때, text 변수에 저장된 데이터가 Flask 서버로 전달
5. Flask 서버의 /analyze_sentiment 엔드포인트에서는 request.json을 통해 전달된 데이터를 추출하고,
해당 데이터를 이용하여 analyze_sentiment 함수를 실행
6. analyze_sentiment 함수를 이용해서 얻은 결과를 jsonify({'sentiment': result})을 통해
JSON 형식으로 변환하여 반환
7. Spring Boot 서버는 Flask 서버로부터 받은 JSON 형식의 응답을 문자열로 받습니다.
8. result 변수를 반환
두 개의 서버를 동작시키고 spring boot에서 flask 서버를 호출하는 방식으로 인공지능 모델 혹은 코드를 자바 웹 페이지에서 구현할 수 있습니다.
728x90
'[WEB]' 카테고리의 다른 글
[Java] HashMap을 이용한 전체출력(iterator, entrySet(), .forEach()) (0) | 2023.02.14 |
---|---|
[JSP] session 내장 객체와 setAttribute, getAttribute 메소드 (0) | 2023.02.11 |
[JSP] request 내장 객체 (0) | 2023.02.11 |
[HTML & CSS] viewport (0) | 2022.10.11 |
[JSP] 자바빈즈 액션태그 (0) | 2022.10.08 |