【ChatGPT初体验与Android的集成使用】
ChatGPT初体验与Android的集成使用
- 前言
- 创建自己的API KEY
- Android端的集成
- 代码
- 总结
前言
ChatGPT凭借着强大的AI功能火的一塌糊涂,由于其官网在国内不能访问,很多小伙伴不能很友好的体验及使用,现在就来分享一下其简单的集成使用,最后附上在Android端的集成代码。
(温馨提示:以下部分网址需要代理访问)
创建自己的API KEY
- 首先打开ChatGPT的官网,在此就不在赘述其注册及登录的过程,具体步骤可以参考这里
- 进入账号后,点击右上角自己的头像,选择View API keys选项
- 点击这个按钮进行key的创建(生成的key记得复制,之后不会再显示,保存好,后面会用到)
Android端的集成
打开API文档,选择查看具体的集成步骤,官方提供了三种方式:curl、python、Node.js
这里我们需要将ChatGPT的chat功能进行集成,开始项目之前,我打算用kotlin + coroutines + retorfit2进行构建
在Android studio中新建项目,列出关键的依赖库:
//retrofit implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' //coroutines implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'
根据官方的Chat部分用例代码来看,需要加上两个请求头:
curl https://api.openai.com/v1/chat/completions \-H 'Content-Type: application/json' \-H 'Authorization: Bearer YOUR_API_KEY' \-d '{"model": "gpt-3.5-turbo","messages": [{"role": "user", "content": "Hello!"}] }'
编写我们自己的请求接口,带上请求头:
interface ApiService {@POST("chat/completions")fun getMessage(@Header("Content-Type") type:String,@Header("Authorization") authorization:String, @Body body:SendBodyData):Call<ModelData> }
viewmodel中实现具体的请求:
private val baseUrl = "https://api.openai.com/v1/chat/completions" private val key = "sk-Rix2aNkoTt0NuiJQBCc4T3BlbkFJMnAdYtxTn1TfpOQ4K" var responseData = MutableStateFlow(ModelData())suspend fun getMsg(info:String){when (val result = ApiHelper.getMsg("application/json","Bearer $key", SendBodyData(listOf(SendMessage(info,"user")),"gpt-3.5-turbo"))) {is Result.Success -> {responseData.emit(result.data)}is Result.Error -> {val exception = result.exception// 处理错误响应println(exception)}} }
最后在Activity中展示:
lifecycleScope.launch {dataViewModel.responseData.collect{mBinding.idTVResponse.text = it.choices?.get(0)?.message?.contentmBinding.idTILQuery.setText("")}}lifecycleScope.launchWhenResumed {dataViewModel.getMsg(mBinding.idTILQuery.text.toString()) }
代码
以上只是贴出了主要代码,具体的工程代码见这里
总结
过程中的踩坑:
- 请求头中Authorization是Bearer类型,否则返回401错误
- 手机运行的时候记得开启代理,否则白折腾半天…
【ChatGPT初体验与Android的集成使用】相关推荐
- ChatGPT初体验step by step:ChatGPT解决人类提出的数理逻辑问题,Python编程实践
ChatGPT初体验step by step:ChatGPT解决人类提出的数理逻辑问题,Python编程实践 如果已有有效的open ai的api key,则跳过本文(1)(2)(3)(4),直接从( ...
- SAP ABAP ChatGPT 初体验 我会失业吗?
SAP ABAP ChatGPT 初体验 我会失业吗? 简介: ChatGPT 最近很火,听说我可能要失业!就在今天我历经千辛万苦,终于把 ChatGPT 注册好了.话不多说,我先问两个 ABAP 开 ...
- ChatGPT初体验-帮我写一本奇幻冒险小说(Aethia的勇士)
问:从现在开始,我希望你假装自己是奇幻类型的作者.你将成为我正在写的小说的代笔人.确认是或否. ChatGPT:是的,我将会假装自己是奇幻类型的作者为您代笔小说.请告诉我您需要我帮助写什么. 问:描述 ...
- ChatGPT初体验——震撼,好用,贾维斯已来
2022.12.26 大概一个月的使用体验,我觉得chagpt的使用还算远远超出我的想象,可以说只有你想不到的,最近需要写一个基于shell的学生选课系统,但是时间实在是紧张的很,一开始chatgpt ...
- 马宁的Windows Phone 7.1初体验——XNA与Silverlight集成
关于Windows Phone Mango真真假假的图片.视频已经在网上流传很久了,微软发布的Windows Phone 7.1 SDK可以让我们看到一部分Mango支持的功能. 普通用户对Mango ...
- ChatGPT初体验——开发好帮手
写在前面 最近ChatGPT AI机器人火爆全网,甚至有人说,继画师之后,策划.程序.运营统统都要失业了,好奇之下,我也去试了下,最大的感受就是震惊,确实被惊艳到了,但大家也不用太焦虑,因为短期内不太 ...
- Android进阶:十一、视频播放器初体验,android开发入门pdf
编译成功之后我们就可以在代码里面用它了,这个也很简单一般不会出什么问题.ijplayer里面提供了一个IMediaPlayer,我们初始化它即可: private void initMediaPlay ...
- [Android Studio] 初体验
[Android Studio] 初体验 本人刚开始接触移动开发方面的知识,在很多方面都感觉寸步难行,移动开发这门课程应该是在我一年后学校才会开设,而移动开发所用到的java也是在我下个学期才开始正式 ...
- 使用Kotlin开发Android应用初体验
使用Kotlin开发Android应用初体验 昨晚,最近一届的谷歌IO大会正式将Kotlin确定为了官方开发语言,作为一名Android开发鸟,怎么能不及时尝尝鲜呢? Kotlin的简要介绍 在开发之 ...
最新文章
- springboot整合mysql5.7_springboot整合mybatis访问mysql,数据库
- 关于kthreadd
- 汇编语言EQU伪指令
- Machine Learning:十大机器学习算法
- jQuery clearQueue
- 为什么我们需要Q#?
- Flink 状态管理
- mysql linux root密码忘记了怎么办,linux下忘记mysql的root密码解决办法 | 严佳冬
- ~~求欧拉函数(附模板题)
- 云服务器上部署pytorch,flask部署pytorch-服务端
- 数据挖掘项目实战—Kaggle入门竞赛:房价预测之EDA与特征工程
- linux三种连接方式
- 高德地图入驻广州交警 实现“互联网+交通”无缝对接
- 双闭环调速 matlab,双闭环直流调速系统仿真(Matlab).ppt
- 企业外贸网站建设的要求及注意事项
- device mapper机制详解
- python学习笔记之序列,内含列表和元组的常用方法
- 在MobaXterm使用命令tree出现乱码解决办法locale的设定及LANG、LC_CTYPE、LC_ALL环境变量
- 微信开发——网页授权
- CRM系统针对性的解决方案—客户管理一体化