我想在简单的活动中添加聊天启动聊天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")
}
}
}
})
}
将 "model": "text-davinci-003", 更改为 "model": "gpt-3.5-turbo"
或者更改您的授权密钥后尝试,因为我也得到了这个
错误,我根据值进行了更改并修复了它。这对我有用。