AIConfiguration.swift 971 B

123456789101112131415161718192021222324252627282930
  1. import Foundation
  2. enum AIConfiguration {
  3. private static let apiKeyDefaultsKey = "openai_api_key"
  4. static var apiKey: String? {
  5. if let envKey = ProcessInfo.processInfo.environment["OPENAI_API_KEY"],
  6. !envKey.trimmingCharacters(in: .whitespaces).isEmpty {
  7. return envKey.trimmingCharacters(in: .whitespaces)
  8. }
  9. let stored = UserDefaults.standard.string(forKey: apiKeyDefaultsKey)?
  10. .trimmingCharacters(in: .whitespaces)
  11. guard let stored, !stored.isEmpty else { return nil }
  12. return stored
  13. }
  14. static var usesLiveAI: Bool {
  15. apiKey != nil
  16. }
  17. static func setAPIKey(_ key: String?) {
  18. let trimmed = key?.trimmingCharacters(in: .whitespaces)
  19. if let trimmed, !trimmed.isEmpty {
  20. UserDefaults.standard.set(trimmed, forKey: apiKeyDefaultsKey)
  21. } else {
  22. UserDefaults.standard.removeObject(forKey: apiKeyDefaultsKey)
  23. }
  24. }
  25. }