feat: actually implement system audio + refactor

This commit is contained in:
Owen Gretzinger
2025-07-10 16:45:19 -04:00
parent 417d751d7a
commit 297bb40b89
21 changed files with 1307 additions and 615 deletions
+59
View File
@@ -0,0 +1,59 @@
// NotesGenerator.swift
// Handles AI-powered note generation using OpenAI
import Foundation
/// Generates meeting notes using OpenAI API
class NotesGenerator {
static let shared = NotesGenerator()
private init() {}
/// Generates meeting notes from transcript and user notes
/// - Parameters:
/// - transcript: The meeting transcript
/// - userNotes: Additional notes from the user
/// - userBlurb: Information about the user for context
/// - systemPrompt: The system prompt for AI generation
/// - Returns: Generated meeting notes
func generateNotes(transcript: String,
userNotes: String,
userBlurb: String,
systemPrompt: String) async throws -> String {
// TODO: Implement OpenAI API integration
// For now, return a placeholder
// Simulate API delay
try await Task.sleep(nanoseconds: 2_000_000_000)
// Placeholder response
return """
# Meeting Notes
## Summary
This is a placeholder for AI-generated meeting notes.
## Key Points
- Transcript length: \(transcript.count) characters
- User notes provided: \(!userNotes.isEmpty)
## Action Items
- Implement OpenAI API integration
- Add proper prompt engineering
## Next Steps
Once OpenAI API is integrated, this will provide comprehensive meeting notes based on the transcript and any additional context provided.
"""
}
/// Validates if OpenAI API key is configured
/// - Returns: True if API key exists, false otherwise
func isConfigured() -> Bool {
guard let key = KeychainHelper.shared.get(forKey: "openAIKey"),
!key.isEmpty else {
return false
}
return true
}
}