AIConfiguration.swift 838 B

1234567891011121314151617181920212223242526
  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) -> Bool {
  19. hasPremiumAccess && apiKey != nil
  20. }
  21. }