eytg8e Posted November 18 공유하기 Posted November 18 안녕하세요, 안드로이드 스튜디오의 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라는 결과가 나왔습니다. 저는 양식에서 오류가 있는 부분을 찾지 못했고 검색에서도 알 수 없어서, 혹시 짚이는 부분이 있는지 문의드립니다. 링크 복사 다른 사이트에 공유하기 More sharing options...
CLOVA Studio 운영자 Posted November 19 공유하기 Posted November 19 @eytg8e님, """당신은 ~~하는 ~입니다. 등의 내용""" 이 부분이 올바른 json 포맷이 아닙니다. json 의 문자열 내 double quote를 사용하고자 하는 경우 적절한 escape 처리를 해야 할 것 같습니다. 감사합니다. 1 링크 복사 다른 사이트에 공유하기 More sharing options...
eytg8e Posted November 19 Author 공유하기 Posted November 19 말씀하신 내용대로 하니 형식 오류가 해결됐습니다! 감사합니다. 1 링크 복사 다른 사이트에 공유하기 More sharing options...
Recommended Posts
게시글 및 댓글을 작성하려면 로그인 해주세요.
로그인