vOOice/VoiceInk/Models/PromptTemplates.swift
2025-10-31 15:13:49 +05:45

104 lines
6.1 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import Foundation
struct TemplatePrompt: Identifiable {
let id: UUID
let title: String
let promptText: String
let icon: PromptIcon
let description: String
func toCustomPrompt() -> CustomPrompt {
CustomPrompt(
id: UUID(), // Generate new UUID for custom prompt
title: title,
promptText: promptText,
icon: icon,
description: description,
isPredefined: false
)
}
}
enum PromptTemplates {
static var all: [TemplatePrompt] {
createTemplatePrompts()
}
static func createTemplatePrompts() -> [TemplatePrompt] {
[
TemplatePrompt(
id: UUID(),
title: "System Default",
promptText: """
- Clean up the <TRANSCRIPT> text for clarity and natural flow while preserving meaning and the original tone.
- Use informal, plain language unless the <TRANSCRIPT> clearly uses a professional tone; in that case, match it.
- Fix obvious grammar, remove fillers and stutters, collapse repetitions, and keep names and numbers.
- Automatically detect and format lists properly: if the <TRANSCRIPT> mentions a number (e.g., "3 things", "5 items"), uses ordinal words (first, second, third), implies sequence or steps, or has a count before it, format as an ordered list; otherwise, format as an unordered list.
- Write numbers as numerals (e.g., 'five' → '5', 'twenty dollars' → '$20').
- Keep the original intent and nuance.
- Organize into short paragraphs of 24 sentences for readability.
- Do not add explanations, labels, metadata, or instructions.
- Output only the cleaned text.
- Don't add any information not available in the <TRANSCRIPT> text ever.
""",
icon: "checkmark.seal.fill",
description: "Default system prompt"
),
TemplatePrompt(
id: UUID(),
title: "Chat",
promptText: """
- Rewrite the <TRANSCRIPT> text as a chat message: informal, concise, and conversational.
- Keep emotive markers and emojis if present; don't invent new ones.
- Lightly fix grammar, remove fillers and repeated words, and improve flow without changing meaning.
- Keep the original tone; only be professional if the <TRANSCRIPT> already is.
- Automatically detect and format lists properly: if the <TRANSCRIPT> mentions a number (e.g., "3 things", "5 items"), uses ordinal words (first, second, third), implies sequence or steps, or has a count before it, format as an ordered list; otherwise, format as an unordered list.
- Write numbers as numerals (e.g., 'five' → '5', 'twenty dollars' → '$20').
- Format like a modern chat message - short lines, natural breaks, emoji-friendly.
- Do not add greetings, sign-offs, or commentary.
- Output only the chat message.
- Don't add any information not available in the <TRANSCRIPT> text ever.
""",
icon: "bubble.left.and.bubble.right.fill",
description: "Casual chat-style formatting"
),
TemplatePrompt(
id: UUID(),
title: "Email",
promptText: """
- Rewrite the <TRANSCRIPT> text as a complete email with proper formatting: include a greeting (Hi), body paragraphs (2-4 sentences each), and closing (Thanks).
- Use clear, friendly, non-formal language unless the <TRANSCRIPT> is clearly professional—in that case, match that tone.
- Improve flow and coherence; fix grammar and spelling; remove fillers; keep all facts, names, dates, and action items.
- Automatically detect and format lists properly: if the <TRANSCRIPT> mentions a number (e.g., "3 things", "5 items"), uses ordinal words (first, second, third), implies sequence or steps, or has a count before it, format as an ordered list; otherwise, format as an unordered list.
- Write numbers as numerals (e.g., 'five' → '5', 'twenty dollars' → '$20').
- Do not invent new content, but structure it as a proper email format.
- Don't add any information not available in the <TRANSCRIPT> text ever.
""",
icon: "envelope.fill",
description: "Professional email formatting"
),
TemplatePrompt(
id: UUID(),
title: "Rewrite",
promptText: """
- Rewrite the <TRANSCRIPT> text with enhanced clarity, improved sentence structure, and rhythmic flow while preserving the original meaning and tone.
- Restructure sentences for better readability and natural progression.
- Improve word choice and phrasing where appropriate, but maintain the original voice and intent.
- Fix grammar and spelling errors, remove fillers and stutters, and collapse repetitions.
- Format any lists as proper bullet points or numbered lists.
- Write numbers as numerals (e.g., 'five' → '5', 'twenty dollars' → '$20').
- Organize content into well-structured paragraphs of 24 sentences for optimal readability.
- Preserve all names, numbers, dates, facts, and key information exactly as they appear.
- Do not add explanations, labels, metadata, or instructions.
- Output only the rewritten text.
- Don't add any information not available in the <TRANSCRIPT> text ever.
""",
icon: "pencil.circle.fill",
description: "Rewrites with better clarity."
)
]
}
}