一个基于 Android + Kotlin + Jetpack Compose 的 AI 创作应用,当前重点接入第三方 API 平台 Geek Al,支持 AI 聊天、AI 生图、AI 视频生成,并保留柏拉图平台的兼容配置。
应用包名:com.bltcy.aiart
当前版本围绕以下能力构建:
- AI 生图:支持文生图与图生图,图片任务由应用侧异步执行并写入本地历史。
- AI 视频:提交视频生成任务后,后台轮询远端任务状态并保存结果。
- AI 对话:基于 OpenAI 兼容接口发送聊天请求,扩展了多种字段与多模态内容结构。
- 任务查询:支持通过 Task ID 手动查看图片任务本地状态和视频任务远端状态。
- 平台配置:Geek Al 为当前主接入平台,柏拉图配置保留用于兼容旧逻辑。
- 聊天接口:
/v1/chat/completions - 生图接口:
/v1/images/generations - 视频接口:
/v1/videos - 视频查询:
/v1/videos/{id}
当前 Geek Al 的 OpenAI/GPT 图片接口返回的是 data[].url 或图片数据,不提供远端图片 task_id 查询端点。
因此项目中的生图实现采用的是:
- 应用本地立即生成一个
geek_image_*taskId - 通过 WorkManager 在后台执行实际生图请求
- 完成后把图片保存到本地并更新 Room 历史记录
也就是说,图片任务查询是“本地异步任务状态”,不是 Geek Al 远端图片任务轮询。
- 文生图
- 图生图
- 历史记录保存
- 本地图片落盘
- 文生视频
- 任务提交后后台轮询
- 视频结果下载与保存
- Task ID 手动查询
- 流式/非流式聊天
- 聊天模型与聊天生图模型分离配置
- 支持扩展字段,例如
top_p、tools、response_format、modalities、audio等
- Geek Al Base URL / API Key / 生图模型 / 聊天模型 / 视频模型
- 柏拉图 Base URL / API Key / 模型配置保留
- 系统提示词配置
- Kotlin 2.0.0
- Android Gradle Plugin 8.13.2
- Jetpack Compose + Material 3
- Navigation Compose
- Hilt
- Room
- DataStore Preferences
- WorkManager
- Retrofit 2.11.0
- OkHttp 4.12.0
- Gson
- Coil
- Media3 ExoPlayer
- JDK 17
- Android SDK 35
- minSdk 26
- targetSdk 35
- Android Studio 最新稳定版或已安装本地 Gradle 的开发环境
app/src/main/java/com/bltcy/aiart/
├─ api/ # Retrofit 接口与请求/响应模型
├─ data/ # Repository、Room、DataStore、资源保存逻辑
├─ di/ # Hilt 依赖注入
├─ ui/ # 导航与 Compose 界面
└─ worker/ # WorkManager 后台任务
git clone https://github.com/bingxinv5/DrawingsoftwareAPP.git
cd DrawingsoftwareAPP确保本机已安装:
- Android Studio
- Android SDK
- JDK 17
本项目不会提交 local.properties,请在本地生成或由 Android Studio 自动创建。
推荐直接使用 Android Studio 打开项目并执行 Gradle Sync。
启动应用后,进入设置页填写:
- Geek Al Base URL
- Geek Al API Key
- Geek Al 生图模型
- Geek Al 聊天模型
- Geek Al 聊天生图模型
- Geek Al 视频模型
注意:默认 Base URL 为 https://api.openai.com/,实际使用时请改成你自己的 Geek Al 或中转平台地址。
可直接在 Android Studio 中运行到真机或模拟器。
如果你本地没有 gradlew / gradlew.bat,可以使用已安装的 Gradle 执行构建,例如:
gradle assembleDebug当前工程已在以下条件下完成过构建验证:
- Java 17
- compileSdk 35
- 本地 Gradle 8.13
assembleDebug构建通过
- API 配置通过 DataStore 保存在本地设备中。
- 图片和视频历史通过 Room 持久化保存。
- 图片/视频资源会保存到本地媒体库。
local.properties、.gradle/、build/、.idea/等本地文件和构建产物已通过.gitignore排除。
- Geek Al 的 GPT 图片接口没有远端图片任务查询端点,因此图片任务追踪是本地异步状态,不是远端轮询。
- 视频相关图片参考字段当前依赖上游接口兼容性,不同平台的 URL / data URI 支持情况可能不同。
- 工程当前仓库未包含 Gradle Wrapper 启动脚本时,需要本机自行提供 Gradle 环境或使用 Android Studio。
- 增加 README 截图或演示 GIF
- 补充接口配置示例
- 新增发布说明与版本日志
- 为公开仓库补充 LICENSE
AI 第三方 API 接入聊天、生图、视频功能的 Android 应用示例工程。