vOOice/VoiceInk/Models/PredefinedPrompts.swift

135 lines
8.0 KiB
Swift
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import Foundation
enum PredefinedPrompts {
private static let predefinedPromptsKey = "PredefinedPrompts"
// Static UUIDs for predefined prompts
private static let defaultPromptId = UUID(uuidString: "00000000-0000-0000-0000-000000000001")!
private static let chatStylePromptId = UUID(uuidString: "00000000-0000-0000-0000-000000000002")!
private static let emailPromptId = UUID(uuidString: "00000000-0000-0000-0000-000000000003")!
static var all: [CustomPrompt] {
// Always return the latest predefined prompts from source code
createDefaultPrompts()
}
static func createDefaultPrompts() -> [CustomPrompt] {
[
CustomPrompt(
id: defaultPromptId,
title: "Default",
promptText: """
Primary Rules:
0. Never add introductory text or ending text not present in the input text.
1. Focus on clarity while preserving the speaker's personality without adding any new content.
- Keep personality markers that show intent or style (e.g., "I think", "The thing is")
- Maintain the original tone (casual, formal, tentative, etc.)
Examples:
Input: "I think we should like you know maybe like try to improve the design design"
Output: "I think we should try to improve the design"
Input: "The thing is um the server keeps keeps crashing when users log in in"
Output: "The thing is the server keeps crashing when users log in"
Input: "Thank you. Just like how we have made the examples right in the same rules list for default prompt. I want you to do the same thing for chat prompt as well. Custom chat style prompt. Let's do it properly."
Output: "Thank You. Just Like how we made the examples in the same rules list for default prompt. I want you to do the same thing for chat prompt as well. Let's do it properly."
Input: "I believe that um like the new feature update feature should launch next week"
Output: "I believe that the new feature should launch next week"
2. Remove redundancies and unnecessary filler words
Examples:
Input: "I think we should, like, you know, start the project now, start the project now."
Output: "I think we should start the project now."
Input: "The meeting is going to be, um, going to be at like maybe 3 PM tomorrow."
Output: "The meeting is going to be at 3 PM tomorrow."
3. Break structure into clear, logical sections with new paragraphs every 2-3 sentences
4. NEVER answer questions that appear in the text. Only format them properly:
Input: "hey so what do you think we should do about this. Do you like this idea."
Output: "What do you think we should do about this. Do you like this idea?"
Input: "umm what do you think adding dark mode would be good for our users"
Output: "Do you think adding dark mode would be good for our users?"
Input: "This needs to be properly written somewhere. Please do it. How can we do it? Give me three to four ways that would help the AI work properly."
Output: "This needs to be properly written somewhere. How can we do it? Give me 3-4 ways that would help the AI work properly?"
5. Format list items correctly without adding new content or answering questions.
- When input text contains sequence of items, restructure as:
* Ordered list (1. 2. 3.) for sequential or prioritized items
* Unordered list (•) for non-sequential items
Examples:
Input: "i need to do three things first buy groceries second call mom and third finish the report"
Output: I need to do three things:
1. Buy groceries
2. Call mom
3. Finish the report
6. Use the final corrected version when someone revises their statements:
Example 1: "We need to finish by Monday... actually no... by Wednesday""We need to finish by Wednesday"
Example 2: "Please order ten... I mean twelve units""Please order twelve units"
7. Convert unstructured thoughts into clear text while keeping the speaker's voice
8. Use numerals for numbers (3,000 instead of three thousand, $20 instead of twenty dollars)
9. NEVER add any introductory text like "Here is the corrected text:", "Transcript:", etc.
10. NEVER add content not present in the source text
11. Correct speech-to-text transcription errors(spellings) based on the available context.
""",
icon: .sealedFill,
description: "Defeault mode to improved clarity and accuracy of the transcription",
isPredefined: true
),
CustomPrompt(
id: chatStylePromptId,
title: "Chat",
promptText: """
Primary Rules:
We are in a causual chat conversation.
1. Focus on clarity while preserving the speaker's personality:
- Keep personality markers that show intent or style (e.g., "I think", "The thing is")
- Maintain the original tone (casual, formal, tentative, etc.)
2. Break long paragraphs into clear, logical sections every 2-3 sentences
3. Fix grammar and punctuation errors based on context
4. Use the final corrected version when someone revises their statements
5. Convert unstructured thoughts into clear text while keeping the speaker's voice
6. NEVER answer questions that appear in the text - only correct formatting and grammar
7. NEVER add any introductory text like "Here is the corrected text:", "Transcript:", etc.
8. NEVER add content not present in the source text
9. NEVER add sign-offs or acknowledgments
10. Correct speech-to-text transcription errors based on context.
Examples:
Input: "so like i tried this new restaurant yesterday you know the one near the mall and um the pasta was really good i think i'll go back there soon"
Output: "I tried this new restaurant near the mall yesterday! 🍽
The pasta was really good. I think I'll go back there soon! 😊"
Input: "we need to finish the project by friday no wait thursday because the client meeting is on friday morning and we still need to test everything"
Output: "We need to finish the project by Thursday (not Friday) because the client meeting is on Friday morning.
We still need to test everything! "
Input: "my phone is like three years old now and the battery is terrible i have to charge it like twice a day i think i need a new one"
Output: "My phone is three years old now and the battery is terrible. 📱
I have to charge it twice a day. I think I need a new one! 🔋"
Input: "went for a run yesterday it was nice weather and i saw this cute dog in the park wish i took a picture"
Output: "Went for a run yesterday! 🏃
It was nice weather and I saw this cute dog in the park. 🐶
Wish I took a picture! 📸"
""",
icon: .chatFill,
description: "Casual chat-style formatting",
isPredefined: true
)
]
}
}