open ai 설정 오류 해결
❎ 문제발생
open ai를 이용해서 본문의 키워드를 추출하는 로직을 만들었는데 오류가 발생하였다.
🆘 해결 과정
같은 동족인 chatgpt한테 해당 오류에 대해서 물어보니 API 사용량 한도초과 오류라고 한다.
아무래도 무료 플랜이라 그런가..
다시 확인해보니 2023년에 다 사용을 해버려서 만료가 되었다고 나온다. 기억이 없지만 이 부분이 오류의 원인으로 보인다.
쓴만큼 나가는게 아니라 초기에는 5달러에서 10달러 사이로 금액을 충전해놓고 사용하는 것으로 보인다.
이제 5달러만큼 GPT의 기능을 사용할수 있게 되었다.
이제 서버에서는 오류 로그가 발생하지 않는데 여전히 swagger에서는 403오류가 발생하였다.
내가 의도한대로 값이 들어오는지 확인하기 위해서 디버깅을 시도했다.
중간에 해당 코드를 추가하여 제대로 response가 되는지 확인
println(response.content())
정상적으로 CI CD, 젠킨스라는 키워드를 추출한것을 확인할수 있다.
그렇다면 오류의 원인은 아래의 코드로 보인다.
private fun parseJsonKeywords(json: String): List<String> {
return try {
Json.decodeFromString(json)
} catch (e: Exception) {
emptyList()
}
}
현재 서버에서는 정상적으로 값이 나오지만
스웨거에서는 403오류가 발생한다..

로그인을 했는데도 계속해서 403오류가 발생하니 일단 코드가 정상적으로 작동하는지 확인하기 위해서 securityconfig 설정에서 해당 주소를 permit 해주고 다시 시도해보았다.
JSON 파싱에서 예상한 형식인 배열 [이 아닌 다른 형식인 '`' (백틱) 기호로 인해서 오류가 발생하였다고 한다.
✔ 해결
해당 코드를 추가하여 OpenAI가 응답을 백틱으로 감싸서 JSON 포맷을 반환하는 형태를 정확한 json 형태로 바꾸어주었다.
val cleanedJson = response.content()?.removeSurrounding("```json", "```")?.trim() ?: ""