feat(llm): défaut kazeia-engine GGUF (lib), plus de .pte au runtime — v0.1.6
Directive 2026-06-15 : si on passe par kazeia-engine, on n'utilise plus de .pte. - ConfigStore.llmEngine défaut "prod"(.pte) → "lib" (EngineLlmAdapter + libkazeia_engine + GGUF). Le .pte n'est plus chargé au runtime ; il reste câblé en repli d'urgence seulement (et sur cette plateforme son runner QNN échoue de toute façon : « Failed to load llm runner [1] »). - ModelRegistry.defaultSpeaker() "qwen3-4b-seq1024"(.pte) → "qwen3.5-4b" (GGUF, q35-lmq4) : config cohérente, le mode lib charge sp.ggufPath() directement sans repli, zéro référence .pte. Validé device (release v0.1.6, SM8750) : libkazeia_engine charge q35-lmq4.gguf en 1.8 s (backend='lib'), 2 générations FR thérapeutiques cohérentes (« C'est compréhensible, je suis là avec toi… » / « C'est vraiment épuisant, je te comprends. »). Règle aussi le mode perroquet observé avec le .pte. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
359252bf5e
commit
2acf3922c9
|
|
@ -44,8 +44,8 @@ android {
|
|||
applicationId = "com.kazeia"
|
||||
minSdk = 28
|
||||
targetSdk = 36
|
||||
versionCode = 6
|
||||
versionName = "0.1.5"
|
||||
versionCode = 7
|
||||
versionName = "0.1.6"
|
||||
|
||||
// WebDAV de distribution — injecté depuis local.properties.
|
||||
buildConfigField("String", "WEBDAV_BASE", "\"${localProp("webdav.base")}\"")
|
||||
|
|
|
|||
|
|
@ -40,10 +40,13 @@ class ConfigStore private constructor(private val file: File) {
|
|||
* (Kazeia-Engine unifié, A/B identique sur set 6 audios mais à valider plus large).
|
||||
* Pilotable depuis l'app admin / provider. Defaults safe = "prod". */
|
||||
val sttEngine: String = "prod",
|
||||
/** Backend LLM : "prod" = ExecuTorchLlmEngine (.pte Qwen3 dense), "lib" =
|
||||
* EngineLlmAdapter (libkazeia_engine + GGUF Qwen3.5). Defaults safe = "prod".
|
||||
* Bascule "lib" nécessite libllama.so fork ql dans jniLibs. */
|
||||
val llmEngine: String = "prod",
|
||||
/** Backend LLM : "lib" = EngineLlmAdapter (libkazeia_engine + GGUF Qwen3.5,
|
||||
* q35-lmq4 par défaut) — défaut depuis 2026-06-15 : on n'utilise PLUS le
|
||||
* .pte avec kazeia-engine (directive). "prod" = ExecuTorchLlmEngine (.pte) —
|
||||
* conservé en repli d'urgence uniquement ; sur cette plateforme le runner QNN
|
||||
* du .pte échoue au load (« Failed to load llm runner [1] »), donc à éviter.
|
||||
* "lib" valide device : load q35-lmq4.gguf 2.6s + génération FR cohérente. */
|
||||
val llmEngine: String = "lib",
|
||||
/** Backend TTS : "lib" = libkazeia_tts unifié (SEUL compatible avec le
|
||||
* libllama.so fork ql embarqué depuis 2026-06-02), "prod" = Qwen3TtsEngine
|
||||
* legacy — CRASHE (SIGSEGV nativeInit, dérive ABI llama_context_params) tant
|
||||
|
|
|
|||
|
|
@ -127,7 +127,9 @@ object ModelRegistry {
|
|||
|
||||
fun byId(id: String): ModelInfo? = ALL.firstOrNull { it.id == id }
|
||||
|
||||
fun defaultSpeaker(): ModelInfo = byId("qwen3-4b-seq1024")
|
||||
// Défaut = Speaker GGUF (moteur kazeia-engine lib) — on n'utilise plus de .pte
|
||||
// (directive 2026-06-15). Repli : tout autre Speaker présent sur disque.
|
||||
fun defaultSpeaker(): ModelInfo = byId("qwen3.5-4b")
|
||||
?: ALL.first { it.role == Role.SPEAKER && it.fileExists() }
|
||||
|
||||
fun defaultThinker(): ModelInfo = byId("guard06b")
|
||||
|
|
|
|||
Loading…
Reference in New Issue