68543357c2
- Replaced `EmbeddingProvider` with cross-platform `TextEmbeddingExecutor` for native target compatibility. - Introduced `:memory-md-vector` module combining vector-cache and `.md` file-based memory systems (`hybrid` backend). - Updated `SiglipEmbeddingProvider` to use KMP `TextEmbeddingExtractor` and streamlined compatibility via `asExecutor`. - Added hybrid memory backend to `standalone`, supporting `.md` reconciliation with vector-cache for semantic
49 lines
2.2 KiB
Kotlin
49 lines
2.2 KiB
Kotlin
plugins {
|
||
alias(libs.plugins.kotlin.multiplatform)
|
||
}
|
||
|
||
// CI-флаг: при -PskipVectorMemory=true зависимости text-embedding-kmp
|
||
// не подключаются. Нужно для CI runner'а — text-embedding-kmp ещё не
|
||
// опубликован в caffeine, артефакты есть только в локальном ~/.m2.
|
||
// Использование:
|
||
// ./gradlew :memory-vector:compileKotlinJvm -PskipVectorMemory=true
|
||
// Локальная разработка без флага — зависимости подключаются как обычно.
|
||
val skipVectorMemory: Boolean =
|
||
(project.findProperty("skipVectorMemory") == "true") ||
|
||
System.getenv("SKIP_VECTOR_MEMORY") == "1"
|
||
|
||
kotlin {
|
||
jvmToolchain(21)
|
||
|
||
// Vector-бэкенд JVM-only: JVector не публикует KMP-таргеты, но его Java 11
|
||
// base jar работает на Android ART через scalar fallback. Для desktop JVM
|
||
// HotSpot 21+ автоматически подхватывается Panama Vector API (multirelease).
|
||
jvm()
|
||
|
||
sourceSets {
|
||
commonMain.dependencies {
|
||
api(project(":memory-api"))
|
||
implementation(libs.kotlinx.coroutines.core)
|
||
implementation(libs.kotlinx.serialization.json)
|
||
// `pw.binom.ai.embeddingtext:api` (TextEmbeddingExtractor + TextEmbedding)
|
||
// теперь KMP с нативом (linuxX64/mingwX64/macOS/ios); тянем в commonMain.
|
||
// Реализации (`siglip`, `http`) — JVM+Android only, см. jvmMain ниже.
|
||
api(libs.text.embedding.api)
|
||
}
|
||
commonTest.dependencies {
|
||
implementation(kotlin("test"))
|
||
implementation(libs.kotlinx.coroutines.core)
|
||
implementation(libs.kotlinx.coroutines.test)
|
||
}
|
||
jvmMain.dependencies {
|
||
implementation(libs.jvector)
|
||
implementation(libs.sqldelight.sqlite.driver)
|
||
// Конкретная реализация TextEmbeddingExtractor поверх ONNX.
|
||
implementation(libs.text.embedding.siglip)
|
||
}
|
||
jvmTest.dependencies {
|
||
implementation(kotlin("test"))
|
||
}
|
||
}
|
||
}
|