当前位置:   article > 正文

五分钟完成ChatGPT API 接入_chatgpt 接入

chatgpt 接入

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 是用户输入的内容;

  1. {
  2. "model": "gpt-3.5-turbo",
  3. "messages": [{"role": "user", "content": "Hello!"}]
  4. }

3.使用OkHttp完整请求

  1. fun jinOpenApi(prompt: String, callback: ICallback<String>?) {
  2. val completionJSON = "{\n" +
  3. " \"model\": \"gpt-3.5-turbo\",\n" +
  4. " \"messages\": [{\"role\": \"user\", \"content\": \"$prompt\"}]\n" +
  5. "}\n"
  6. val okClient = OkHttpClient().newBuilder().build()
  7. val mediaType = "application/json".toMediaTypeOrNull()
  8. val body = RequestBody.create(mediaType, completionJSON)
  9. val request = Request.Builder()
  10. .url("https://api.openai.com/v1/chat/completions")
  11. .method("POST", body)
  12. .addHeader("Authorization", "Bearer $YOUR_API_KEY")
  13. .addHeader("Content-Type", "application/json")
  14. .build()
  15. GlobalScope.loadData(
  16. load = {
  17. okClient.newCall(request).execute()
  18. },
  19. response = {
  20. if (it?.isSuccessful == true) {
  21. val data = it?.body!!.string()
  22. Log.i(TAG, "jinOpenApi data $data")
  23. val dataJSON = JSONObject(data)
  24. val choices = dataJSON.getJSONArray("choices")
  25. if (choices != null && choices.length() > 0) {
  26. val choicesJSON = choices.getJSONObject(0)
  27. val messageJSON = choicesJSON.getJSONObject("message")
  28. val content = messageJSON.optString("content")
  29. callback?.onSuccess(content)
  30. }
  31. }
  32. },
  33. error = {
  34. callback?.onFailed("400", it)
  35. }
  36. )
  37. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/360338
推荐阅读
相关标签
  

闽ICP备14008679号