mirror of
https://github.com/lordmathis/llamactl.git
synced 2025-11-06 00:54:23 +00:00
Parse backend env vars from env vars
This commit is contained in:
@@ -302,6 +302,12 @@ func loadEnvVars(cfg *AppConfig) {
|
|||||||
if llamaArgs := os.Getenv("LLAMACTL_LLAMACPP_ARGS"); llamaArgs != "" {
|
if llamaArgs := os.Getenv("LLAMACTL_LLAMACPP_ARGS"); llamaArgs != "" {
|
||||||
cfg.Backends.LlamaCpp.Args = strings.Split(llamaArgs, " ")
|
cfg.Backends.LlamaCpp.Args = strings.Split(llamaArgs, " ")
|
||||||
}
|
}
|
||||||
|
if llamaEnv := os.Getenv("LLAMACTL_LLAMACPP_ENV"); llamaEnv != "" {
|
||||||
|
if cfg.Backends.LlamaCpp.Environment == nil {
|
||||||
|
cfg.Backends.LlamaCpp.Environment = make(map[string]string)
|
||||||
|
}
|
||||||
|
parseEnvVars(llamaEnv, cfg.Backends.LlamaCpp.Environment)
|
||||||
|
}
|
||||||
if llamaDockerEnabled := os.Getenv("LLAMACTL_LLAMACPP_DOCKER_ENABLED"); llamaDockerEnabled != "" {
|
if llamaDockerEnabled := os.Getenv("LLAMACTL_LLAMACPP_DOCKER_ENABLED"); llamaDockerEnabled != "" {
|
||||||
if b, err := strconv.ParseBool(llamaDockerEnabled); err == nil {
|
if b, err := strconv.ParseBool(llamaDockerEnabled); err == nil {
|
||||||
if cfg.Backends.LlamaCpp.Docker == nil {
|
if cfg.Backends.LlamaCpp.Docker == nil {
|
||||||
@@ -329,18 +335,22 @@ func loadEnvVars(cfg *AppConfig) {
|
|||||||
if cfg.Backends.LlamaCpp.Docker.Environment == nil {
|
if cfg.Backends.LlamaCpp.Docker.Environment == nil {
|
||||||
cfg.Backends.LlamaCpp.Docker.Environment = make(map[string]string)
|
cfg.Backends.LlamaCpp.Docker.Environment = make(map[string]string)
|
||||||
}
|
}
|
||||||
// Parse env vars in format "KEY1=value1,KEY2=value2"
|
parseEnvVars(llamaDockerEnv, cfg.Backends.LlamaCpp.Docker.Environment)
|
||||||
for _, envPair := range strings.Split(llamaDockerEnv, ",") {
|
|
||||||
if parts := strings.SplitN(strings.TrimSpace(envPair), "=", 2); len(parts) == 2 {
|
|
||||||
cfg.Backends.LlamaCpp.Docker.Environment[parts[0]] = parts[1]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// vLLM backend
|
// vLLM backend
|
||||||
if vllmCmd := os.Getenv("LLAMACTL_VLLM_COMMAND"); vllmCmd != "" {
|
if vllmCmd := os.Getenv("LLAMACTL_VLLM_COMMAND"); vllmCmd != "" {
|
||||||
cfg.Backends.VLLM.Command = vllmCmd
|
cfg.Backends.VLLM.Command = vllmCmd
|
||||||
}
|
}
|
||||||
|
if vllmArgs := os.Getenv("LLAMACTL_VLLM_ARGS"); vllmArgs != "" {
|
||||||
|
cfg.Backends.VLLM.Args = strings.Split(vllmArgs, " ")
|
||||||
|
}
|
||||||
|
if vllmEnv := os.Getenv("LLAMACTL_VLLM_ENV"); vllmEnv != "" {
|
||||||
|
if cfg.Backends.VLLM.Environment == nil {
|
||||||
|
cfg.Backends.VLLM.Environment = make(map[string]string)
|
||||||
|
}
|
||||||
|
parseEnvVars(vllmEnv, cfg.Backends.VLLM.Environment)
|
||||||
|
}
|
||||||
if vllmDockerEnabled := os.Getenv("LLAMACTL_VLLM_DOCKER_ENABLED"); vllmDockerEnabled != "" {
|
if vllmDockerEnabled := os.Getenv("LLAMACTL_VLLM_DOCKER_ENABLED"); vllmDockerEnabled != "" {
|
||||||
if b, err := strconv.ParseBool(vllmDockerEnabled); err == nil {
|
if b, err := strconv.ParseBool(vllmDockerEnabled); err == nil {
|
||||||
if cfg.Backends.VLLM.Docker == nil {
|
if cfg.Backends.VLLM.Docker == nil {
|
||||||
@@ -368,12 +378,7 @@ func loadEnvVars(cfg *AppConfig) {
|
|||||||
if cfg.Backends.VLLM.Docker.Environment == nil {
|
if cfg.Backends.VLLM.Docker.Environment == nil {
|
||||||
cfg.Backends.VLLM.Docker.Environment = make(map[string]string)
|
cfg.Backends.VLLM.Docker.Environment = make(map[string]string)
|
||||||
}
|
}
|
||||||
// Parse env vars in format "KEY1=value1,KEY2=value2"
|
parseEnvVars(vllmDockerEnv, cfg.Backends.VLLM.Docker.Environment)
|
||||||
for _, envPair := range strings.Split(vllmDockerEnv, ",") {
|
|
||||||
if parts := strings.SplitN(strings.TrimSpace(envPair), "=", 2); len(parts) == 2 {
|
|
||||||
cfg.Backends.VLLM.Docker.Environment[parts[0]] = parts[1]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MLX backend
|
// MLX backend
|
||||||
@@ -383,6 +388,12 @@ func loadEnvVars(cfg *AppConfig) {
|
|||||||
if mlxArgs := os.Getenv("LLAMACTL_MLX_ARGS"); mlxArgs != "" {
|
if mlxArgs := os.Getenv("LLAMACTL_MLX_ARGS"); mlxArgs != "" {
|
||||||
cfg.Backends.MLX.Args = strings.Split(mlxArgs, " ")
|
cfg.Backends.MLX.Args = strings.Split(mlxArgs, " ")
|
||||||
}
|
}
|
||||||
|
if mlxEnv := os.Getenv("LLAMACTL_MLX_ENV"); mlxEnv != "" {
|
||||||
|
if cfg.Backends.MLX.Environment == nil {
|
||||||
|
cfg.Backends.MLX.Environment = make(map[string]string)
|
||||||
|
}
|
||||||
|
parseEnvVars(mlxEnv, cfg.Backends.MLX.Environment)
|
||||||
|
}
|
||||||
|
|
||||||
// Instance defaults
|
// Instance defaults
|
||||||
if autoRestart := os.Getenv("LLAMACTL_DEFAULT_AUTO_RESTART"); autoRestart != "" {
|
if autoRestart := os.Getenv("LLAMACTL_DEFAULT_AUTO_RESTART"); autoRestart != "" {
|
||||||
@@ -457,6 +468,19 @@ func ParsePortRange(s string) [2]int {
|
|||||||
return [2]int{0, 0} // Invalid format
|
return [2]int{0, 0} // Invalid format
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// parseEnvVars parses environment variables in format "KEY1=value1,KEY2=value2"
|
||||||
|
// and populates the provided environment map
|
||||||
|
func parseEnvVars(envString string, envMap map[string]string) {
|
||||||
|
if envString == "" {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
for _, envPair := range strings.Split(envString, ",") {
|
||||||
|
if parts := strings.SplitN(strings.TrimSpace(envPair), "=", 2); len(parts) == 2 {
|
||||||
|
envMap[parts[0]] = parts[1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// getDefaultDataDirectory returns platform-specific default data directory
|
// getDefaultDataDirectory returns platform-specific default data directory
|
||||||
func getDefaultDataDirectory() string {
|
func getDefaultDataDirectory() string {
|
||||||
switch runtime.GOOS {
|
switch runtime.GOOS {
|
||||||
|
|||||||
Reference in New Issue
Block a user