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

  • iqoo8怎么设置快捷启动(iqoo8怎么设置快捷健康码)

    iqoo8怎么设置快捷启动(iqoo8怎么设置快捷健康码)

  • 微信零钱通转出到银行卡多久到账(微信零钱通转出有限额吗)

    微信零钱通转出到银行卡多久到账(微信零钱通转出有限额吗)

  • 退款售后记录删除不了(退款售后记录删除了怎么恢复)

    退款售后记录删除不了(退款售后记录删除了怎么恢复)

  • 钉钉直播费流量吗(钉钉直播费流量还是视频会议费流量)

    钉钉直播费流量吗(钉钉直播费流量还是视频会议费流量)

  • k20pro的光线感应器在哪里(k20pro光线感应器维修费用)

    k20pro的光线感应器在哪里(k20pro光线感应器维修费用)

  • 微信视频比例是几比几(微信视频比例是多少)

    微信视频比例是几比几(微信视频比例是多少)

  • 闲鱼假冒违规怎么处理(闲鱼违规卖假冒商品执行完毕需要申诉吗)

    闲鱼假冒违规怎么处理(闲鱼违规卖假冒商品执行完毕需要申诉吗)

  • 荣耀10青春版指纹设置不见了(荣耀10青春版指纹锁去哪里了)

    荣耀10青春版指纹设置不见了(荣耀10青春版指纹锁去哪里了)

  • 2020抖音用户有多少亿人(抖音用户数2021)

    2020抖音用户有多少亿人(抖音用户数2021)

  • 如何知道朋友圈是不是仅对自己可见(如何知道朋友圈好友将自己删除了)

    如何知道朋友圈是不是仅对自己可见(如何知道朋友圈好友将自己删除了)

  • 华为平板声音小解决方法(华为平板音量怎么调大)

    华为平板声音小解决方法(华为平板音量怎么调大)

  • 如何给文字加双波浪下划线(如何给文字加双下划线)

    如何给文字加双波浪下划线(如何给文字加双下划线)

  • 从哪能看出对方存我手机号(从哪看出对方把你删除了)

    从哪能看出对方存我手机号(从哪看出对方把你删除了)

  • 怎么下载pdf软件(pdf下载官网免费下载)

    怎么下载pdf软件(pdf下载官网免费下载)

  • ipad怎么创建qq群(ipad如何注册qq)

    ipad怎么创建qq群(ipad如何注册qq)

  • word文档角标怎么设置(word文档角标怎么加)

    word文档角标怎么设置(word文档角标怎么加)

  • 安卓手机格式化恢复(安卓手机格式化微信聊天记录还能恢复吗)

    安卓手机格式化恢复(安卓手机格式化微信聊天记录还能恢复吗)

  • viphonexs广角镜头在哪里(苹果xs0.5广角)

    viphonexs广角镜头在哪里(苹果xs0.5广角)

  • 抖音号忘了怎么找回(抖音号忘了怎么解绑身份证)

    抖音号忘了怎么找回(抖音号忘了怎么解绑身份证)

  • 小米4lte是什么版本(小米4lte多少钱)

    小米4lte是什么版本(小米4lte多少钱)

  • 荣耀20i怎么分屏操作(荣耀20i怎么分屏两个应用)

    荣耀20i怎么分屏操作(荣耀20i怎么分屏两个应用)

  • 优活手环能设置成中文吗(优活手环设置中文)

    优活手环能设置成中文吗(优活手环设置中文)

  • appstoreapplemusic怎么解除(appstoreapplemusic怎么取消自动续费华为手机)

    appstoreapplemusic怎么解除(appstoreapplemusic怎么取消自动续费华为手机)

  • 黑鲨2pro支持无线充电吗(黑鲨手机2pro支持无线充电吗)

    黑鲨2pro支持无线充电吗(黑鲨手机2pro支持无线充电吗)

  • kdump是什么(kdm是什么意思)

    kdump是什么(kdm是什么意思)

  • iphone触屏失灵软件修复(ios触屏失灵)

    iphone触屏失灵软件修复(ios触屏失灵)

  • 终于体验了一下ChatGPT(体验了一回)

    终于体验了一下ChatGPT(体验了一回)

  • autoupdate命令  更新configure.in到较新的Autoconf(update-initramfs -u命令)

    autoupdate命令 更新configure.in到较新的Autoconf(update-initramfs -u命令)

  • 小规模增值税会计处理流程
  • 小规模纳税人销售农产品税率是多少
  • 税务登记证号是纳税人识别号吗?
  • 怎么做掉公司账户的钱
  • 可以抵扣的进项税额计入什么科目
  • 抵扣进项税怎么做凭证
  • 个体户转一般纳税人怎么做账
  • 已核销的坏账又收回会计分录
  • 做账时计提费用不含税怎么取整
  • 成本类科目有哪些口诀
  • 外经证到期如何填写最新有效期限
  • 财务预算是做什么的
  • 纳税申报的具体流程个体户
  • 行政事业单位专用材料费列支范围
  • 土地出让金进项税税率
  • 社保滞纳金可以计入管理费用吗为什么
  • 电视台广告费可以抵扣吗
  • 减少实收资本会引起资产和所有者权益发生变化吗
  • 合伙制公司有董事会吗
  • 碎石需要技术吗
  • 报税系统增值税纳税申报查询可以查几年的
  • 12月份奖金怎么扣个税
  • 纳税申报方式怎么修改
  • 分期收款销售的核算中发出商品时借什么账户
  • 预收账款的科目属性
  • 给单位员工报销电话费怎么做账务处理
  • 公司哪些发票可以抵税
  • 职工养老金怎么交费
  • 出口退税申报里汇率计算方式选择
  • 公证处委托他人办理房产证手续
  • 怎么解决百度打不开页面
  • 企业存款利息收入要交哪些税
  • 高新企业认定条件2019
  • 生产废料怎么处理会计分录
  • postman入门
  • 子公司取得投资收益
  • 软件入无形资产还是长期待摊费用了
  • 纳税申报包括哪些税种
  • torch.save用法
  • php的用处
  • 公司制作横幅计入什么科目?
  • ms 高级应用
  • Python 计算机视觉(八)—— OpenCV 进行图像增强
  • 设置cmd命令
  • php 后端
  • php的foreach遍历原理
  • 赔偿金需要交税么
  • 发票备注栏填写样板
  • python如何运行
  • 试用产品的账务处理分录
  • 税款已缴未入库怎么处理
  • 财务预算资产负债表如何编制
  • 工地会计内账
  • access 模糊匹配
  • 农业发展公司有没有库存商品的
  • 养老保险减免退税政策
  • 印花税根据不同的税目,分别采用
  • 收到保险公司赔偿款怎么入账
  • 本月增加无形资产什么时候计提折旧
  • 销售折扣含义
  • 小型微利企业减按25%计算应纳税所得额
  • 借长期借款贷在建工程
  • 对公支付宝可以转个人银行卡吗
  • windows自带的几个软件
  • windows 2000 server sp4 下载
  • mac如何隐藏桌面
  • window10英文版下载
  • unity Toggle Groud
  • react native community
  • 详解16型人格
  • jQuery Ajax请求后台数据并在前台接收
  • 如何解决android兼容问题
  • js读取文件大小
  • 北京孩子社保网上怎么缴费
  • 安徽省国家税务局电子税务局
  • 已知税率怎么求政府税收
  • 如何查询企业税务评级
  • 营业执照网上申报入口官网
  • 购车发票包含
  • 金三是什么鱼竿?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设