...
This commit is contained in:
parent
535989b8ae
commit
b6689f4e1a
@ -49,6 +49,28 @@ import ui.SettingsScreen
|
||||
// 화면 상태 정의
|
||||
enum class AppScreen { Settings, Dashboard }
|
||||
|
||||
|
||||
fun getLlamaBinPath(): String {
|
||||
val os = System.getProperty("os.name").lowercase()
|
||||
val arch = System.getProperty("os.arch").lowercase()
|
||||
val basePath = "./src/main/resources/bin"
|
||||
|
||||
return when {
|
||||
// Apple Silicon (M1/M2/M3)
|
||||
os.contains("mac") && (arch.contains("aarch64") || arch.contains("arm64")) -> {
|
||||
"$basePath/mac-arm64/llama-server"
|
||||
}
|
||||
// Intel Mac (2017)
|
||||
os.contains("mac") -> {
|
||||
"$basePath/mac-x64/llama-server"
|
||||
}
|
||||
// Windows NUC
|
||||
os.contains("win") -> {
|
||||
"$basePath/win-x64/llama-server.exe"
|
||||
}
|
||||
else -> "$basePath/llama-server"
|
||||
}
|
||||
}
|
||||
fun main() = application {
|
||||
SystemSleepPreventer.start()
|
||||
|
||||
@ -69,7 +91,7 @@ fun main() = application {
|
||||
})
|
||||
}
|
||||
// 앱 실행 시 필요한 바이너리 경로 (실행 파일 위치)
|
||||
val binPath = "./src/main/resources/bin/llama-server"
|
||||
val binPath = getLlamaBinPath()
|
||||
val windowState = rememberWindowState(
|
||||
placement = WindowPlacement.Maximized
|
||||
)
|
||||
|
||||
@ -22,17 +22,35 @@ object LlamaServerManager {
|
||||
fun startServer(binPath: String, modelPath: String, port: Int, nGpuLayers: Int = 99) {
|
||||
// 이미 해당 포트에서 실행 중이거나 모델 경로가 비었으면 무시합니다.
|
||||
if (processes.containsKey(port) || modelPath.isBlank()) return
|
||||
val os = System.getProperty("os.name").lowercase()
|
||||
val arch = System.getProperty("os.arch").lowercase()
|
||||
val (nGpuLayers, threads) = when {
|
||||
// M3 맥: 통합 메모리 활용 최적 (99레이어, 성능코어 위주 8스레드)
|
||||
os.contains("mac") && (arch.contains("arm64") || arch.contains("aarch64")) -> {
|
||||
99 to 8
|
||||
}
|
||||
// 윈도우 NUC: Core Ultra 7은 코어가 많으므로 스레드 상향 (OpenVINO 사용 시 nGpu 조정 가능)
|
||||
os.contains("win") -> {
|
||||
// NUC 15 Pro (Core Ultra 7 155H)는 16코어 22스레드이므로 12~14 권장
|
||||
40 to 12
|
||||
}
|
||||
// 인텔 맥 2017: 16GB 램 한계로 인해 CPU 위주 설정 권장
|
||||
else -> {
|
||||
0 to 4 // 쿼드코어 모델일 가능성이 높음
|
||||
}
|
||||
}
|
||||
|
||||
val command = listOf(
|
||||
binPath,
|
||||
"-m", modelPath,
|
||||
"--port", port.toString(),
|
||||
"-c", if (port == 8081) "512" else "8192", // 임베딩용은 컨텍스트가 짧아도 충분합니다.
|
||||
"-c", if (port == 8081) "512" else "8192",
|
||||
"-ngl", nGpuLayers.toString(),
|
||||
"-t", "8", // M3 Pro의 성능 코어를 고려하여 6~8개 권장
|
||||
"--embedding" // 임베딩 기능을 활성화합니다.
|
||||
"-t", threads.toString(),
|
||||
"--embedding"
|
||||
)
|
||||
|
||||
|
||||
scope.launch {
|
||||
try {
|
||||
val pb = ProcessBuilder(command)
|
||||
|
||||
21
src/main/resources/bin/mac-x64/LICENSE
Normal file
21
src/main/resources/bin/mac-x64/LICENSE
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2023-2026 The ggml authors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
1
src/main/resources/bin/mac-x64/libggml-base 2.dylib
Symbolic link
1
src/main/resources/bin/mac-x64/libggml-base 2.dylib
Symbolic link
@ -0,0 +1 @@
|
||||
libggml-base.0.dylib
|
||||
1
src/main/resources/bin/mac-x64/libggml-base.0 2.dylib
Symbolic link
1
src/main/resources/bin/mac-x64/libggml-base.0 2.dylib
Symbolic link
@ -0,0 +1 @@
|
||||
libggml-base.0.9.7.dylib
|
||||
BIN
src/main/resources/bin/mac-x64/libggml-base.0.9.7.dylib
Executable file
BIN
src/main/resources/bin/mac-x64/libggml-base.0.9.7.dylib
Executable file
Binary file not shown.
1
src/main/resources/bin/mac-x64/libggml-base.0.dylib
Symbolic link
1
src/main/resources/bin/mac-x64/libggml-base.0.dylib
Symbolic link
@ -0,0 +1 @@
|
||||
libggml-base.0.9.7.dylib
|
||||
1
src/main/resources/bin/mac-x64/libggml-base.dylib
Symbolic link
1
src/main/resources/bin/mac-x64/libggml-base.dylib
Symbolic link
@ -0,0 +1 @@
|
||||
libggml-base.0.dylib
|
||||
BIN
src/main/resources/bin/mac-x64/libggml-blas.0.9.7.dylib
Executable file
BIN
src/main/resources/bin/mac-x64/libggml-blas.0.9.7.dylib
Executable file
Binary file not shown.
1
src/main/resources/bin/mac-x64/libggml-blas.0.dylib
Symbolic link
1
src/main/resources/bin/mac-x64/libggml-blas.0.dylib
Symbolic link
@ -0,0 +1 @@
|
||||
libggml-blas.0.9.7.dylib
|
||||
1
src/main/resources/bin/mac-x64/libggml-blas.dylib
Symbolic link
1
src/main/resources/bin/mac-x64/libggml-blas.dylib
Symbolic link
@ -0,0 +1 @@
|
||||
libggml-blas.0.dylib
|
||||
BIN
src/main/resources/bin/mac-x64/libggml-cpu.0.9.7.dylib
Executable file
BIN
src/main/resources/bin/mac-x64/libggml-cpu.0.9.7.dylib
Executable file
Binary file not shown.
1
src/main/resources/bin/mac-x64/libggml-cpu.0.dylib
Symbolic link
1
src/main/resources/bin/mac-x64/libggml-cpu.0.dylib
Symbolic link
@ -0,0 +1 @@
|
||||
libggml-cpu.0.9.7.dylib
|
||||
1
src/main/resources/bin/mac-x64/libggml-cpu.dylib
Symbolic link
1
src/main/resources/bin/mac-x64/libggml-cpu.dylib
Symbolic link
@ -0,0 +1 @@
|
||||
libggml-cpu.0.dylib
|
||||
BIN
src/main/resources/bin/mac-x64/libggml-rpc.0.9.7.dylib
Executable file
BIN
src/main/resources/bin/mac-x64/libggml-rpc.0.9.7.dylib
Executable file
Binary file not shown.
1
src/main/resources/bin/mac-x64/libggml-rpc.0.dylib
Symbolic link
1
src/main/resources/bin/mac-x64/libggml-rpc.0.dylib
Symbolic link
@ -0,0 +1 @@
|
||||
libggml-rpc.0.9.7.dylib
|
||||
1
src/main/resources/bin/mac-x64/libggml-rpc.dylib
Symbolic link
1
src/main/resources/bin/mac-x64/libggml-rpc.dylib
Symbolic link
@ -0,0 +1 @@
|
||||
libggml-rpc.0.dylib
|
||||
BIN
src/main/resources/bin/mac-x64/libggml.0.9.7.dylib
Executable file
BIN
src/main/resources/bin/mac-x64/libggml.0.9.7.dylib
Executable file
Binary file not shown.
1
src/main/resources/bin/mac-x64/libggml.0.dylib
Symbolic link
1
src/main/resources/bin/mac-x64/libggml.0.dylib
Symbolic link
@ -0,0 +1 @@
|
||||
libggml.0.9.7.dylib
|
||||
1
src/main/resources/bin/mac-x64/libggml.dylib
Symbolic link
1
src/main/resources/bin/mac-x64/libggml.dylib
Symbolic link
@ -0,0 +1 @@
|
||||
libggml.0.dylib
|
||||
BIN
src/main/resources/bin/mac-x64/libllama.0.0.8095.dylib
Executable file
BIN
src/main/resources/bin/mac-x64/libllama.0.0.8095.dylib
Executable file
Binary file not shown.
1
src/main/resources/bin/mac-x64/libllama.0.dylib
Symbolic link
1
src/main/resources/bin/mac-x64/libllama.0.dylib
Symbolic link
@ -0,0 +1 @@
|
||||
libllama.0.0.8095.dylib
|
||||
1
src/main/resources/bin/mac-x64/libllama.dylib
Symbolic link
1
src/main/resources/bin/mac-x64/libllama.dylib
Symbolic link
@ -0,0 +1 @@
|
||||
libllama.0.dylib
|
||||
BIN
src/main/resources/bin/mac-x64/libmtmd.0.0.8095.dylib
Executable file
BIN
src/main/resources/bin/mac-x64/libmtmd.0.0.8095.dylib
Executable file
Binary file not shown.
1
src/main/resources/bin/mac-x64/libmtmd.0.dylib
Symbolic link
1
src/main/resources/bin/mac-x64/libmtmd.0.dylib
Symbolic link
@ -0,0 +1 @@
|
||||
libmtmd.0.0.8095.dylib
|
||||
1
src/main/resources/bin/mac-x64/libmtmd.dylib
Symbolic link
1
src/main/resources/bin/mac-x64/libmtmd.dylib
Symbolic link
@ -0,0 +1 @@
|
||||
libmtmd.0.dylib
|
||||
BIN
src/main/resources/bin/mac-x64/llama-batched
Executable file
BIN
src/main/resources/bin/mac-x64/llama-batched
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-batched-bench
Executable file
BIN
src/main/resources/bin/mac-x64/llama-batched-bench
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-bench
Executable file
BIN
src/main/resources/bin/mac-x64/llama-bench
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-cli
Executable file
BIN
src/main/resources/bin/mac-x64/llama-cli
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-completion
Executable file
BIN
src/main/resources/bin/mac-x64/llama-completion
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-convert-llama2c-to-ggml
Executable file
BIN
src/main/resources/bin/mac-x64/llama-convert-llama2c-to-ggml
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-cvector-generator
Executable file
BIN
src/main/resources/bin/mac-x64/llama-cvector-generator
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-debug
Executable file
BIN
src/main/resources/bin/mac-x64/llama-debug
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-diffusion-cli
Executable file
BIN
src/main/resources/bin/mac-x64/llama-diffusion-cli
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-embedding
Executable file
BIN
src/main/resources/bin/mac-x64/llama-embedding
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-eval-callback
Executable file
BIN
src/main/resources/bin/mac-x64/llama-eval-callback
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-export-lora
Executable file
BIN
src/main/resources/bin/mac-x64/llama-export-lora
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-finetune
Executable file
BIN
src/main/resources/bin/mac-x64/llama-finetune
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-fit-params
Executable file
BIN
src/main/resources/bin/mac-x64/llama-fit-params
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-gemma3-cli
Executable file
BIN
src/main/resources/bin/mac-x64/llama-gemma3-cli
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-gen-docs
Executable file
BIN
src/main/resources/bin/mac-x64/llama-gen-docs
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-gguf
Executable file
BIN
src/main/resources/bin/mac-x64/llama-gguf
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-gguf-hash
Executable file
BIN
src/main/resources/bin/mac-x64/llama-gguf-hash
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-gguf-split
Executable file
BIN
src/main/resources/bin/mac-x64/llama-gguf-split
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-idle
Executable file
BIN
src/main/resources/bin/mac-x64/llama-idle
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-imatrix
Executable file
BIN
src/main/resources/bin/mac-x64/llama-imatrix
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-llava-cli
Executable file
BIN
src/main/resources/bin/mac-x64/llama-llava-cli
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-lookahead
Executable file
BIN
src/main/resources/bin/mac-x64/llama-lookahead
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-lookup
Executable file
BIN
src/main/resources/bin/mac-x64/llama-lookup
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-lookup-create
Executable file
BIN
src/main/resources/bin/mac-x64/llama-lookup-create
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-lookup-merge
Executable file
BIN
src/main/resources/bin/mac-x64/llama-lookup-merge
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-lookup-stats
Executable file
BIN
src/main/resources/bin/mac-x64/llama-lookup-stats
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-minicpmv-cli
Executable file
BIN
src/main/resources/bin/mac-x64/llama-minicpmv-cli
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-mtmd-cli
Executable file
BIN
src/main/resources/bin/mac-x64/llama-mtmd-cli
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-parallel
Executable file
BIN
src/main/resources/bin/mac-x64/llama-parallel
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-passkey
Executable file
BIN
src/main/resources/bin/mac-x64/llama-passkey
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-perplexity
Executable file
BIN
src/main/resources/bin/mac-x64/llama-perplexity
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-q8dot
Executable file
BIN
src/main/resources/bin/mac-x64/llama-q8dot
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-quantize
Executable file
BIN
src/main/resources/bin/mac-x64/llama-quantize
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-qwen2vl-cli
Executable file
BIN
src/main/resources/bin/mac-x64/llama-qwen2vl-cli
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-retrieval
Executable file
BIN
src/main/resources/bin/mac-x64/llama-retrieval
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-save-load-state
Executable file
BIN
src/main/resources/bin/mac-x64/llama-save-load-state
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-server
Executable file
BIN
src/main/resources/bin/mac-x64/llama-server
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-simple
Executable file
BIN
src/main/resources/bin/mac-x64/llama-simple
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-simple-chat
Executable file
BIN
src/main/resources/bin/mac-x64/llama-simple-chat
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-speculative
Executable file
BIN
src/main/resources/bin/mac-x64/llama-speculative
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-speculative-simple
Executable file
BIN
src/main/resources/bin/mac-x64/llama-speculative-simple
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-tokenize
Executable file
BIN
src/main/resources/bin/mac-x64/llama-tokenize
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-tts
Executable file
BIN
src/main/resources/bin/mac-x64/llama-tts
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/llama-vdot
Executable file
BIN
src/main/resources/bin/mac-x64/llama-vdot
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/rpc-server
Executable file
BIN
src/main/resources/bin/mac-x64/rpc-server
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/test-alloc
Executable file
BIN
src/main/resources/bin/mac-x64/test-alloc
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/test-arg-parser
Executable file
BIN
src/main/resources/bin/mac-x64/test-arg-parser
Executable file
Binary file not shown.
BIN
src/main/resources/bin/mac-x64/test-autorelease
Executable file
BIN
src/main/resources/bin/mac-x64/test-autorelease
Executable file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user