63 lines
1.7 KiB
Go
63 lines
1.7 KiB
Go
package server
|
|
|
|
import (
|
|
// "log"
|
|
"speakeasy/utils/env"
|
|
"time"
|
|
)
|
|
|
|
var (
|
|
VERSION = "dev"
|
|
BUILD_TIME = time.Now()
|
|
)
|
|
|
|
// ServerConfig is a configuration model for the backend
|
|
type ServerConfig struct {
|
|
PG_HOST string
|
|
PG_USER string
|
|
PG_PASSWORD string
|
|
RABBITMQ_HOST string
|
|
RABBITMQ_USER string
|
|
RABBITMQ_PASSWORD string
|
|
OLLAMA_HOST string
|
|
OLLAMA_MODEL_ACCURACY string
|
|
SERVER_HOST string
|
|
SERVER_PORT int
|
|
CLIENT_HOST string
|
|
CLIENT_PORT int
|
|
VERSION string
|
|
BUILD_TIME time.Time
|
|
}
|
|
|
|
// ModelAccuracy is a configuration option for the Ollama Model Manager
|
|
type ModelAccuracy string
|
|
|
|
const (
|
|
FAST ModelAccuracy = "FAST" // gemma:2b
|
|
BALANCED ModelAccuracy = "BALANCED" // phi3:mini
|
|
ACCURATE ModelAccuracy = "ACCURATE" // llama3.1:8b
|
|
)
|
|
|
|
// CreateNewConfig returns an empty server config
|
|
func CreateNewConfig() ServerConfig {
|
|
return ServerConfig{}
|
|
}
|
|
|
|
// LoadConfig loads config from environment variables
|
|
func (c *ServerConfig) LoadConfig() {
|
|
c.PG_HOST = env.GetString("PG_HOST", "localhost:8888")
|
|
c.PG_USER = env.GetString("PG_USER", "speakeasy")
|
|
c.PG_PASSWORD = env.GetString("PG_PASSWORD", "speakeasy")
|
|
c.RABBITMQ_HOST = env.GetString("RABBITMQ_HOST", "localhost:5672")
|
|
c.RABBITMQ_PASSWORD = env.GetString("RABBITMQ_PASSWORD", "speakeasy")
|
|
c.RABBITMQ_USER = env.GetString("RABBITMQ_USER", "speakeasy")
|
|
c.OLLAMA_HOST = env.GetString("OLLAMA_HOST", "localhost:11434")
|
|
c.OLLAMA_MODEL_ACCURACY = env.GetString("OLLAMA_MODEL_ACCURACY", "BALANCED")
|
|
c.SERVER_HOST = env.GetString("SERVER_HOST", "localhost")
|
|
c.SERVER_PORT = env.GetInt("SERVER_PORT", 3456)
|
|
c.CLIENT_HOST = env.GetString("CLIENT_HOST", "localhost")
|
|
c.CLIENT_PORT = env.GetInt("CLIENT_PORT", 3457)
|
|
c.VERSION = VERSION
|
|
c.BUILD_TIME = BUILD_TIME
|
|
}
|