package config import ( "log" "os" "strconv" ) // GetAIServerURI ... func GetAIServerURI()string { return getEnvVariable("AI_SERVER_URI") } // GetAIChatServerPort ... func GetAIChatServerPort()string { return getEnvVariable("AI_CHAT_SERVER_PORT") } // GetAIChatModel ... func GetAIChatModel()string { return getEnvVariable("AI_CHAT_MODEL") } // GetAIChatModelFast ... func GetAIChatModelFast()string { return getEnvVariable("AI_CHAT_MODEL_FAST") } // GetAITranscribeServerPort ... func GetAITranscribeServerPort()string { return getEnvVariable("AI_TRANSCRIBE_SERVER_PORT") } // GetAITranscribeModel ... func GetAITranscribeModel()string{ return getEnvVariable("AI_TRANSCRIBE_MODEL") } // GetAIChatImageModel ... func GetAIChatImageModel()string { return getEnvVariable("AI_CHAT_IMAGE") } // GetRateLimitSec // Get the rate limit time amount to limit user request // for example a user can make 1 request each sec "1 req x sec" func GetRateLimitSec()float64{ amntStr := getEnvVariable("RATE_LIMIT_SEC") amnt, err := strconv.ParseFloat(amntStr, 64) if err != nil{ panic(err) } return amnt } // GetRateLimitAmount // Get the rate limit amount of request to limit // for example an user can make 10 request each 10 secs func GetRateLimitAmount()int64{ amntStr := getEnvVariable("RATE_LIMIT_AMOUNT") amnt, err := strconv.ParseInt(amntStr, 10, 64) if err != nil{ panic(err) } return amnt } // GetAdminsList // Get admin list who dont need auth func GetAdminsList()string { return getEnvVariable("ADMINS") } // GetToken // Get telegram auth token func GetToken() string { return getEnvVariable("BOT_TOKEN") } // GetNatsURI // Get nats uri for server connection func GetNatsURI() string { return getEnvVariable("NATS_SERVICE_URL") } // GetUserServiceURL // Get uri for user service control GRPC func GetUserServiceURL() string { return getEnvVariable("TGBUSER_SERVICE_URL") } // GetEnvironment // Get the environment to debug or prod func GetEnvironment() string { return getEnvVariable("ENV") } func getEnvVariable(key string) string { if os.Getenv(key) == "" { log.Fatal("error getting key: ", key) } return os.Getenv(key) }