This commit is contained in:
2026-03-17 10:50:13 +09:00
parent 44e14dd207
commit 1eb89bcc3f
49 changed files with 207 additions and 81 deletions
@@ -1,9 +1,8 @@
package service
import AutoTradeItem
import TradingDecision
import network.TradingDecision
import TradingLogStore
import androidx.compose.runtime.remember
import getLlamaBinPath
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -27,11 +26,11 @@ import model.RankingStock
import model.RankingType
import model.UnifiedBalance
import network.DartCodeManager
import network.FinancialMapper
import network.FinancialStatement
import network.KisAuthService
import network.KisTradeService
import network.KisWebSocketManager
import network.RagService
import network.StockUniverseLoader
import util.MarketUtil
import java.time.LocalDateTime
@@ -2,13 +2,9 @@ package service
import com.microsoft.playwright.Browser
import com.microsoft.playwright.Playwright
import com.microsoft.playwright.BrowserType
import com.microsoft.playwright.Page
import com.microsoft.playwright.options.LoadState
import com.microsoft.playwright.options.WaitUntilState
import kotlinx.coroutines.TimeoutCancellationException
import kotlinx.coroutines.async
import kotlinx.coroutines.awaitAll
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.sync.Mutex
@@ -18,6 +14,7 @@ import kotlinx.coroutines.sync.withPermit
import kotlinx.coroutines.withTimeout
import model.NewsItem
import network.CorpInfo
import network.RagService
import java.net.URL
import kotlin.random.Random
@@ -4,6 +4,7 @@ import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.launch
import network.RagService
import java.io.BufferedReader
import java.io.File
import java.io.InputStreamReader
@@ -31,7 +32,7 @@ object LlamaServerManager {
else -> 0 to 4 // 인텔 맥 2017 등
}
val command = listOf(
val command = mutableListOf(
binPath,
"-m", modelPath,
"--port", port.toString(),
@@ -40,7 +41,13 @@ object LlamaServerManager {
"-t", threads.toString(),
"--embedding"
)
if (port != 8081) { // 텍스트 생성용 모델에만 적용
command.addAll(listOf(
"-b", "512", // Batch size (토큰 병렬 처리량 제한으로 연산 안정화)
"--threads-batch", threads.toString(),
"-fa","on" // Flash Attention 활성화 (메모리 절약 및 긴 컨텍스트 연산 안정성 증가)
))
}
scope.launch {
try {
val pb = ProcessBuilder(command)
@@ -59,18 +59,25 @@ object SystemSleepPreventer {
* 맥의 절전 모드 및 디스플레이 취침을 방지하는 명령 실행
*/
fun start() {
val os = System.getProperty("os.name").lowercase()
val arch = System.getProperty("os.arch").lowercase()
val isWin = os.contains("win")
val root = LoggerFactory.getLogger("Exposed") as Logger
root.level = Level.ERROR
checkAndRequestAccessibility()
if (process?.isAlive == true) return
if (!isWin) {
checkAndRequestAccessibility()
}
try {
// -i: 시스템 절전 방지, -d: 디스플레이 취침 방지, -m: 디스크 유휴 상태 방지
val command = listOf("caffeinate", "-i", "-d", "-m")
process = ProcessBuilder(command).start()
println("☕ [System] caffeinate 실행됨: 앱이 켜져 있는 동안 절전 모드가 방지됩니다.")
} catch (e: Exception) {
println("⚠️ [System] caffeinate 실행 실패: ${e.message}")
if (process?.isAlive == true) return
if (!isWin) {
try {
// -i: 시스템 절전 방지, -d: 디스플레이 취침 방지, -m: 디스크 유휴 상태 방지
val command = listOf("caffeinate", "-i", "-d", "-m")
process = ProcessBuilder(command).start()
println(" [System] caffeinate 실행됨: 앱이 켜져 있는 동안 절전 모드가 방지됩니다.")
} catch (e: Exception) {
println("⚠️ [System] caffeinate 실행 실패: ${e.message}")
}
}
}