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

  • iphone13pro支持快充吗(13pro有快充吗)

    iphone13pro支持快充吗(13pro有快充吗)

  • opporeno4pro是否有3.5mm耳机孔(opporeno4pro都有哪一些不一样的功能)

    opporeno4pro是否有3.5mm耳机孔(opporeno4pro都有哪一些不一样的功能)

  • 抖音点赞会耗内存吗(抖音点赞会耗内存吗知乎)

    抖音点赞会耗内存吗(抖音点赞会耗内存吗知乎)

  • b站私信有红色的感叹号(b站私信有红色的感叹号 别着急发图啊)

    b站私信有红色的感叹号(b站私信有红色的感叹号 别着急发图啊)

  • ios13升级苹果7p会卡吗(苹果7p升级13.3)

    ios13升级苹果7p会卡吗(苹果7p升级13.3)

  • oppor17电池变黄怎么调回绿色(oppo 电池显示变黄)

    oppor17电池变黄怎么调回绿色(oppo 电池显示变黄)

  • 智能云电视机系统复位花屏了(智能电视云电视)

    智能云电视机系统复位花屏了(智能电视云电视)

  • 苹果无线耳机掉了一个可以买一个吗(苹果无线耳机掉了别人捡到连接上会知道吗)

    苹果无线耳机掉了一个可以买一个吗(苹果无线耳机掉了别人捡到连接上会知道吗)

  • 微信更换实名后原来的信息还有吗(微信更换实名后有什么影响)

    微信更换实名后原来的信息还有吗(微信更换实名后有什么影响)

  • 微信发视频给好友最多几分钟(微信发视频给好友失败)

    微信发视频给好友最多几分钟(微信发视频给好友失败)

  • 华为mate30pro有没有视频美颜功能(华为mate30pro有没有双系统)

    华为mate30pro有没有视频美颜功能(华为mate30pro有没有双系统)

  • 新买手机需要关机充电吗(买手机需要关注哪些方面)

    新买手机需要关机充电吗(买手机需要关注哪些方面)

  • iphone有没有分屏功能(iphone有分屏么)

    iphone有没有分屏功能(iphone有分屏么)

  • qq怎么用动态图做头像(qq动态图怎么做表情包)

    qq怎么用动态图做头像(qq动态图怎么做表情包)

  • 淘宝网创办于哪一年(淘宝网创办哪一年)

    淘宝网创办于哪一年(淘宝网创办哪一年)

  • 双卡设置在哪里(苹果手机双卡设置在哪里)

    双卡设置在哪里(苹果手机双卡设置在哪里)

  • 行货跟水货的区别(水货与行货有何区别)

    行货跟水货的区别(水货与行货有何区别)

  • 微博移出好友圈对方知道吗(微博移出好友圈还是互相关注吗)

    微博移出好友圈对方知道吗(微博移出好友圈还是互相关注吗)

  • 手机下载的安装包在哪里(手机下载的安装包删除了如何找回)

    手机下载的安装包在哪里(手机下载的安装包删除了如何找回)

  • 小米8屏幕指纹版跑分多少(小米8屏幕指纹版和探索版有什么区别?)

    小米8屏幕指纹版跑分多少(小米8屏幕指纹版和探索版有什么区别?)

  • app英文变中文的方法如下(app英文变中文的软件下载)

    app英文变中文的方法如下(app英文变中文的软件下载)

  • 苹果手机连接电脑教程(苹果手机连接电脑)

    苹果手机连接电脑教程(苹果手机连接电脑)

  • 转出未交增值税在借方是什么意思
  • 营销策划代理合同
  • 普通电子发票如何冲红
  • 个税申报填写的工资是应发还是实发
  • 五险一金计提缴纳分录
  • 业务活动费用和行政支出
  • 期间费用包括资本公积吗
  • 小企业工资薪酬制度
  • 公益性支出所得税扣除比例
  • 应收账款计提坏账准备是谨慎性原则吗
  • 补交增值税怎么处理
  • 跨年发票企业所得税
  • 应纳税额计算举例
  • 小规模企业如何变更营业范围
  • excel单元格内换行macbook
  • 装修公司一般纳税人纳税标准
  • 对公账户提取备用金可以每天提现嘛
  • 纳税申报有哪些规定
  • 自己是公司法人可以给自己发工资吗
  • 产假期间出现事故可以报工伤吗
  • 发票的开具时效为
  • 附加税包括哪些税种2021年
  • 哪些发票可以开专票
  • 微软输入法打不出汉字只有拼音
  • 领用原材料业务
  • 安全库存的三种算法
  • 侵权行为 法律行为
  • 产负债表的负债项目,显示了企业所负担债务的
  • php几天可以速成
  • EasyExcel使用与步骤
  • PHP:pcntl_sigprocmask()的用法_PCNTL函数
  • 代缴费社保
  • PHP:gettimeofday()的用法_Date Time函数
  • 商业汇票不带息到银行办理贴现公式
  • 发票打印出来的字太靠下了
  • 人工智能内容生成
  • 基于专业性的家校双向互动,需要家长的学校教育参与
  • 企业微信如何微信认证
  • 只有进项发票,没有销项可以吗
  • 月末半成品也需要结转生产成本
  • 代缴纳房产税
  • mysql索引之间的区别
  • 资产负债表编制
  • MySQL中使用命令行查看二进制文件
  • 资产总额的季度平均值
  • 怎么计算土地增值税收入
  • 商业保险如何做伤残鉴定的
  • 长期待摊费用待摊费用
  • 净资产收益率多少才是好股
  • 金税盘开完发票可以直接拔掉吗?
  • 服务企业的举措
  • mysql视图语句
  • 通过SQLSERVER重启SQLSERVER服务和计算机的方法
  • linux 切文件
  • windows8远程桌面连接
  • winxp开启远程控制
  • mac上怎么查看qq聊天记录
  • windows7怎么画画
  • 2021年win10新系统版本
  • win10播放视频的软件
  • 附件中的应用程序
  • 英雄联盟windows10
  • opengl详解
  • node.js项目结构
  • javascript 基础
  • linux 批量修改
  • javascript的简介
  • JQuery绑定事件的函数是
  • android图片压缩到200-300kb
  • 国家税务局科员属于什么级别
  • 北京朝阳地税搬哪去了
  • 税务局和国税
  • 材料费增值税发票几个点
  • 云税票管家是什么软件
  • 北京国家税务局待遇
  • 国家税务总局简易征收最新文件
  • 富士康走了,京东去哪了
  • 建筑工程招标代理服务费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设