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

  • 品牌宣传你需要专注品牌自身的三个原因(品牌需要宣传推广)

    品牌宣传你需要专注品牌自身的三个原因(品牌需要宣传推广)

  • 天猫精灵怎么重置(天猫精灵怎么重制)

    天猫精灵怎么重置(天猫精灵怎么重制)

  • 腾讯会议共享屏幕掉帧(腾讯会议共享屏幕时可以看到人脸吗)

    腾讯会议共享屏幕掉帧(腾讯会议共享屏幕时可以看到人脸吗)

  • bah3-w09是什么型号(bah3 w09是什么型号)

    bah3-w09是什么型号(bah3 w09是什么型号)

  • 戴尔电脑摄像头打不开怎么回事(戴尔电脑摄像头旁边的小孔是)

    戴尔电脑摄像头打不开怎么回事(戴尔电脑摄像头旁边的小孔是)

  • 身份id是什么意思(身份id是什么意思怎么查)

    身份id是什么意思(身份id是什么意思怎么查)

  • 苹果商店连不上网怎么回事(苹果商店连不上服务器)

    苹果商店连不上网怎么回事(苹果商店连不上服务器)

  • 华为手机为啥铃声不响(华为手机为啥铃声不是默认铃声)

    华为手机为啥铃声不响(华为手机为啥铃声不是默认铃声)

  • 微信语音耳机模式怎么切换扬声器(微信语音耳机模式怎么变成扬声器)

    微信语音耳机模式怎么切换扬声器(微信语音耳机模式怎么变成扬声器)

  • 抖音怎么集抖音钻(抖音怎么抖音号登录不了)

    抖音怎么集抖音钻(抖音怎么抖音号登录不了)

  • flyme7开发者选项在哪(flyme8打开开发者模式)

    flyme7开发者选项在哪(flyme8打开开发者模式)

  • word怎么在目录里加一行(word怎么在目录里加小标题)

    word怎么在目录里加一行(word怎么在目录里加小标题)

  • 去哪儿网返现的钱在哪(去哪儿网返现的条件是什么)

    去哪儿网返现的钱在哪(去哪儿网返现的条件是什么)

  • 2060 2070差距(2060和2070差距多少)

    2060 2070差距(2060和2070差距多少)

  • 车载u盘怎么在手机上用(车载u盘怎么在电脑上下载歌曲)

    车载u盘怎么在手机上用(车载u盘怎么在电脑上下载歌曲)

  • vue里的解说字幕怎么加(vuevlog加字幕)

    vue里的解说字幕怎么加(vuevlog加字幕)

  • 趣头条里面走路任务在哪里(趣头条app下载安装走路赚钱)

    趣头条里面走路任务在哪里(趣头条app下载安装走路赚钱)

  • ns连不上wifi(ns连不上wifi 2110-2003)

    ns连不上wifi(ns连不上wifi 2110-2003)

  • oppok3和oppor17的区别(oppor17跟k3配置对比)

    oppok3和oppor17的区别(oppor17跟k3配置对比)

  • atman是什么手机(atman手机怎么样)

    atman是什么手机(atman手机怎么样)

  • vivox23怎么设置红外线(vivox23怎么设置自动关机开机)

    vivox23怎么设置红外线(vivox23怎么设置自动关机开机)

  • 怎么取消黄钻自动续费(怎么取消黄钻自动续费苹果手机)

    怎么取消黄钻自动续费(怎么取消黄钻自动续费苹果手机)

  • 前端数据加密的几种方式(前端数据加密的三种方式)

    前端数据加密的几种方式(前端数据加密的三种方式)

  • 吉野山,日本奈良 (© Sean Pavone/iStock/Getty Images Plus)(吉野是哪里)

    吉野山,日本奈良 (© Sean Pavone/iStock/Getty Images Plus)(吉野是哪里)

  • 【6G 新技术】6G数据面介绍

    【6G 新技术】6G数据面介绍

  • 单位的车辆车船税怎么交
  • 什么情况才能开专票
  • 工资中代扣款是什么
  • 税务局的信用等级是多少
  • 中药饮片增值税税率
  • 非工作日是否可以开标
  • 出口退税逾期申报,需申报出口货物收汇情况表
  • 行政单位的财务报告包括财务报表和财务情况说明书
  • 房屋出租需要缴纳个人所得税吗
  • 行政事业单位暂付款无法收回该怎么处理
  • 商业折扣应交税费
  • 公允价值变动损益属于当期损益吗
  • 出口退税收入做什么科目
  • 营改增之前房地产开发企业交什么税
  • 先征后返的所得税账务处理
  • 小型微利企业减按25%计算应纳税所得额
  • 房地产企业收到预收款如何纳税
  • 低价股权转让是利空还是利好
  • 合并报表编织原则
  • 地产佣金收入属什么收入
  • 跨年发票冲红重新开具购买方做账不
  • 生产车间计提折旧分录
  • 没签合同怎么交社保
  • 进项税发票认证流程
  • 看看大家退休的单子
  • 不适用研究开发费用税前加计扣除政策的有
  • 仲裁委判决还能上诉吗
  • 河道管理费入什么科目
  • 资金账簿印花税税率
  • 客户扣款会计分录明细科目
  • 1697510839
  • 合作社人工工资账务处理
  • 企业发生的亏损不一定会导致所有者权益减少
  • 未开票收入申报后又要开票
  • Yii2隐藏frontend/web和backend/web的方法
  • 贷款房屋评估费怎么收
  • kali linux怎么修改用户名
  • wordpresswiki
  • 抖音小程序任务哪里接
  • 税务自查补税后还有风险吗
  • php use function
  • 房地产企业预售期间广告费
  • 外贸企业出口退税流程(详细步骤)
  • 新政府会计制度固定资产核算
  • 发票跟税有什么关系
  • 国家企业信用公示信息公示
  • 对方开具红字发票,我方怎么查询
  • sql server复制表数据
  • 合并会计报表合并范围
  • 收到发票未收到货物
  • 折旧方法计算公式
  • 个体工商户财务怎么做账
  • 处置子公司利润表怎么合并
  • 哪些情况下可以终止心肺复苏
  • 受托方受托代销商品会计分录
  • 装修费用不摊销怎么入账
  • 银行电子汇票到期后多久到账
  • 暂估应付账款借贷方向
  • 外贸退税是算利润吗
  • 残联对残疾人的补助资金是多少
  • 加计扣除要交企业所得税吗
  • sql server的go
  • linux磁盘管理fdisk
  • Ubuntu Server 13.10 安装配置图解教程
  • centos设置永不待机
  • win7自动更新在哪
  • 无需u盘安装系统
  • win8 任务栏
  • 使用Jasmine和Karma对AngularJS页面程序进行测试
  • cocos2dx 3.3 helloworld 入门 学习与详解
  • js调用图片代码
  • android解析xml的方法中,将整个文件加载到内存
  • js tabs
  • js中的!
  • javascript如何学
  • jquery怎么遍历
  • jquery怎么写轮播图
  • 深圳市税务局陈建新
  • 深圳企业所得税税率多少
  • 云南省国家税务局APP
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设