十分钟教你搭建类似ChatGPT的安卓应用程序

大家好,我是易安!

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

如何使 ChatGPT 像 Android 应用程序一样
如何使 ChatGPT 像 Android 应用程序一样

详细步骤

第 1 步:在 Android Studio 中创建一个新项目

要在 Android Studio 中创建新项目,以 Kotlin 作为编程语言为例。

第 2 步:在 build.gradle 文件中添加以下依赖项

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

// 下一行用于 volley 库
实现 'com.android.volley:volley:1.2.0'

添加此依赖项后,同步您的项目,然后转到 AndroidManifest.xml 部分。

第三步:在AndroidManifest.xml文件中添加上网权限

导航到应用 > AndroidManifest.xml 并向其中添加以下代码。

  • 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
<?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">

 <ScrollView
  android: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">

  <LinearLayout
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical">

   <!-- text view for displaying question-->
   <TextView
    android: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-->
   <TextView
    android: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.TextInputLayout
  android: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.TextInputEditText
   android: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 (openai获取你的api key),只需使用您的电子邮件和密码注册即可。在此屏幕上单击创建新密钥以生成新密钥。生成您的密钥后,我们必须将其用作制作 API 密钥的令牌。

第 6 步:使用 MainActivity.kt 文件。

导航到 app > java > 你的应用程序包名称 > MainActivity.kt 文件并向其中添加以下代码。

这里选择的模型text-davinci-003,当然你可以选择其他3.5的模型

  • Kotlin
import android.content.Context
import android.os.Bundle
import android.util.Log
import android.view.inputmethod.EditorInfo
import android.widget.TextView
import android.widget.TextView.OnEditorActionListener
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.android.volley.RequestQueue
import com.android.volley.Response
import com.android.volley.RetryPolicy
import com.android.volley.VolleyError
import com.android.volley.toolbox.JsonObjectRequest
import com.android.volley.toolbox.Volley
import com.google.android.material.textfield.TextInputEditText
import org.json.JSONObject

class MainActivity : AppCompatActivity() {

 // creating variables on below line.
 lateinit var responseTV: TextView
 lateinit var questionTV: TextView
 lateinit var queryEdt: TextInputEditText

 var url = "https://api.openai.com/v1/completions"

 override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  setContentView(R.layout.activity_main)
  
  responseTV = findViewById(R.id.idTVResponse)
  questionTV = findViewById(R.id.idTVQuestion)
  queryEdt = findViewById(R.id.idEdtQuery)

  
  queryEdt.setOnEditorActionListener(OnEditorActionListener { v, actionId, event ->
   if (actionId == EditorInfo.IME_ACTION_SEND) {
    
    responseTV.text = "Please wait.."
    
    if (queryEdt.text.toString().length > 0) {
     
     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) {
  
  questionTV.text = query
  queryEdt.setText("")
  
  val queue: RequestQueue = Volley.newRequestQueue(applicationContext)
  
  val jsonObject: JSONObject? = JSONObject()
  
  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)

  
  val postRequest: JsonObjectRequest =
   
   object : JsonObjectRequest(Method.POST, url, jsonObject,
    Response.Listener { response ->
     
     val responseMsg: String =
      response.getJSONArray("choices").getJSONObject(0).getString("text")
     responseTV.text = responseMsg
    },
    
    Response.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()
    
     params["Content-Type"] = "application/json"
     params["Authorization"] =
      "Bearer Enter your token here"
     return params;
    }
   }

  
  postRequest.setRetryPolicy(object : RetryPolicy {
   override fun getCurrentTimeout(): Int {
    return 50000
   }

   override fun getCurrentRetryCount(): Int {
    return 50000
   }

   @Throws(VolleyError::class)
   override fun retry(error: VolleyError) {
   }
  })
  
  queue.add(postRequest)
 }
}

最终运行结果:

alt

多年没开发安卓的我,也能在很短的时间不费吹飞之力搭建出来,你也赶紧去试试吧!之后我还会出一些更加详细的搭建教程,感谢阅读!

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/1115.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一款好用的ChatGPT工具,安卓app

要找到一款真正好用的chatgpt工具是不容易的&#xff0c;要么注册付费很麻烦&#xff0c;要么很快就不能用了&#xff0c;要么还不是真正的chatgpt。 这款解决以上所有问题。 你似乎来到了没有知识存在的荒原 - 知乎知乎&#xff0c;中文互联网高质量的问答社区和创作者聚集的…

ChatGPT能帮Android开发者干些啥?

ChatGPT能帮Android开发者干些啥&#xff1f; ChatGPT 是 OpenAI 创建的一种自然语言工具&#xff0c;本文将展示一些使用 ChatGPT 帮助软件开发的实际示例。凭借其易用性和自定义功能&#xff0c;ChatGPT 可以为提高软件工程师的绩效做出贡献。 访问 ChatGPT 转到https://ch…

Android Studio类ChatGpt的免费AI编程助手

ChatGpt大火&#xff0c;带动了AI工具的发展&#xff0c;介绍两款免费的AI编程助手&#xff0c;一款用于输入关键字自动输出代码&#xff0c;一款则是自动补全提示&#xff0e; 可支持大部分代码编辑器&#xff0c;这里主要介绍Android Studio上安装使用&#xff0e; Bito 支…

ChatGpt与AndroidStudio合体变身教程,从此ChatGPT成为你的私人助理

chatGpt火了这么长时间了&#xff0c;大家肯定都有所了解&#xff0c;今天我就给大家分享一下&#xff0c;如何让chatgpt与AndroidStudio成功合体&#xff0c;变身成为我们的私人助理&#xff01;&#xff08;记得给鄙人点点关注哦&#xff09; 合体进行中 合体步骤下载插件重…

使用 ChatGPT 改善 Android 开发效率的 7 个案例

ChatGPT 是由 OpenAI 公司创造的自然语言处理工具&#xff0c;对那些想要提高技能的软件开发人员来说&#xff0c;它绝对是不容错过的重要利器。 本文将展示使用 ChatGPT 来促进 Android 软件开发的 7 个案例&#xff0c;你会发现凭借其易用性和定制功能&#xff0c;ChatGPT 能…

Android Studio 插件 ChatGPT

一、为什么要在AS里使用ChatGPT 在AS里使用ChatGPT可以辅助生成一些重复性、解析类的代码&#xff0c;还有一些功能性问题查找&#xff0c;具体需要个人探索。官网使用经常性出现断连&#xff0c;需要刷新浏览器&#xff0c;而且经常历史列表丢失&#xff08;个人是这样的&…

【ChatGPT初体验与Android的集成使用】

ChatGPT初体验与Android的集成使用 前言创建自己的API KEYAndroid端的集成代码总结 前言 ChatGPT凭借着强大的AI功能火的一塌糊涂&#xff0c;由于其官网在国内不能访问&#xff0c;很多小伙伴不能很友好的体验及使用&#xff0c;现在就来分享一下其简单的集成使用&#xff0c…

OpenAI的ChatGPT简介,以及DALLE和cursor

目录 写在前面GPT-4GPT-3DALL-EGPT的插件API调用cursor 概述注册邮箱验证短信验证 探索ChatGPT集成了GPT的IDE&#xff0c;CURSOR集成了GPT的期刊查询网站参考材料 写在前面 关于注册账号&#xff0c;如果原来就有gmail或者个人版outlook邮箱&#xff0c;就可以很快完成注册&a…

ChatGPT到底是个啥 - 它甚至会和狗说话

写在前面&#xff1a;博主是一只经过实战开发历练后投身培训事业的“小山猪”&#xff0c;昵称取自动画片《狮子王》中的“彭彭”&#xff0c;总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域&#xff0c;如今终有小成…

ChatGPT 使用中常见错误及解决【持续更新】

ChatGPT是一种基于GPT-3.5架构的大型语言模型&#xff0c;由OpenAI进行训练和开发。它可以模拟人类对话&#xff0c;根据输入的问题或主题生成有逻辑性和上下文的回答。ChatGPT通过大规模的自然语言处理和深度学习算法&#xff0c;具备丰富的知识和理解能力&#xff0c;可以应用…

如何解决ChatGPT网络错误的问题,让AI对话更丝滑~

前言 在当今人工智能技术的飞速发展中&#xff0c;ChatGPT 作为一款大型语言模型备受瞩目。近期&#xff0c;其在各大社交媒体平台上的表现更是引来了一片关注之声。无论是与用户进行有趣的对话&#xff0c;还是帮助人们解决实际问题&#xff0c;ChatGPT 展现出了其强大的自然…

深度学习实战19(进阶版)-SpeakGPT的本地实现部署测试,基于ChatGPT在自己的平台实现SpeakGPT功能

大家好,我是微学AI,今天给大家带来SpeakGPT的本地实现,在自己的网页部署,可随时随地通过语音进行问答,本项目项目是基于ChatGPT的语音版,我称之为SpeakGPT。 ChatGPT最近大火,其实在去年12月份就想做一期关于ChatGPT的文章。 ChatGPT是美国OpenAI公司研发的功能强大的…

ChatGPT 都在用的身份认证产品,你了解多少?

近期&#xff0c;人工智能研究公司 OpenAI 正式推出 ChatGPT&#xff0c;这是一种基于对话的人工智能聊天机器人模型&#xff0c;它能够理解自然语言并以自然语言的方式做出回应。上线不到一周&#xff0c;用户数已经突破 100 万大关。 上线仅 5 天用户数就突破百万大关&#…

手把手带你利用苹果手机使用美区礼品卡升级ChatGPT Plus,轻松搞定!

大家好&#xff0c;我是五竹。 昨天用苹果手机尝试了一下&#xff0c;借助App Store&#xff08;苹果应用商店&#xff09;升级 Plus&#xff0c;成功了&#xff01;一共升级了三个号&#xff01;有两个一气呵成&#xff0c;轻松搞定。最后一个可能触发风控了&#xff0c;但第…

国产ChatGPT大战弱智吧效果实测!网页端小程序均已上线,人人可玩

杨净 萧箫 发自 凹非寺量子位 | 公众号 QbitAI “中国版ChatGPT首发”&#xff0c;争得不可开交&#xff0c;热闹却一直没个结果—— 自ChatGPT发布以来&#xff0c;目前进展最快的国内产品也仅是开启了内测&#xff0c;不知道啥时候才能玩上。 结果现在有读者跟我们爆料&#…

不定期更新:我对 ChatGPT 进行多方位了解后的报告,超级全面,建议想了解的朋友看看

优质介绍视频&#xff1a; GPT4前端【AI编程新纪元】 【渐构】万字科普GPT4为何会颠覆现有工作流&#xff1b;为何你要关注微软Copilot、文心一言等大模型 此文章不定期更新&#xff08;一周应该会更新一次&#xff09; 最近一次更新&#xff1a;2023.5.17 23:00&#xff08;…

GPT-4发布!ChatGPT大升级!AI画图牛逼

一觉醒来&#xff0c;万众期待的GPT-4&#xff0c;它来了&#xff01; OpenAI老板Sam Altman直接开门见山地介绍说&#xff1a; 这是我们迄今为止功能最强大的模型&#xff01; 有多强&#xff1f; 根据OpenAI官方的介绍&#xff0c;GPT-4是一个超大的多模态模型&#xff0c;也…

最新ChatGPT网站源码+支持GPT4+支持ai绘画(Midjourney)+一键在线更新版本+永久更新!

最新ChatGPT网站源码支持GPT4支持ai绘画(Midjourney)一键在线更新版本永久更新&#xff01; 支持手机电脑不同布局页面自适应 正文 ChatGPT网站系统商用运营版&#xff1a; 如果后续程序有新版&#xff0c;直接在后台一键更新即可&#xff01; 程序完美运行无BUG&#xff0c;…

ChatDOC工具——使用ChatGPT高效阅读技术科研论文

ChatDOC是一款功能强大的人工智能阅读辅助工具&#xff0c;专为帮助用户快速理解论文内容而设计。使用ChatDOC&#xff0c;您可以通过上传PDF版论文文献&#xff0c;利用先进的ChatGPT技术&#xff0c;只需三个简单步骤&#xff0c;便可以高效地阅读论文&#xff0c;提高阅读效…

怎么注册Google账号(使用国内手机号注册)

怎么注册Google账号&#xff08;使用国内手机号注册&#xff09; 记录一下如何用 国内的手机号 注册Google账号 文章目录 怎么注册Google账号&#xff08;使用国内手机号注册&#xff09;进入Google官网创建账号注册信息填写手机号&#xff08;踩坑版&#xff09;填写手机号&am…