五分钟完成ChatGPT API 接入

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.com/docs/api-reference/introduction

二、ChatGPT Chat API 接入:

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

2.API 接入详解:

2.1 请求url地址:
https://api.openai.com/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.com/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)
			}
	)
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sziitjin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值