feat: improved template-based system prompt

This commit is contained in:
Owen Gretzinger
2025-07-11 15:39:26 -04:00
parent 19d7ae340b
commit d3d42dabee
5 changed files with 171 additions and 18 deletions
+1 -3
View File
@@ -118,10 +118,8 @@ class MeetingViewModel: ObservableObject {
let userBlurb = KeychainHelper.shared.get(forKey: "userBlurb") ?? ""
let systemPrompt = KeychainHelper.shared.get(forKey: "systemPrompt") ?? Settings.defaultSystemPrompt
// Generate notes
meeting.generatedNotes = try await NotesGenerator.shared.generateNotes(
transcript: meeting.transcript,
userNotes: meeting.userNotes,
meeting: meeting,
userBlurb: userBlurb,
systemPrompt: systemPrompt
)
@@ -26,6 +26,15 @@ class SettingsViewModel: ObservableObject {
errorMessage = nil
saveSuccessful = false
// Validate system prompt template before saving
let validation = settings.validateSystemPrompt()
if !validation.isValid {
let missingVars = validation.missingVariables.joined(separator: ", ")
errorMessage = "System prompt is missing required variables: \(missingVars). Please include these variables in your template using double curly braces (e.g., {{transcript}})."
isSaving = false
return
}
// Save to Keychain
let deepgramSaved = KeychainHelper.shared.save(settings.deepgramKey, forKey: "deepgramKey")
let openAISaved = KeychainHelper.shared.save(settings.openAIKey, forKey: "openAIKey")