| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- package common
- import (
- "flag"
- "fmt"
- "log"
- "os"
- "path/filepath"
- "strconv"
- "time"
- )
- var (
- Port = flag.Int("port", 3000, "the listening port")
- PrintVersion = flag.Bool("version", false, "print version and exit")
- PrintHelp = flag.Bool("help", false, "print help and exit")
- LogDir = flag.String("log-dir", "./logs", "specify the log directory")
- )
- func printHelp() {
- fmt.Println("New API " + Version + " - All in one API service for OpenAI API.")
- fmt.Println("Copyright (C) 2023 JustSong. All rights reserved.")
- fmt.Println("GitHub: https://github.com/songquanpeng/one-api")
- fmt.Println("Usage: one-api [--port <port>] [--log-dir <log directory>] [--version] [--help]")
- }
- func LoadEnv() {
- flag.Parse()
- if *PrintVersion {
- fmt.Println(Version)
- os.Exit(0)
- }
- if *PrintHelp {
- printHelp()
- os.Exit(0)
- }
- if os.Getenv("SESSION_SECRET") != "" {
- ss := os.Getenv("SESSION_SECRET")
- if ss == "random_string" {
- log.Println("WARNING: SESSION_SECRET is set to the default value 'random_string', please change it to a random string.")
- log.Println("警告:SESSION_SECRET被设置为默认值'random_string',请修改为随机字符串。")
- log.Fatal("Please set SESSION_SECRET to a random string.")
- } else {
- SessionSecret = ss
- }
- }
- if os.Getenv("CRYPTO_SECRET") != "" {
- CryptoSecret = os.Getenv("CRYPTO_SECRET")
- } else {
- CryptoSecret = SessionSecret
- }
- if os.Getenv("SQLITE_PATH") != "" {
- SQLitePath = os.Getenv("SQLITE_PATH")
- }
- if *LogDir != "" {
- var err error
- *LogDir, err = filepath.Abs(*LogDir)
- if err != nil {
- log.Fatal(err)
- }
- if _, err := os.Stat(*LogDir); os.IsNotExist(err) {
- err = os.Mkdir(*LogDir, 0777)
- if err != nil {
- log.Fatal(err)
- }
- }
- }
- // Initialize variables from constants.go that were using environment variables
- DebugEnabled = os.Getenv("DEBUG") == "true"
- MemoryCacheEnabled = os.Getenv("MEMORY_CACHE_ENABLED") == "true"
- IsMasterNode = os.Getenv("NODE_TYPE") != "slave"
- // Parse requestInterval and set RequestInterval
- requestInterval, _ = strconv.Atoi(os.Getenv("POLLING_INTERVAL"))
- RequestInterval = time.Duration(requestInterval) * time.Second
- // Initialize variables with GetEnvOrDefault
- SyncFrequency = GetEnvOrDefault("SYNC_FREQUENCY", 60)
- BatchUpdateInterval = GetEnvOrDefault("BATCH_UPDATE_INTERVAL", 5)
- RelayTimeout = GetEnvOrDefault("RELAY_TIMEOUT", 0)
- // Initialize string variables with GetEnvOrDefaultString
- GeminiSafetySetting = GetEnvOrDefaultString("GEMINI_SAFETY_SETTING", "BLOCK_NONE")
- CohereSafetySetting = GetEnvOrDefaultString("COHERE_SAFETY_SETTING", "NONE")
- // Initialize rate limit variables
- GlobalApiRateLimitEnable = GetEnvOrDefaultBool("GLOBAL_API_RATE_LIMIT_ENABLE", true)
- GlobalApiRateLimitNum = GetEnvOrDefault("GLOBAL_API_RATE_LIMIT", 180)
- GlobalApiRateLimitDuration = int64(GetEnvOrDefault("GLOBAL_API_RATE_LIMIT_DURATION", 180))
- GlobalWebRateLimitEnable = GetEnvOrDefaultBool("GLOBAL_WEB_RATE_LIMIT_ENABLE", true)
- GlobalWebRateLimitNum = GetEnvOrDefault("GLOBAL_WEB_RATE_LIMIT", 60)
- GlobalWebRateLimitDuration = int64(GetEnvOrDefault("GLOBAL_WEB_RATE_LIMIT_DURATION", 180))
- }
|