位置: IT常识 - 正文

如何在Android中使用OpenAI API构建一个ChatGPT类的应用程序(如何在Android中找到关闭的文件)

编辑:rootadmin
如何在Android中使用OpenAI API构建一个ChatGPT类的应用程序

推荐整理分享如何在Android中使用OpenAI API构建一个ChatGPT类的应用程序(如何在Android中找到关闭的文件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:如何在Android中创建一个手机,如何在android中进行单元测试,如何在Android中找到关闭的文件,如何在Android中使用线性布局,如何在android中创建新的,如何在Android中找到关闭的文件,如何在android中进行单元测试,如何在android中恢复已删除的文件?,内容如对您有帮助,希望把文章链接给更多的朋友!

ChatGPT是当今著名的人工智能工具之一,类似于聊天机器人。这个聊天机器人回答所有发送给它的查询。在本文中,我们将通过集成OpenAI API(ChatGPT)来构建一个简单的类似ChatGPT的android应用程序,我们可以在其中提出任何问题并得到适当的答案

我已经创建了一个示例应用程序,并将看看它的输出,然后我们将进一步在android studio中创建一个新项目。

一步一步的实现步骤1:在Android Studio中创建一个新项目

要在Android Studio中创建一个新项目,请参考How to Create/Start a New Project in Android Studio。注意,选择Kotlin作为编程语言。

步骤2:添加以下依赖项build.gradle 文件

下面是Volley的依赖关系,我们将使用它从API获取数据。要添加此依赖项,app > Gradle Scripts > build.gradle(app),并在依赖项部分添加以下依赖项。我们已经使用了Picasso依赖项来从URL加载图像

// below line is used for volley library

implementation ‘com.android.volley:volley:1.2.0’

如何在Android中使用OpenAI API构建一个ChatGPT类的应用程序(如何在Android中找到关闭的文件)

添加这个依赖后,同步你的项目,现在转移到AndroidManifest.xml部分。

步骤3:在AndroidManifest.xml文件中添加网络访问权限

app > AndroidManifest.xml,并将以下代码添加到其中

<!--permissions for INTERNET--><uses-permission android:name="android.permission.INTERNET"/>

步骤4:使用activity_main.xml文件

app > res > layout > activity_main.xml并将以下代码添加到该文件中。下面是activity_main.xml文件的代码。

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/back_color"tools:context=".MainActivity"><ScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_above="@id/idTILQuery"android:layout_alignParentTop="true"android:layout_margin="5dp"android:padding="5dp"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><!-- text view for displaying question--><TextViewandroid:id="@+id/idTVQuestion"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginTop="30dp"android:padding="4dp"android:text="Question"android:textColor="@color/white"android:textSize="17sp" /><!-- text view for displaying response--><TextViewandroid:id="@+id/idTVResponse"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginTop="5dp"android:padding="4dp"android:text="Response"android:textColor="@color/white"android:textSize="15sp" /></LinearLayout></ScrollView><!-- text field for asking question--><com.google.android.material.textfield.TextInputLayoutandroid:id="@+id/idTILQuery"style="@style/TextInputLayoutStyle"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_margin="5dp"android:hint="Enter your query"android:padding="5dp"android:textColorHint="@color/white"app:hintTextColor="@color/white"><com.google.android.material.textfield.TextInputEditTextandroid:id="@+id/idEdtQuery"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/edt_back_color"android:drawableEnd="@drawable/ic_send"android:drawableTint="@color/white"android:ems="10"android:imeOptions="actionSend"android:importantForAutofill="no"android:inputType="textEmailAddress"android:textColor="@color/white"android:textColorHint="@color/white"android:textSize="14sp" /></com.google.android.material.textfield.TextInputLayout></RelativeLayout>

步骤5:生成使用API的记名令牌。

导航到下面的 URL,只需注册您的电子邮件和密码。在此屏幕上单击Create a new secret key以生成新密钥。一旦你的密钥生成,我们必须使用它作为一个令牌,使我们的API密钥。

步骤6:使用MainActivity。kt文件。

导航到app > java > your app’s package name > MainActivity.kt 文件,并添加下面的代码。代码中添加了注释以详细了解它。

import android.content.Contextimport android.os.Bundleimport android.util.Logimport android.view.inputmethod.EditorInfoimport android.widget.TextViewimport android.widget.TextView.OnEditorActionListenerimport android.widget.Toastimport androidx.appcompat.app.AppCompatActivityimport com.android.volley.RequestQueueimport com.android.volley.Responseimport com.android.volley.RetryPolicyimport com.android.volley.VolleyErrorimport com.android.volley.toolbox.JsonObjectRequestimport com.android.volley.toolbox.Volleyimport com.google.android.material.textfield.TextInputEditTextimport org.json.JSONObjectclass MainActivity : AppCompatActivity() {// creating variables on below line.lateinit var responseTV: TextViewlateinit var questionTV: TextViewlateinit var queryEdt: TextInputEditTextvar url = "https://api.openai.com/v1/completions"override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)// initializing variables on below line.responseTV = findViewById(R.id.idTVResponse)questionTV = findViewById(R.id.idTVQuestion)queryEdt = findViewById(R.id.idEdtQuery)// adding editor action listener for edit text on below line.queryEdt.setOnEditorActionListener(OnEditorActionListener { v, actionId, event ->if (actionId == EditorInfo.IME_ACTION_SEND) {// setting response tv on below line.responseTV.text = "Please wait.."// validating textif (queryEdt.text.toString().length > 0) {// calling get response to get the response.getResponse(queryEdt.text.toString())} else {Toast.makeText(this, "Please enter your query..", Toast.LENGTH_SHORT).show()}return@OnEditorActionListener true}false})}private fun getResponse(query: String) {// setting text on for question on below line.questionTV.text = queryqueryEdt.setText("")// creating a queue for request queue.val queue: RequestQueue = Volley.newRequestQueue(applicationContext)// creating a json object on below line.val jsonObject: JSONObject? = JSONObject()// adding params to json object.jsonObject?.put("model", "text-davinci-003")jsonObject?.put("prompt", query)jsonObject?.put("temperature", 0)jsonObject?.put("max_tokens", 100)jsonObject?.put("top_p", 1)jsonObject?.put("frequency_penalty", 0.0)jsonObject?.put("presence_penalty", 0.0)// on below line making json object request.val postRequest: JsonObjectRequest =// on below line making json object request.object : JsonObjectRequest(Method.POST, url, jsonObject,Response.Listener { response ->// on below line getting response message and setting it to text view.val responseMsg: String =response.getJSONArray("choices").getJSONObject(0).getString("text")responseTV.text = responseMsg},// adding on error listenerResponse.ErrorListener { error ->Log.e("TAGAPI", "Error is : " + error.message + "\n" + error)}) {override fun getHeaders(): kotlin.collections.MutableMap<kotlin.String, kotlin.String> {val params: MutableMap<String, String> = HashMap()// adding headers on below line.params["Content-Type"] = "application/json"params["Authorization"] ="Bearer Enter your token here"return params;}}// on below line adding retry policy for our request.postRequest.setRetryPolicy(object : RetryPolicy {override fun getCurrentTimeout(): Int {return 50000}override fun getCurrentRetryCount(): Int {return 50000}@Throws(VolleyError::class)override fun retry(error: VolleyError) {}})// on below line adding our request to queue.queue.add(postRequest)}}输出参考

https://media.geeksforgeeks.org/wp-content/uploads/20230118003207/Screenrecorder-2023-01-18-00-28-57-186.mp4?_=1

参考文章:https://www.geeksforgeeks.org/how-to-build-a-chatgpt-like-app-in-android-using-openai-api/

本文链接地址:https://www.jiuchutong.com/zhishi/299788.html 转载请保留说明!

上一篇:【学Vue就跟玩一样】组件-单文件组件(vue该怎么学)

下一篇:谷歌研究员走火入魔事件曝光:认为AI已具备人格,被罚带薪休假,聊天记录让网友San值狂掉...(谷歌研究院)

  • 找不到服务器或dns错误的解决方法(找不到服务器或 DNS 错误)(找不到服务器或dns错误怎么办win10)

    找不到服务器或dns错误的解决方法(找不到服务器或 DNS 错误)(找不到服务器或dns错误怎么办win10)

  • 道客巴巴的文档怎么免费复制(道客巴巴的文档怎么引用)

    道客巴巴的文档怎么免费复制(道客巴巴的文档怎么引用)

  • 苹果x要不要升级ios13.4.1

    苹果x要不要升级ios13.4.1

  • 3g手机还能上网吗(3g手机还能上网怎么回事)

    3g手机还能上网吗(3g手机还能上网怎么回事)

  • 华为手机有语音助手吗(华为手机有语音播报功能吗)

    华为手机有语音助手吗(华为手机有语音播报功能吗)

  • 腾讯会议电脑可以用吗(腾讯会议电脑可以签到吗)

    腾讯会议电脑可以用吗(腾讯会议电脑可以签到吗)

  • 小米路由器网速不稳定(小米路由器网速慢怎么解决)

    小米路由器网速不稳定(小米路由器网速慢怎么解决)

  • qq临时会话是什么意思(qq中临时会话是什么)

    qq临时会话是什么意思(qq中临时会话是什么)

  • dou+投放技巧(dou+投放有用吗)

    dou+投放技巧(dou+投放有用吗)

  • 手机上出现耳机标志没声音怎么办(手机上出现耳机图标是什么情况)

    手机上出现耳机标志没声音怎么办(手机上出现耳机图标是什么情况)

  • 微信对话框怎么换气泡(微信对话框怎么缩小)

    微信对话框怎么换气泡(微信对话框怎么缩小)

  • 笔记本网速慢如何解决(笔记本网速慢如何修复)

    笔记本网速慢如何解决(笔记本网速慢如何修复)

  • vivo演示机模式怎么解除(vivo演示机模式怎么解除x80)

    vivo演示机模式怎么解除(vivo演示机模式怎么解除x80)

  • 通讯卫星是同步卫星吗(通迅卫星也称同步卫星,同步卫星若成为静止卫星)

    通讯卫星是同步卫星吗(通迅卫星也称同步卫星,同步卫星若成为静止卫星)

  • oppo呼吸灯设置方法(oppo呼吸灯设置在哪里)

    oppo呼吸灯设置方法(oppo呼吸灯设置在哪里)

  • 拼多多怎么删除评价记录(拼多多怎么删除订单记录)

    拼多多怎么删除评价记录(拼多多怎么删除订单记录)

  • 荣耀v20外观尺寸(荣耀V20外观尺寸)

    荣耀v20外观尺寸(荣耀V20外观尺寸)

  • oppo短信拦截在哪里设置(oppo短信拦截在哪里设置方法)

    oppo短信拦截在哪里设置(oppo短信拦截在哪里设置方法)

  • 拼多多限购在哪里设置(拼多多限购在哪看)

    拼多多限购在哪里设置(拼多多限购在哪看)

  • pbft00是什么手机型号(pbem00是什么型号手机)

    pbft00是什么手机型号(pbem00是什么型号手机)

  • 交管12123服务器异常怎么回事(交管12123服务器繁忙什么意思)

    交管12123服务器异常怎么回事(交管12123服务器繁忙什么意思)

  • 华为提示灯怎么开启(华为提示灯颜色怎么设置)

    华为提示灯怎么开启(华为提示灯颜色怎么设置)

  • 微软/edge文本转语音API接口(microsoftedge怎么转换成ie)

    微软/edge文本转语音API接口(microsoftedge怎么转换成ie)

  • html文件里怎么引用vue组件?(html文档怎么写)

    html文件里怎么引用vue组件?(html文档怎么写)

  • 销售商品的差价怎么算
  • 什么是应税所得率方式
  • 带薪年休假如果当年离职补交的年休假钱需要扣个税嘛
  • 处理应收账款的办法
  • 红字冲回账务处理
  • 代开专票可以开13个点吗
  • 发票为啥一直显示上传不成功
  • 税控盘怎么增加专票
  • 出售无形资产净收益是收入吗
  • 企业发生的技术转让费应计入
  • 非营利性科研机构接受企业基础研究收入免征企业所得税
  • 销售自己使用过的物品
  • 转让不动产增值税计算
  • 增值税发票可以抵扣多少
  • 办理产权证费用明细
  • 自建厂房可以不办理房产证吗
  • 开出转账支票用什么凭证
  • 代开专票退票流程及说明
  • 开专票一定要公章吗
  • 营业收入中包括营业外收入吗
  • 自制材料入库计划成本
  • 个体户季度超30万要交多少税
  • 应交税费有余额怎么结转
  • 房子报废
  • 红色手撕发票怎么看金额
  • 公司自有房屋出租 营业范围
  • 投资电影分红款如何开具发票?
  • 电脑bios设置最佳性能和默认
  • 只开发票没有合同需要缴纳印花税吗?
  • 适用加计抵减政策的行业
  • 员工垫付款怎么做分录
  • 广告制作包括印花吗
  • 建筑公司合作模式有哪几种
  • 弃置费用的会计核算
  • 大金中央空调面板图解
  • 哪些收入不纳税
  • 贴现会不会损害所有者权益
  • 国有企业正常60岁退休到什么鉴字
  • 搜索神器官网
  • 职工意外保险比例
  • laravel 5.1下php artisan migrate的使用注意事项总结
  • 月末结转本年利润吗
  • 项目部署计划
  • 残疾人保证金优惠减免怎么申请退税
  • 诉讼费发票丢失可以补开吗
  • 织梦标签教程
  • 经营范围广告业务能开什么发票
  • sqlserver获取uuid
  • 什么情况下增值税进项税额转出
  • 红字发票什么意思怎么做账
  • 营利性与非营利性的关系
  • 企业所得税汇算表
  • 税务开票金额每个月有限制吗
  • 借方记录什么的增加
  • 库存商品结转成本需要附件吗
  • 没计提的税费怎么处理
  • 员工替公司垫付工资违法吗
  • 新公司利润分配
  • 承兑个人贴现如何操作
  • 如何判断企业实际控制人
  • sql报无效字符
  • win10蓝屏怎么修复系统
  • linux解析命令
  • 硬盘uefi启动安装系统
  • mac画图的app叫什么
  • w7系统cf怎么调烟雾头
  • mac怎么旋转窗口
  • win10输入法设置快捷键
  • Linux shell实现HTTP服务示例代码
  • css hacks
  • 如何让批处理文件运行不显示
  • python中的
  • bootstrap要学吗
  • bash特殊符号
  • pythonipo模型
  • [置顶] [Android Studio 权威教程]Android Studio 三种添加插件的方式
  • js中的类和对象
  • jQuery插件开发
  • 国税系统公务员政审父母超生合格吗
  • 税盘注销了怎么申报增值税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设