Jump to content

Kotlin에서 Clova Studio api를 호출했을 때 40001: invalid parameter 오류가 납니다.


eytg8e

Recommended Posts

안녕하세요, 안드로이드 스튜디오의 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라는 결과가 나왔습니다.
저는 양식에서 오류가 있는 부분을 찾지 못했고 검색에서도 알 수 없어서, 혹시 짚이는 부분이 있는지 문의드립니다.

링크 복사
다른 사이트에 공유하기

게시글 및 댓글을 작성하려면 로그인 해주세요.



로그인
×
×
  • Create New...