位置: 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值狂掉...(谷歌研究院)

  • 微博运营:怎样定义你的微博(微博怎么运营赚钱)

    微博运营:怎样定义你的微博(微博怎么运营赚钱)

  • 电脑屏保时间太短怎么设置(电脑屏保时间太快)

    电脑屏保时间太短怎么设置(电脑屏保时间太快)

  • 华为matebook13有触控屏吗(华为matebook13有智慧语音吗)

    华为matebook13有触控屏吗(华为matebook13有智慧语音吗)

  • 为什么快手视频录制失败(为什么快手视频播放量突然变少?)

    为什么快手视频录制失败(为什么快手视频播放量突然变少?)

  • 苹果11和11 pro的区别(苹果11和11 Pro的钢化膜通用吗)

    苹果11和11 pro的区别(苹果11和11 Pro的钢化膜通用吗)

  • 如何查询对方手机位置(如何查询对方手机号实名信息)

    如何查询对方手机位置(如何查询对方手机号实名信息)

  • 骚扰拦截对方打电话是什么提示(骚扰拦截对方打电话会提示已停机吗)

    骚扰拦截对方打电话是什么提示(骚扰拦截对方打电话会提示已停机吗)

  • oppo手机屏上时间怎么显示(oppo手机屏时间没有了怎么显示设置)

    oppo手机屏上时间怎么显示(oppo手机屏时间没有了怎么显示设置)

  • 苹果手机怎么不能下载抖音极速版(苹果手机怎么不让他自动旋转)

    苹果手机怎么不能下载抖音极速版(苹果手机怎么不让他自动旋转)

  • ios11是什么意思(苹果手机ios11是什么意思)

    ios11是什么意思(苹果手机ios11是什么意思)

  • word2007怎么关闭兼容模式(word2007怎么关闭护眼模式)

    word2007怎么关闭兼容模式(word2007怎么关闭护眼模式)

  • 路由器重启键是哪个(路由器重启键是哪个键)

    路由器重启键是哪个(路由器重启键是哪个键)

  • 小米手机不能安装微信(小米手机不能安装巅峰极速)

    小米手机不能安装微信(小米手机不能安装巅峰极速)

  • 快手什么叫隐私用户(快手隐私用户是什么意思)

    快手什么叫隐私用户(快手隐私用户是什么意思)

  • nova4拍照设置分辨率(华为nova4e拍照分辨率怎么调)

    nova4拍照设置分辨率(华为nova4e拍照分辨率怎么调)

  • 嘀嗒拼车一定要评价吗(嘀嗒拼车需要先付钱吗)

    嘀嗒拼车一定要评价吗(嘀嗒拼车需要先付钱吗)

  • vooc闪充功率多少w(vooc闪充和普通充电的区别)

    vooc闪充功率多少w(vooc闪充和普通充电的区别)

  • word封面怎么设计成彩色(word封面怎么设置图片)

    word封面怎么设计成彩色(word封面怎么设置图片)

  • vivo微信右上角有个锁(vivo微信右上角有个锁怎么去掉)

    vivo微信右上角有个锁(vivo微信右上角有个锁怎么去掉)

  • iphone相机怎么关声音(iphone相机怎么关闭hdr)

    iphone相机怎么关声音(iphone相机怎么关闭hdr)

  • 拼多多招财猫怎么删好友(拼多多招财猫怎么退款)

    拼多多招财猫怎么删好友(拼多多招财猫怎么退款)

  • 自动重调尺寸以适应内容在哪(自动重调尺寸以适应内容 图片仍变形)

    自动重调尺寸以适应内容在哪(自动重调尺寸以适应内容 图片仍变形)

  • 铃声多多怎么弄到本地(铃声多多怎么弄视频铃声)

    铃声多多怎么弄到本地(铃声多多怎么弄视频铃声)

  • DedeCms 防盗链无法下载远程图片的解决方法(php防盗链)

    DedeCms 防盗链无法下载远程图片的解决方法(php防盗链)

  • linux服务器环境一键安装wdCP图形面板安装教程(linux服务器环境搭建)

    linux服务器环境一键安装wdCP图形面板安装教程(linux服务器环境搭建)

  • 个税申报的收入是应发还是实发
  • 软件产品即征即退备案资料
  • 公司出让上一任股东拥有的公司25%股权如何做账?
  • 累计增长量可以为负数吗
  • 发票遗失重开需要收费吗
  • 什么情况下用资本公积科目
  • 社会保险申报表中工资总额累计金额是什么意思
  • 免税项目怎么做账
  • 清算期间,公司是否可以经营
  • 新税法下广告费和业务宣传费的扣除是怎样?
  • 税收优惠形式包括
  • 计提工资当月要结转吗?
  • 公司买车付首付款个人还贷怎么做会计分录
  • 应收账款客户少了几毛没有付怎么处理
  • 工程外管证核销是什么意思
  • 符合营改增应税服务规定的有
  • 结算纪律与法律责任表格
  • 增值税专用发票怎么开
  • 特许权使用费个税计算公式
  • 食用盐的增值税是多少
  • 增值税发票跨年了还能用吗
  • 工会年度收入支出表
  • 贷款买车的利息是多少3年
  • win11怎么设置最佳能效模式
  • 合同终止后发生的效果包括
  • 公司自建办公楼
  • PHP:oci_new_cursor()的用法_Oracle函数
  • 红字发票只能一张一张开吗
  • 股东未实缴资本,因为经营困难借给公司钱,可以要求返还
  • 公司向股东个人借款最新规定
  • 会计凭证设计要注意的问题
  • 收到投标保证金利息如何账务处理
  • 货物运输税费
  • 请问怎么清除
  • uniapp route
  • 金碟软件如何查看明细账
  • 前端框架源码
  • vue3中如何使用vuex
  • 贸易公司结转销售成本凭证怎么做
  • 科目汇总表借方发生额为零怎么填
  • 结算应付职工薪酬影响当期损益吗
  • 跨年坏账准备转回
  • 开具增值税专用发票的规定
  • 帝国cms登录
  • 股权转让会计分录摘要怎么写
  • 预付款项为什么这么多
  • sqlserver2012备份
  • 人工智能自动对焦又叫什么
  • SQL Server 2005 DTS导入平面数据出现错误解决方案
  • 银行手续费已扣发票未开的账务处理
  • 企业汇算清缴必须要做审计吗
  • 房地产影响投资和消费,事关民生和发展
  • 适用于一般纳税人的税率有
  • 备用金被盗刷了怎么办
  • 土地出让金印花税减半政策
  • 贷款利息支出属于财务费用吗
  • 筹建期费用需要结转吗
  • 怎样申请开发票
  • win8系统打开软件闪退
  • win xp怎么样
  • win8系统怎么关掉开机密码
  • windows8怎么设置
  • windows显示缩略图
  • mac系统有txt吗
  • qbdagent2002.exe - qbdagent2002是什么进程 有什么用
  • win7手动更新在哪里设置
  • macbookair控制面板
  • win10怎么旋转屏幕
  • win10安装字体的操作步骤
  • android开发环境安装步骤
  • 纯js代码实现一进一出
  • Node.js中的construct构造函数
  • python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
  • 异步任务管理器
  • jquery做菜单
  • jquery mobile grid
  • 怎么向税务局举报不开票行为
  • 保险公司个人所得税扣除标准是多少
  • 浙江省如何自助缴纳社保
  • 广东发票查验平台下载
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设