kotlin android 应用程序中的聊天启动 chatgpt api:意外响应代码:404

问题描述 投票:0回答:1

我想在简单的活动中添加聊天启动聊天gpt api,问题是无法获得响应 在 logcat (意外响应代码:404)中,我的活动(用于显示响应和编辑文本的文本视图以及用于调用该函数的 btn)。

我的职能:

private fun getResponse(question: String, callback: (String) -> Unit) {
        val apiKey = "my api key"
        val url = "https://api.openai.com/v1/completions"

        val requestBody = """
            {
            "model": "text-davinci-003",
            "prompt": "$question",
            "max_tokens": 500,
            "temperature": 0
            }
        """.trimIndent()

        val request = Request.Builder()
            .url(url)
            .addHeader("Content-Type", "application/json")
            .addHeader("Authorization", "Bearer $apiKey")
            .post(requestBody.toRequestBody("application/json".toMediaTypeOrNull()))
            .build()

        client.newCall(request).enqueue(object : Callback {
            override fun onFailure(call: Call, e: IOException) {
                Log.e("error", "API request failed", e)
                callback("Failed to get a response")
            }

            override fun onResponse(call: Call, response: Response) {
                response.use {
                    if (!it.isSuccessful) {
                        Log.e("error", "Unexpected response code: ${it.code}")
                        callback("Failed to get a response")
                        return
                    }

                    val body = it.body?.string()
                    if (body == null) {
                        Log.e("error", "Response body is null")
                        callback("Failed to get a response")
                        return
                    }

                    Log.v("data", body)

                    try {
                        val jsonObject = JSONObject(body)
                        val jsonArray: JSONArray = jsonObject.getJSONArray("choices")
                        val textResult = jsonArray.getJSONObject(0).getString("text")
                        callback(textResult.trim())
                    } catch (e: Exception) {
                        Log.e("error", "Failed to parse JSON", e)
                        callback("Failed to parse response")
                    }
                }
            }
        })
    }
android kotlin openai-api
1个回答
0
投票

"model": "text-davinci-003", 更改为 "model": "gpt-3.5-turbo"

或者更改您的授权密钥后尝试,因为我也得到了这个

错误,我根据值进行了更改并修复了它。这对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.