Skip to content

Latest commit

ย 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ”ข RainyEmbedding (้›จๆ™ดๅ‘้‡)

"ๅœจๆ‰‹ๆœบไธŠ่ท‘ 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ใ€‚


๐Ÿ”Œ API ไฝฟ็”จ

ๅฅๅบทๆฃ€ๆŸฅ

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๏ผˆๅ”ฏไธ€ๆ”ฏๆŒ๏ผ‰

ๆ–นๅผไธ€๏ผšAndroid Studio๏ผˆๆŽจ่๏ผ‰

  1. Clone ไป“ๅบ“๏ผšgit clone https://github.com/CATMIAOZHI/RainyEmbedding.git
  2. ็”จ Android Studio ๆ‰“ๅผ€้กน็›ฎ
  3. ๅŒๆญฅ 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

APK ่พ“ๅ‡บไฝ็ฝฎ

ๆž„ๅปบ็ฑปๅž‹ ่ทฏๅพ„
Debug app/build/outputs/apk/debug/app-debug.apk
Release app/build/outputs/apk/release/app-release.apk

้ฆ–ๆฌกไฝฟ็”จ

  1. ๆ‰“ๅผ€ App๏ผŒ่ฟ›ๅ…ฅใ€Œๆจกๅž‹็ฎก็†ใ€
  2. ไธ‹่ฝฝ EmbeddingGemma 300M ๆจกๅž‹๏ผˆ~179MB๏ผ‰
  3. ๅˆ‡ๅ›žใ€ŒไธปๆŽงๅฐใ€๏ผŒ็‚นๅ‡ปใ€ŒๅฏๅŠจๆœๅŠกใ€
  4. ๆœๅŠก่ฟ่กŒๅœจ 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

ไฟฎๆ”นๅŒ…ๅ

  1. ๆ›ดๆ–ฐ app/build.gradle.kts ไธญ็š„ namespace ๅ’Œ applicationId
  2. ้‡ๅ‘ฝๅ java/com/rainyembedding/app ็›ฎๅฝ•็ป“ๆž„
  3. ๆ›ดๆ–ฐ AndroidManifest.xml ไธญ็š„ๅŒ…ๅๅผ•็”จ

๐Ÿฑ ๅ…ณไบŽ

RainyEmbedding ็”ฑ้›จๆ™ดๅ–ตไธŽๆฐดๆ™ดๅ…ฑๅŒๆ‰“้€ ๏ผŒๅฑžไบŽใ€Œ้›จๆ™ด็ณปๅˆ—ใ€ๅทฅๅ…ทไน‹ไธ€๏ผš

  • RainyLLM โ€” ๆœฌๅœฐ LLM ๆŽจ็†ๆœๅŠกๅ™จ
  • RainyEmbedding โ€” ๆœฌๅœฐๆ–‡ๆœฌๅ‘้‡ๅŒ–ๆœๅŠกๅ™จ๏ผˆๆœฌ้กน็›ฎ๏ผ‰
  • RainyScanner โ€” ๆ‰ซ็ ๅทฅๅ…ท
  • Rainy2FA โ€” TOTP ้ชŒ่ฏๅ™จ

๐Ÿ“„ License

MIT License ยฉ 2026 Rainy


Made with ๐Ÿ”ข and ๐Ÿฑ paws

About

๐Ÿฑ ้›จๆ™ดๅ‘้‡ โ€” ็บฏ็ฆป็บฟ Android ๆœฌๅœฐๆ–‡ๆœฌๅ‘้‡ๅŒ–ๆœๅŠกๅ™จ๏ผŒ่ท‘ EmbeddingGemma ๆจกๅž‹๏ผŒๅนฟๆ’ญ OpenAI ๅ…ผๅฎน API | RainyEmbedding - Offline text embedding server on Android

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages