"ๅจๆๆบไธ่ท EmbeddingGemma๏ผ่ฎฉไปปไฝ AI ่ๅคฉ่ฝฏไปถ้ฝ่ฝๅฎๅ จ็ฆป็บฟๅ่ฏญไนๆ็ดข" ๐ฑโ๏ธ
ไธไธช็บฏ็ฆป็บฟ็ Android ๆฌๅฐๆๆฌๅ้ๅๆๅกๅจใ้ๆ LiteRT CompiledModel API ่ฟ่ก EmbeddingGemma 300M ๆจกๅ๏ผ้่ฟ NanoHTTPd ๅจ 127.0.0.1 ๅนฟๆญ OpenAI ๅ
ผๅฎน Embedding API๏ผๅฏไพไปปไฝๆฏๆ OpenAI /v1/embeddings ๆ ผๅผ็ๅฎขๆท็ซฏ่ฐ็จใ
| ็นๆง | ่ฏดๆ |
|---|---|
| ๐ง ๆฌๅฐๅ้ๅ | LiteRT + EmbeddingGemma 300M๏ผCPU 66ms@256tokens |
| ๐ OpenAI ๅ ผๅฎน API | /v1/embeddings ยท /health |
| ๐ Matryoshka ็ปดๅบฆ | 768โ512โ256โ128 ๅฏ่ฐ๏ผๅนณ่กก็ฒพๅบฆไธๅญๅจ |
| ๐ ็บฏๆฌๅฐ ยท ้ถ่็ฝ | 127.0.0.1 ็ปๅฎ๏ผ้็งๆฐๆฎไธๅบๆๆบ |
| ๐ ๅ Key ๅ ้ดๆ | API Key ๅฏๅกซไปปๆๅผ๏ผModel ๅฏๅกซไปปๆๅผ |
| ๐ ๅฎๆถ็ป่ฎก | ่ฏทๆฑๆฅๅฟใๅ้ๅ่ๆถใToken ็จ้ |
| ๐ฅ ๅ้้่ทๅๆจกๅ | ๅ
็ฝฎไธ่ฝฝ + ๆๅจๅฏผๅ
ฅ .tflite |
| ๐ ๅๅฐไฟๆดป | Foreground Service + WakeLock + WiFi Lock + ๅฟ่ทณ |
| ๐จ Material Design 3 | Jetpack Compose ยท ๅ ๆฐ็ซ็ณป็ฒ่ฒไธป้ข |
| ๆจกๅ | ๅคงๅฐ | ๆฅๆบ |
|---|---|---|
| EmbeddingGemma 300M | 179MB (.tflite) | litert-community |
| SentencePiece Tokenizer | ~4MB (.model) | google/embeddinggemma-300m |
โ ๏ธ ้ๅ ๅจ HuggingFace ไธ Accept Gemma Licenseใ
curl http://127.0.0.1:8081/health
# โ {"status":"ok","model":"embedding-gemma","dimension":128}curl -X POST http://127.0.0.1:8081/v1/embeddings \
-H "Content-Type: application/json" \
-d '{"model":"ไปปๆๅผ","input":"ไฝ ๅฅฝไธ็"}'้็จไบไปปไฝๆฏๆ OpenAI /v1/embeddings ๆ ผๅผ็ AI ่ๅคฉ่ฝฏไปถ๏ผ
Endpoint: http://127.0.0.1:8081 # ๆไฝ ็่ชๅฎไน็ซฏๅฃ
API Key: ไปปๆๅผ๏ผๆฌๅฐไธๆ ก้ช๏ผ # ๅฆ "sk-local"
Model: ไปปๆๅผ # ๅฆ "embedding-gemma"
โ ๏ธ ็ซฏๅฃ่ฏดๆ๏ผ้ป่ฎค 8081๏ผRainyLLM ็จ 8080๏ผใๅฏๅจ่ฎพ็ฝฎไธญไฟฎๆนใ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Android App โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Compose UI๏ผ3 ๆ ็ญพ้กต๏ผ โ โ
โ โ ไธปๆงๅฐ ยท ๆจกๅ็ฎก็ ยท ่ฎพ็ฝฎ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ HTTP Server (NanoHTTPd 2.3.1) โ โ
โ โ POST /v1/embeddings โ OpenAI ๅ
ผๅฎน โ โ
โ โ GET /health โ ๅฅๅบทๆฃๆฅ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ EmbeddingEngine (LiteRT CompiledModel) โ โ
โ โ ยท EmbeddingGemma 300M (.tflite, ~179MB) โ โ
โ โ ยท SentencePiece Tokenizer โ โ
โ โ ยท Matryoshka ็ปดๅบฆๆชๆญ (768โ128/256/512) โ โ
โ โ ยท ๆง่ฝ: CPU 66ms@256t, NPU 7.8ms@256t โ โ
โ โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ๆจกๅๅญๅจ + ไธ่ฝฝ็ฎก็ โ โ
โ โ ยท ๅ
็ฝฎไธ่ฝฝ๏ผHF litert-community๏ผ โ โ
โ โ ยท ๆๅจๅฏผๅ
ฅ๏ผ็จๆทๆพ็ฝฎ .tflite + tokenizer๏ผ โ โ
โ โ ยท SHA256 ๆ ก้ช โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| ็ปไปถ | ๆๆฏ |
|---|---|
| ๆจ็ๅผๆ | LiteRT CompiledModel API (com.google.ai.edge.litert:litert:2.1.0) |
| HTTP ๆๅกๅจ | NanoHTTPd 2.3.1 |
| Tokenizer | ็บฏ Kotlin SentencePiece BPE๏ผ้ถๅ็ไพ่ต๏ผ |
| NPU ๅ ้ | Qualcomm QNN HTP (SM8450+) ยท MediaTek NeuroPilot |
| UI | Jetpack Compose + Material Design 3 |
| ๆถๆ | MVVM + Coroutines + DataStore |
RainyEmbedding/
โโโ app/src/main/java/com/rainyembedding/app/
โ โโโ RainyEmbeddingApp.kt # Application ็ฑป
โ โโโ MainActivity.kt # ๅฏไธ Activity๏ผ3 ้กตๅฏผ่ช๏ผ
โ โโโ engine/
โ โ โโโ EmbeddingEngine.kt # LiteRT CompiledModel ๅฐ่ฃ
โ โ โโโ EmbeddingTokenizer.kt # SentencePiece ๅ่ฏๅจ
โ โ โโโ TokenEstimator.kt # Token ไผฐ็ฎ fallback
โ โโโ server/
โ โ โโโ EmbeddingServer.kt # NanoHTTPd (/v1/embeddings + /health)
โ โโโ model/
โ โ โโโ ModelInfo.kt # ๆจกๅๅ
ๆฐๆฎ
โ โ โโโ ModelRepository.kt # ๆจกๅๆซๆ/ๅๆข/ๅฏผๅ
ฅ
โ โ โโโ ModelDownloader.kt # DownloadManager ไธ่ฝฝ
โ โ โโโ ModelValidator.kt # SHA256 ๆ ก้ช
โ โโโ service/
โ โ โโโ EmbeddingServerService.kt # Foreground Service + WakeLock
โ โโโ data/
โ โ โโโ AppPreferences.kt # DataStore
โ โ โโโ StatsRepository.kt # ๅ้ๅ็ป่ฎก่ฎฐๅฝ
โ โโโ ui/
โ โโโ screen/
โ โ โโโ DashboardScreen.kt # ไธปๆงๅฐ
โ โ โโโ ModelManagerScreen.kt # ๆจกๅ็ฎก็
โ โ โโโ PerformanceScreen.kt # ็ณป็ป็ๆง
โ โ โโโ SettingsScreen.kt # ็ซฏๅฃ/็ปดๅบฆ/ๅ็ซฏ่ฎพ็ฝฎ
โ โโโ component/
โ โ โโโ ServerStatusCard.kt # ๆๅก็ถๆๅก็
โ โ โโโ ModelDownloadCard.kt # ไธ่ฝฝ่ฟๅบฆๅก็
โ โ โโโ TokenStatsChart.kt # ๅ้ๅ่ถๅฟๅพ
โ โ โโโ LogViewer.kt # ่ฏทๆฑๆฅๅฟ
โ โ โโโ DebugCard.kt # ่ฏๆญ้ขๆฟ
โ โโโ theme/
โ โโโ Color.kt / Theme.kt / Type.kt
โโโ .github/workflows/
โ โโโ release.yml # GitHub Actions ่ชๅจๆๅปบ Release
โโโ gradle/libs.versions.toml # Version Catalog ไพ่ต็ฎก็
โโโ tools/
โโโ npu_runtime_jit/ # NPU ่ฟ่กๆถๅบ๏ผๅค่ฏ็ๆฏๆ๏ผ
26 ไธช Kotlin ๆบๆไปถ๏ผ~3000 ่กไปฃ็ ใ
| ๅทฅๅ ท | ็ๆฌ |
|---|---|
| JDK | 17+๏ผๅฟ ้๏ผ |
| Android Studio | ๆจ่ |
| Android SDK | compileSdk 35, minSdk 31 |
| RAM | ๆจ่ 4GB+ |
| ๆถๆ | arm64-v8a๏ผๅฏไธๆฏๆ๏ผ |
- Clone ไปๅบ๏ผ
git clone https://github.com/CATMIAOZHI/RainyEmbedding.git - ็จ Android Studio ๆๅผ้กน็ฎ
- ๅๆญฅ Gradle๏ผ่ฟๆฅ่ฎพๅค๏ผRun
โถ๏ธ
# ๆๅปบ Debug APK
./gradlew assembleDebug
# ๆๅปบ Release ็ญพๅ APK
./gradlew assembleRelease
# ๅฎ่ฃ
ๅฐ่ฎพๅค
./gradlew installDebug๐ง ARM64 ็ฏๅข่ฏดๆ๏ผ้ๅฟ ้๏ผ
ๅจ ARM64 Linux ็ฏๅข๏ผๅฆ Operit๏ผไธ๏ผGradle ไป Google Maven ไธ่ฝฝ็ AAPT2 ๅฏ่ฝไธๅฏ็ดๆฅไฝฟ็จใๆง่กไปฅไธ่ๆฌไธ้ฎไฟฎๅค๏ผ
chmod +x ./setup_android_env.sh
./setup_android_env.sh| ๆๅปบ็ฑปๅ | ่ทฏๅพ |
|---|---|
| Debug | app/build/outputs/apk/debug/app-debug.apk |
| Release | app/build/outputs/apk/release/app-release.apk |
- ๆๅผ App๏ผ่ฟๅ ฅใๆจกๅ็ฎก็ใ
- ไธ่ฝฝ EmbeddingGemma 300M ๆจกๅ๏ผ~179MB๏ผ
- ๅๅใไธปๆงๅฐใ๏ผ็นๅปใๅฏๅจๆๅกใ
- ๆๅก่ฟ่กๅจ
http://127.0.0.1:8081
้กน็ฎไฝฟ็จ Gradle Version Catalog (gradle/libs.versions.toml) ็ปไธ็ฎก็ไพ่ตใ
| ไพ่ต | ็จ้ |
|---|---|
com.google.ai.edge.litert:litert |
LiteRT CompiledModel API |
org.nanohttpd:nanohttpd:2.3.1 |
่ฝป้ HTTP ๆๅกๅจ |
androidx.compose:compose-bom |
Jetpack Compose BOM |
androidx.navigation:navigation-compose |
้กต้ขๅฏผ่ช |
androidx.datastore:datastore-preferences |
ๅๅฅฝๅญๅจ |
io.coil-kt:coil-compose |
ๅพ็ๅ ่ฝฝ |
- โ 127.0.0.1 ็ปๅฎ๏ผไป ้ๆฌๆบ
- โ allowBackup="false"
- โ ็บฏ็ฆป็บฟ๏ผ้ถ็ฝ็ป่ฏทๆฑ๏ผๆจกๅไธ่ฝฝ้คๅค๏ผ
- โ ้็งๆฐๆฎ๏ผ่ดขๅกใๆไป็ญ๏ผไธ็ฆปๅผๆๆบ
็ผ่พ app/src/main/res/values/strings.xml๏ผ
<string name="app_name">ไฝ ็ๅบ็จๅ</string>็ผ่พ app/src/main/java/com/rainyembedding/app/ui/theme/Color.kt
- ๆดๆฐ
app/build.gradle.ktsไธญ็namespaceๅapplicationId - ้ๅฝๅ
java/com/rainyembedding/app็ฎๅฝ็ปๆ - ๆดๆฐ
AndroidManifest.xmlไธญ็ๅ ๅๅผ็จ
RainyEmbedding ็ฑ้จๆดๅตไธๆฐดๆดๅ ฑๅๆ้ ๏ผๅฑไบใ้จๆด็ณปๅใๅทฅๅ ทไนไธ๏ผ
- RainyLLM โ ๆฌๅฐ LLM ๆจ็ๆๅกๅจ
- RainyEmbedding โ ๆฌๅฐๆๆฌๅ้ๅๆๅกๅจ๏ผๆฌ้กน็ฎ๏ผ
- RainyScanner โ ๆซ็ ๅทฅๅ ท
- Rainy2FA โ TOTP ้ช่ฏๅจ
MIT License ยฉ 2026 Rainy
Made with ๐ข and ๐ฑ paws