文章目录
前言
大家好!在这篇博客中,我将深入讲解如何使用 Android Studio、Retrofit 库以及 Material Design 组件,从零开始构建一个简单的聊天机器人,并集成 Google 的 Gemini API。我们将逐步完成以下步骤,并详细解释每个步骤的目的和实现方式,让我们开始吧!
1. 项目初始化和依赖添加
目的: 创建一个新的 Android 项目,并引入必要的库,以便进行网络请求和 UI 开发。这里,我的项目名称为geminiapi_demo2
步骤:
-
创建项目: 在 Android Studio 中,选择 “File” -> “New” -> “New Project”,选择 “Empty Activity” 模板,并设置项目名称、包名等。
-
添加依赖: 打开
build.gradle (Module: app)
文件,在dependencies
块中添加以下依赖:implementation 'com.squareup.retrofit2:retrofit:2.9.0' // Retrofit 库,用于网络请求 implementation 'com.squareup.retrofit2:converter-gson:2.9.0' // Gson 库,用于 JSON 数据解析 implementation 'com.google.android.material:material:1.11.0' // Material Design 组件库,用于构建简单且相对美观的 UI
retrofit
: Retrofit 是一个类型安全的 HTTP 客户端,用于简化网络请求。converter-gson
: Gson 是一个 Java 库,用于将 JSON 数据转换为 Java 对象,反之亦然。material
: Material Design 组件库提供了各种预定义的 UI 组件,可以帮助我们快速构建美观的 Android 应用。
-
同步 Gradle: 点击 “Sync Now” 按钮,同步 Gradle 文件,下载并安装依赖库。
2. Retrofit 配置
目的: 创建一个 Retrofit 客户端类,用于发送 HTTP 请求到 Gemini API。
步骤:
-
创建
ApiClient.java
文件: 在com.example.geminiapi_demo2
包下创建一个名为ApiClient.java
的 Java 文件。 -
添加代码: 将以下代码添加到
ApiClient.java
文件中:package com.example.geminiapi_demo2; import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory; public class ApiClient { private static final String BASE_URL = "https://generativelanguage.googleapis.com/v1/"; // Gemini API 的基础 URL private static Retrofit retrofit; public static Retrofit getClient() { if (retrofit == null) { retrofit = new Retrofit.Builder() .baseUrl(BASE_URL) // 设置基础 URL .addConverterFactory(GsonConverterFactory.create()) // 添加 Gson 转换器 .build(); } return retrofit; } }
BASE_URL
: 定义 Gemini API 的基础 URL。Retrofit.Builder()
: 创建 Retrofit 客户端的构建器。baseUrl()
: 设置请求的基础 URL。addConverterFactory()
: 添加 Gson 转换器,用于将 JSON 数据转换为 Java 对象。build()
: 构建 Retrofit 客户端。
3. Gemini API 接口定义
目的: 定义一个 Java 接口,用于描述与 Gemini API 交互的方法。
步骤:
-
创建
GeminiApiService.java
文件: 在com.example.geminiapi_demo2
包下创建一个名为GeminiApiService.java
的 Java 接口文件。 -
添加代码: 将以下代码添加到
GeminiApiService.java
文件中:package com.example.geminiapi_demo2; import com.example.geminiapi_demo2.models.GenerateContentRequest; import com.example.geminiapi_demo2.models.GenerateContentResponse; import retrofit2.Call; import retrofit2.http.Body; import retrofit2.http.Headers; import retrofit2.http.POST; import retrofit2.http.Path; public interface GeminiApiService { @Headers({ "Content-Type: application/json", // 设置请求头,指定内容类型为 JSON "x-goog-api-key: YOUR_API_KEY" // 设置请求头,添加 API 密钥 }) @POST("models/{model}:generateContent") // 定义 POST 请求的 URL Call<GenerateContentResponse> generateContent(@Path("model") String model, @Body GenerateContentRequest request); // 定义请求方法 }
@Headers
: 用于设置请求头。Content-Type: application/json
:指定请求体的内容类型为 JSON。x-goog-api-key: YOUR_API_KEY
:添加 API 密钥,用于身份验证。请将YOUR_API_KEY
替换为你实际的 API 密钥。
@POST
: 指定请求方法为 POST,并定义请求的 URL。@Path
: 用于替换 URL 中的占位符{model}
。@Body
: 用于指定请求体,这里使用GenerateContentRequest
对象作为请求体。Call<GenerateContentResponse>
: 定义请求方法的返回类型,使用 Retrofit 的Call
对象,并指定响应类型为GenerateContentResponse
。
4. Gemini API密钥获取
目的: 获取Gemini API的密钥以连接至Gemini
步骤:
-
准备一个谷歌账号,已经有了请跳过。
-
建议使用美国节点访问。
-
打开Google AI Studio 申请api的网址:https://makersuite.google.com/app/apikey。
-
点击左边菜单里的 Get API key,然后在右边点击创建API密钥,这样就可以得到你的API密钥了
5. 数据模型创建
目的: 创建 Java 类,用于映射 Gemini API 的请求和响应数据。
步骤:
-
创建
models
包: 在com.example.geminiapi_demo2
包下创建一个名为models
的包。 -
创建
GenerateContentRequest.java
文件: 在models
包下创建一个名为GenerateContentRequest.java
的 Java 文件,用于定义请求数据模型。 -
添加代码: 将以下代码添加到
GenerateContentRequest.java
文件中:package com.example.geminiapi_demo2.models; import java.util.List; public class GenerateContentRequest { private List<Content> contents; public GenerateContentRequest(List<Content> contents) { this.contents = contents; } public List<Content> getContents() { return contents; } public void setContents(List<Content> conte