admin管理员组

文章数量:1632053

Chat-GPT 是一个基于 GPT-3.5 架构训练的大型语言模型,可以用于各种自然语言处理任务,例如文本生成、对话系统、语言翻译等。本文通过接入 GPT-3.5,实现AI聊天。

实现效果:

 一、ChatGPT API 接入前提条件:

1.已成功注册 OpenAI 的账号;

2.创建 API KEY,这个 API KEY 是用于 API 请求身份验证的,一个 OpenAI 账号可以创建多个 API KEY。

3.官方 API 文档链接 :https://platform.openai/docs/api-reference/introduction

二、ChatGPT Chat API 接入:

1.本文接入的是gpt-3.5,文档链接:https://platform.openai/docs/api-reference/chat/create

2.API 接入详解:

2.1 请求url地址:
https://api.openai/v1/chat/completions

2.2 请求头:
添加头字段Authorization,值为Bearer YOUR_API_KEY(创建的API KEY)来验证身份

2.3 请求参数:
设置 model,使用的是 gpt-3.5;
设置 messages,包含 role(角色) 和 content(内容) 参数,这里使用 role(角色)是 user(用户),content 是用户输入的内容;

{
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content": "Hello!"}]
}

3.使用OkHttp完整请求

fun jinOpenApi(prompt: String, callback: ICallback<String>?) {
	val completionJSON = "{\n" +
			"  \"model\": \"gpt-3.5-turbo\",\n" +
			"  \"messages\": [{\"role\": \"user\", \"content\": \"$prompt\"}]\n" +
			"}\n"
	val okClient = OkHttpClient().newBuilder().build()
	val mediaType = "application/json".toMediaTypeOrNull()
	val body = RequestBody.create(mediaType, completionJSON)
	val request = Request.Builder()
			.url("https://api.openai/v1/chat/completions")
			.method("POST", body)
			.addHeader("Authorization", "Bearer $YOUR_API_KEY")
			.addHeader("Content-Type", "application/json")
			.build()
	GlobalScope.loadData(
			load = {
				okClient.newCall(request).execute()
			},
			response = {
				if (it?.isSuccessful == true) {
					val data = it?.body!!.string()
					Log.i(TAG, "jinOpenApi data $data")
					val dataJSON = JSONObject(data)
					val choices = dataJSON.getJSONArray("choices")
					if (choices != null && choices.length() > 0) {
						val choicesJSON = choices.getJSONObject(0)
						val messageJSON = choicesJSON.getJSONObject("message")
						val content = messageJSON.optString("content")
						callback?.onSuccess(content)
					}
				}
			},
			error = {
				callback?.onFailed("400", it)
			}
	)
}

本文标签: 五分钟chatGPTAPI