Локальная LLM: конфиг автора + uses-native-library в <application>
- AndroidManifest: три uses-native-library (libOpenCL/libvndksupport/libcdsprpc) ВНУТРИ <application> — aapt2 8.9.2 отбрасывает тег на уровне <manifest> - LocalLlm: enableSpeculativeDecoding=true, GPU/GPU/CPU бэкенды (как у автора) - DebugHttpServer: HTTP-отладка ассистента без UI - Log/PhoneApp: мелкие правки Подтверждено: движок поднимается, локальный чат отвечает на HONOR AXGL024B05001337
This commit is contained in:
@@ -111,6 +111,9 @@ class PhoneApp : Application() {
|
||||
/** Активный локальный LLM-клиент (движок закрываем при смене выбора). */
|
||||
private var localLlm: LocalLlmClient? = null
|
||||
|
||||
/** Текущий локальный LLM-клиент (для DebugHttpServer / статуса). */
|
||||
fun localLlmClient(): LocalLlmClient? = localLlm
|
||||
|
||||
/** Выбор модели LLM (персистится, [pw.binom.viewmate.phone.agent.LlmPrefs]). */
|
||||
// lazy: конструктор Application выполняется ДО attachBaseContext — контекст (и
|
||||
// getSharedPreferences/getExternalFilesDir) доступен только после; ленивость —
|
||||
@@ -191,7 +194,10 @@ class PhoneApp : Application() {
|
||||
val llm = when (choice) {
|
||||
LlmModelChoice.REMOTE -> RemoteLlmClient(apiKey = BuildConfig.LLM_API_KEY, model = BuildConfig.LLM_MODEL)
|
||||
LlmModelChoice.LOCAL -> {
|
||||
val cacheDir = File(filesDir, "litertlm-cache")
|
||||
// cacheDir — подкаталог cache/litertlm: в 11:46 именно с ним
|
||||
// (без спекуляции) движок инициализировался за 12с; с корнем
|
||||
// cache/ initialize() виснет. GPU-делегату нужен СВОЙ каталог.
|
||||
val cacheDir = File(cacheDir, "litertlm")
|
||||
LocalLlmClient(modelFile = localModelFile(), cacheDir = cacheDir).also { localLlm = it }
|
||||
}
|
||||
}
|
||||
@@ -395,6 +401,7 @@ class PhoneApp : Application() {
|
||||
|
||||
server.start()
|
||||
log("server", "WS-сервер запущен на ${PhoneConfig.SERVER_PORT}")
|
||||
DebugHttpServer.start(this)
|
||||
nsd.publish()
|
||||
server.hub.sttFactory = { ensureStt() }
|
||||
scope.launch { assistantLoop() }
|
||||
|
||||
Reference in New Issue
Block a user