Aller au contenu principal
NUKOE

构建Android AI应用:Google生成式AI教程(步骤详解)

• 10 min •
Illustration d'une application Android intégrant l'IA générative de Google.

构建集成生成式AI的Android应用不再是拥有研究部门的团队的专利。Google提供了多种工具,让任何Android开发者都能在不成为机器学习专家的情况下,为其应用添加智能功能。本教程将逐步指导您从空白项目开始,创建一个使用Google Vertex AI Agent Builder的Android应用,并实现首次自然语言交互。

为什么生成式AI改变了Android开发者的游戏规则

语言模型的兴起改变了我们设计用户界面的方式。用户不再需要面对僵硬的按钮和表单,而是可以与应用进行对话。根据Google Cloud的一篇文章,“vibe coding”——用自然语言描述你想要构建的内容——正成为一种独立的开发方法(来源:Cloud Google - Vibe Coding Explained)。对于Android来说,这为内置个人助手、内容生成器或实时分析工具开辟了道路。

官方指南“AI on Android”(来源:Developer Android - AI on Android)列出了可用的API:ML Kit、TensorFlow Lite,以及通过Google AI Edge提供的新API。但对于高级生成式处理,Vertex AI Agent Builder是最全面的工具。

实际案例:智能任务管理应用

设想一个名为“SmartTasks”的应用,它允许用户添加任务、组织任务,并获得上下文建议(例如:“我今天的优先事项是什么?”)。生成式AI用于分析任务并提出优先级顺序、总结一天,甚至生成子任务。

这个案例特意保持简单,以便专注于集成过程。您可以根据自己的需求进行调整。

前提条件

  • Android Studio(最新稳定版)
  • 一个Firebase项目(免费),用于身份验证和云存储
  • 一个启用了结算功能的Google Cloud项目(Vertex AI是付费服务,但有启动积分)
  • Kotlin和Android基础知识

步骤1:创建Android项目并添加Firebase

打开Android Studio,使用“Empty Views Activity”创建一个新项目。将其命名为“SmartTasks”。

然后,将Firebase添加到您的项目。官方文档(来源:Firebase Google - Add Firebase to your Android project)详细说明了步骤:

  1. 前往Firebase控制台,如果尚未创建项目,请创建一个。
  2. 使用您项目的包名添加一个Android应用。
  3. 下载`google-services.json`文件并将其放在项目的`app/`文件夹中。
  4. 在`build.gradle`(应用级别)中添加Firebase依赖:
implementation(platform("com.google.firebase:firebase-bom:32.0.0"))
implementation("com.google.firebase:firebase-auth-ktx")
implementation("com.google.firebase:firebase-firestore-ktx")
  1. 同步项目。

Firebase将用于身份验证(保护Vertex AI访问所必需)和存储任务。

步骤2:启用Vertex AI Agent Builder

Vertex AI Agent Builder允许创建基于语言模型的对话代理。官方codelab(来源:Codelabs Developers Google - Building AI Agents with Vertex AI Agent Builder)详细描述了该过程。

  1. 在Google Cloud控制台中,启用Vertex AI API。
  2. 在Vertex AI Agent Builder中创建一个“Agent”:
  • 命名:“SmartTasksAgent”
  • 定义基础模型(例如`gemini-1.5-pro`)
  • 添加系统指令:“你是一个生产力助手。你帮助用户组织任务。用法语回答。”
  1. 记下`agent_id`(类似于`projects/.../locations/.../agents/...`)。
  2. 生成API密钥(或使用服务账户)以从Android应用调用代理。

> 提示:为了安全访问,不要将密钥直接嵌入应用。使用Firebase Functions作为代理,或使用Vertex AI for Android SDK(预览版)。

步骤3:在应用中集成Vertex AI SDK

Google最近发布了Android版Vertex AI SDK(alpha版)。将其添加到您的项目很简单:

implementation("com.google.cloud:google-cloud-vertexai:0.3.0") // 检查版本

如果您更喜欢REST方式,可以使用Retrofit直接调用API。但SDK更易于处理身份验证和流式传输。

创建一个仓库来集中调用:

class SmartTasksRepository(private val agentId: String) {
    private val vertexAI = VertexAI.init(/ context /)

    suspend fun askAgent(prompt: String): String {
        val agent = vertexAI.agent(agentId)
        val response = agent.sendMessage(prompt)
        return response.text
    }
}

> 注意:由于SDK处于alpha阶段,API可能会发生变化。请参考官方文档获取最新更新。

步骤4:聊天用户界面

创建一个简单的屏幕,使用RecyclerView显示消息和一个输入字段。使用ViewModel管理状态。

class ChatViewModel(private val repository: SmartTasksRepository) : ViewModel() {
    private val _messages = MutableLiveData<List<Message>>()
    val messages: LiveData<List<Message>> = _messages

    fun sendMessage(text: String) {
        viewModelScope.launch {
            _messages.value = _messages.value + Message(text, isUser = true)
            val response = repository.askAgent(text)
            _messages.value = _messages.value + Message(response, isUser = false)
        }
    }
}

步骤5:将Firebase任务与代理关联

为了让代理了解用户的任务,需要提供上下文。当用户提问时,从Firestore获取任务并将其作为上下文发送到提示中。

示例:

val tasks = firestore.collection("users").document(userId).collection("tasks").get().await()
val context = "这是我当前的任务:${tasks.documents.joinToString { it.data }}"
val prompt = "$context

${userInput}"
val response = repository.askAgent(prompt)

部署与测试

在模拟器或实体设备上测试应用。确保代理正确响应。例如:

  • 用户:“我今天的优先事项是什么?”
  • 代理:“根据你的任务,优先事项是完成项目报告,因为明天截止。然后,你下午2点有一个会议。”

优化与生产部署

  • 错误处理:添加超时和错误消息,以防代理无响应。
  • 配额限制:Vertex AI有每分钟请求限制。对常见问题使用客户端缓存。
  • 安全性:验证用户输入以防止提示注入。
  • 成本:通过Google Cloud控制台监控消耗,并通过限制上下文来优化token数量。

Android上的生成式AI仍处于早期阶段,但Google的工具使其变得可访问。通过结合Firebase作为后端和Vertex AI作为智能层,您可以创建理解用户自然语言的应用。本教程为您提供了基础;接下来,由您来想象可能性。

进一步阅读

这些来源将帮助您深入了解每个步骤。