안녕하세요, 안드로이드 스튜디오의 Kotlin에서 Okhttp를 이용해 Clova Studio API를 이용하려 하는데, 40001: invalid parameter 오류가 나지만 원인을 찾지 못해서 문의드립니다.
먼저 "message"를 CSR을 활용한 stt 클래스에서 받은 inputText라는 String으로 구성했는데요,
val presetText = listOf(
JSONObject().apply {
put("role", "system")
put("content", """당신은 ~~하는 ~입니다. 등의 내용""".trimIndent()
)
},
JSONObject().apply {
put("role", "user")
put("content", inputText)
})
이렇게 구성했습니다. 이후 요청을 위한 형식을 다음과 같이 만들었습니다.
val requestData = JSONObject().apply {
put("messages", presetText)
put("topP", 0.6)
put("topK", 0)
put("maxTokens", 440)
put("temperature", 0.1)
put("repeatPenalty", 0.5)
put("stopBefore", JSONArray())
put("includeAiFilters", true)
put("seed", 0)
}
val requestBody = requestData.toString().toRequestBody("application/json; charset=utf-8".toMediaTypeOrNull())
val request = Request.Builder()
.url(url)
.addHeader("X-NCP-CLOVASTUDIO-API-KEY", apiKey)
.addHeader("X-NCP-APIGW-API-KEY", apiKeyPrimary)
.addHeader("X-NCP-CLOVASTUDIO-REQUEST-ID", requestId)
.addHeader("Content-Type", "application/json; charset=utf-8")
.addHeader("Accept", "application/json")
// API 가이드에서는 Accept가 text/event-stream으로 구성되지만, Okhttp 환경 상 json을 활용하고 싶어 이렇게 했습니다.
// conditional이라 혹시 주석으로 처리하든 그렇지 않든 코드 40001로 같은 에러가 납니다.
.post(requestBody)
.build()
이렇게 양식을 만들어서 요청하니 HTTP 에러 코드 400, 코드 40001: Invalid Parameter라는 결과가 나왔습니다.
저는 양식에서 오류가 있는 부분을 찾지 못했고 검색에서도 알 수 없어서, 혹시 짚이는 부분이 있는지 문의드립니다.