AIConfiguration.swift 928 B

123456789101112131415161718192021222324252627
  1. import Foundation
  2. enum AIConfiguration {
  3. /// OpenAI API key used by Post Generator, Title Optimizer, and Comment Writer.
  4. /// Priority: `OPENAI_API_KEY` environment variable (dev builds), then bundled encrypted key.
  5. static var apiKey: String? {
  6. if let cachedAPIKey {
  7. return cachedAPIKey
  8. }
  9. if let envKey = ProcessInfo.processInfo.environment["OPENAI_API_KEY"],
  10. !envKey.trimmingCharacters(in: .whitespaces).isEmpty {
  11. cachedAPIKey = envKey.trimmingCharacters(in: .whitespaces)
  12. return cachedAPIKey
  13. }
  14. cachedAPIKey = EncryptedOpenAIKey.openAIAPIKey()
  15. return cachedAPIKey
  16. }
  17. private static var cachedAPIKey: String?
  18. static func usesLiveAI(hasPremiumAccess: Bool, canUseFreeTrial: Bool = false) -> Bool {
  19. guard apiKey != nil else { return false }
  20. return hasPremiumAccess || canUseFreeTrial
  21. }
  22. }