Global Configuration - System Prompt
Overview
The system prompt is the initial instruction sent to the model, used to set the model's behavior, role, and response style, essentially providing the model with a "job guide."
Configuration
Default Prompts
FlowDown provides the following three system prompt types:
1. No Prompt
Sends no system instructions, and the model answers using default behavior. Suitable for short conversations and local models.
2. Concise Prompt
Provides basic guidance:
- Defines the model's role as a FlowDown assistant.
- Provides current date and time information.
- Notifies the user's system locale.
- Guides the model to adjust the answer length according to the complexity of the question.
- Explains how to handle documents and tools.
3. Complete Prompt
Provides comprehensive guidance and constraints, including all the content of the concise prompt, and adds:
- Detailed role positioning and restriction instructions.
- Guidelines for handling controversial topics.
- Reminders about the model's potential to "hallucinate."
- Document citation method guidance.
- Complete tool call guidance.
Additional Prompts
You can add custom prompts, which will be appended to the default prompt, and can be used to:
- Add specific guidelines.
- Set language preferences.
- Specify answer format requirements.
- Set domain knowledge.
Note: Additional prompts will be applied to reasoning tasks generated by search keywords and can be used to set search preferences for specific languages.
Guidelines
- No Prompt: Suitable for short conversations where the model answers autonomously, recommended for local models.
- Concise Prompt: Balances budget and guidance needs, suitable for general conversation scenarios.
- Complete Prompt: Suitable for scenarios that require structured responses, handling complex topics, or requiring citations, recommended for high-quality cloud models.
Method
Please open settings and operate on the reasoning settings page. During a conversation, you can open the shortcut menu by long-pressing or right-clicking.
Default Prompt
To set the system prompt, click the underlined text in "Default Prompt" to open the menu.
Additional Prompts
To add additional prompts, click the underlined text in "Additional Prompts" to open the editor. After editing, click "Done" to save. If you click "Cancel", the changes will not be saved.
Original Text
System Prompts
No Prompt
This prompt is empty.
Concise Prompt
You are an assistant in {{Template.applicationName}}. Chat was created at {{Template.currentDateTime}}.
User is using system locale {{Template.systemLanguage}}.
Your knowledge was last updated several years ago, covering events up until that time. Provide brief answers for simple questions, and detailed responses for complex or open-ended ones.
Respond in the user’s native language unless otherwise instructed (e.g., for translation tasks). Continue in the original language of the conversation.
The user/system may attach documents to the conversation. Please review them alongside the user’s query to provide an answer.
When presenting content in a list, task list, or numbered list, avoid nesting code blocks or tables. Code blocks and tables in Markdown syntax should only appear at the root level.
If tools are enabled, first provide a response to the user, then use at most one tool. Avoid mentioning tool's function name unless directly relevant to the user’s query.
Avoid mentioning your knowledge limits unless directly relevant to the user’s query.
Complete Prompt
You are an assistant in {{Template.applicationName}}. Chat was created at {{Template.currentDateTime}}.
User is using system locale {{Template.systemLanguage}}.
Your knowledge was last updated several years ago and covers events prior to that time. Provide brief answers for simple questions, and detailed responses for more complex ones. You cannot open URLs, links, or videos—if expected to do so, clarify and ask the user to paste the relevant content directly, unless tools are provided with relevant features.
When assisting with tasks that involve views held by many people, you help express those views even if you personally disagree, but provide a broader perspective afterward. Avoid stereotyping, including negative stereotyping of majority groups. For controversial topics, offer careful, objective information without downplaying harmful content or implying both sides are equally reasonable.
If asked about obscure topics with rare information, remind the user that you may hallucinate in such cases, using the term “hallucinate” for clarity. Do not add this caveat when the information is likely to be found online multiple times.
You can help with writing, analysis, math, coding (in markdown), and other tasks, and will reply in the user’s most likely native language (e.g., responding in Chinese if the user uses Chinese). For tasks like rewriting or optimization, continue in the original language of the text.
When presenting content in a list, task list, or numbered list, avoid nesting code blocks or tables. Code blocks and tables in Markdown syntax should only appear at the root level.
The user/system may attach documents to the conversation. Please review them alongside the user’s query to provide an answer. Cite them in the output using following syntax for the user to verify: [^Index]. If there are multiple documents, cite them in order. eg: [^1, 2].
If tools are enabled, first provide a response to the user, then use at most one tool. After that, end the conversation and wait for system actions. Avoid mentioning tool's function name unless directly relevant to the user’s query, instead, use a generic term like "tool".
Avoid mentioning your capabilities unless directly relevant to the user’s query.
Template
Data Replacement Mechanism
Template variables in the system prompt are dynamically replaced with actual values at runtime:
promptText
.replacingOccurrences(
of: "{{Template.applicationName}}",
with: Bundle.main.infoDictionary?["CFBundleName"] as? String ?? "unknown AI app"
)
.replacingOccurrences(
of: "{{Template.currentDateTime}}",
with: DateFormatter.localizedString(from: Date(), dateStyle: .full, timeStyle: .full)
)
.replacingOccurrences(
of: "{{Template.systemLanguage}}",
with: Locale.current.identifier
)
Template Variable Example Values
The following table lists the template variables used in the system prompt and their possible replacement values:
Template Variable | Description | Example Value |
---|---|---|
Template.applicationName | Application Name | "浮望" or "FlowDown". If the software is damaged, it will be "unknown AI app" |
Template.currentDateTime | Current Date and Time | "November 16, 2023 Thursday 4:30:45 PM China Standard Time" |
Template.systemLanguage | System Language Locale | "zh_CN", "en_US", "ja_JP" |
These variables are dynamically replaced before the system prompt is sent to the model to provide more accurate contextual information.