Spaces:
Runtime error
Runtime error
ICAS03 commited on
Commit ·
800c4e4
1
Parent(s): 550edf4
- fixed prompt editing (added save_btn)
Browse files- app.py +87 -24
- event_handler.py +2 -0
- prompt_configs.json +2 -2
- prompt_configs.py +1146 -47
app.py
CHANGED
|
@@ -12,9 +12,8 @@ import pandas as pd
|
|
| 12 |
from io import StringIO
|
| 13 |
import importlib
|
| 14 |
import prompt_configs
|
| 15 |
-
|
| 16 |
|
| 17 |
-
SYSTEM_PROMPTS = load_prompts()
|
| 18 |
|
| 19 |
def create_ui_component(config: UIConfig, prompt: str = None) -> Any:
|
| 20 |
if config.component_type == UIComponentType.TEXTBOX:
|
|
@@ -25,6 +24,20 @@ def create_ui_component(config: UIConfig, prompt: str = None) -> Any:
|
|
| 25 |
visible=config.visible,
|
| 26 |
value=prompt
|
| 27 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
return None
|
| 29 |
|
| 30 |
def create_prompt_editor_components(prompt_config: PromptConfig) -> Dict[str, Any]:
|
|
@@ -34,9 +47,6 @@ def create_prompt_editor_components(prompt_config: PromptConfig) -> Dict[str, An
|
|
| 34 |
with gr.Column(scale=1):
|
| 35 |
editor_key = next((k for k in prompt_config.ui.keys() if k.endswith('_prompt_editor')), None)
|
| 36 |
if editor_key:
|
| 37 |
-
# Set the prompt_key based on the current prompt being edited
|
| 38 |
-
prompt_key = editor_key.replace('_prompt_editor', '')
|
| 39 |
-
|
| 40 |
lines = prompt_config.prompt.split('\n')
|
| 41 |
if lines:
|
| 42 |
min_indent = min((len(line) - len(line.lstrip())
|
|
@@ -55,47 +65,100 @@ def create_prompt_editor_components(prompt_config: PromptConfig) -> Dict[str, An
|
|
| 55 |
prompt_config.ui[editor_key],
|
| 56 |
formatted_prompt
|
| 57 |
)
|
|
|
|
|
|
|
|
|
|
| 58 |
# Add save status display
|
| 59 |
save_status = gr.Markdown("Ready to save changes...", visible=True)
|
| 60 |
|
| 61 |
def save_prompt_changes(new_prompt: str, prompt_key: str) -> str:
|
|
|
|
| 62 |
try:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 63 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 64 |
|
| 65 |
-
# Debug: Print the prompt_key to ensure it's correct
|
| 66 |
-
print(f"Attempting to update prompt for key: {prompt_key}")
|
| 67 |
-
|
| 68 |
# Read current file content
|
| 69 |
-
with open("prompt_configs.
|
| 70 |
-
|
| 71 |
|
| 72 |
-
#
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 77 |
|
| 78 |
# Write back to file
|
| 79 |
-
with open("prompt_configs.
|
| 80 |
-
|
| 81 |
|
| 82 |
-
# Reload the in-memory
|
| 83 |
-
|
| 84 |
-
SYSTEM_PROMPTS = load_prompts()
|
| 85 |
|
| 86 |
return "✅ Prompt updated successfully"
|
| 87 |
|
| 88 |
except Exception as e:
|
| 89 |
return f"❌ Error updating prompt: {str(e)}"
|
| 90 |
|
| 91 |
-
#
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
|
|
|
|
|
|
| 95 |
outputs=[save_status]
|
| 96 |
)
|
| 97 |
|
| 98 |
components[editor_key] = editor
|
|
|
|
| 99 |
components[f"{editor_key}_save_status"] = save_status
|
| 100 |
|
| 101 |
return components
|
|
|
|
| 12 |
from io import StringIO
|
| 13 |
import importlib
|
| 14 |
import prompt_configs
|
| 15 |
+
importlib.reload(prompt_configs)
|
| 16 |
|
|
|
|
| 17 |
|
| 18 |
def create_ui_component(config: UIConfig, prompt: str = None) -> Any:
|
| 19 |
if config.component_type == UIComponentType.TEXTBOX:
|
|
|
|
| 24 |
visible=config.visible,
|
| 25 |
value=prompt
|
| 26 |
)
|
| 27 |
+
elif config.component_type == UIComponentType.MARKDOWN:
|
| 28 |
+
return gr.Markdown(
|
| 29 |
+
label=config.label,
|
| 30 |
+
visible=config.visible,
|
| 31 |
+
show_copy_button=config.show_copy_button,
|
| 32 |
+
value=prompt,
|
| 33 |
+
elem_classes=["scrollable-markdown"]
|
| 34 |
+
)
|
| 35 |
+
elif config.component_type == UIComponentType.DATAFRAME:
|
| 36 |
+
return gr.Dataframe(
|
| 37 |
+
label=config.label,
|
| 38 |
+
interactive=config.interactive,
|
| 39 |
+
visible=config.visible
|
| 40 |
+
)
|
| 41 |
return None
|
| 42 |
|
| 43 |
def create_prompt_editor_components(prompt_config: PromptConfig) -> Dict[str, Any]:
|
|
|
|
| 47 |
with gr.Column(scale=1):
|
| 48 |
editor_key = next((k for k in prompt_config.ui.keys() if k.endswith('_prompt_editor')), None)
|
| 49 |
if editor_key:
|
|
|
|
|
|
|
|
|
|
| 50 |
lines = prompt_config.prompt.split('\n')
|
| 51 |
if lines:
|
| 52 |
min_indent = min((len(line) - len(line.lstrip())
|
|
|
|
| 65 |
prompt_config.ui[editor_key],
|
| 66 |
formatted_prompt
|
| 67 |
)
|
| 68 |
+
|
| 69 |
+
save_button = gr.Button("Save Changes")
|
| 70 |
+
|
| 71 |
# Add save status display
|
| 72 |
save_status = gr.Markdown("Ready to save changes...", visible=True)
|
| 73 |
|
| 74 |
def save_prompt_changes(new_prompt: str, prompt_key: str) -> str:
|
| 75 |
+
global PROMPTS
|
| 76 |
try:
|
| 77 |
+
# Find the correct prompt key
|
| 78 |
+
prompt_key = None
|
| 79 |
+
for key, config in PROMPTS.items():
|
| 80 |
+
if editor_key in config.ui:
|
| 81 |
+
prompt_key = key
|
| 82 |
+
break
|
| 83 |
|
| 84 |
+
if not prompt_key:
|
| 85 |
+
return "❌ Error: Could not find matching prompt key"
|
| 86 |
+
|
| 87 |
+
# Update in-memory config
|
| 88 |
+
PROMPTS[prompt_key].prompt = new_prompt.strip()
|
| 89 |
|
|
|
|
|
|
|
|
|
|
| 90 |
# Read current file content
|
| 91 |
+
with open("prompt_configs.py", "r", encoding='utf-8') as f:
|
| 92 |
+
content = f.read()
|
| 93 |
|
| 94 |
+
# Find the start of the prompt section
|
| 95 |
+
section_start = f' "{prompt_key}": PromptConfig('
|
| 96 |
+
start_idx = content.find(section_start)
|
| 97 |
+
|
| 98 |
+
if start_idx == -1:
|
| 99 |
+
return "❌ Error: Could not locate prompt section in config file"
|
| 100 |
+
|
| 101 |
+
# Find the prompt= part
|
| 102 |
+
prompt_start = content.find('prompt=', start_idx)
|
| 103 |
+
if prompt_start == -1:
|
| 104 |
+
return "❌ Error: Could not locate prompt parameter"
|
| 105 |
+
|
| 106 |
+
# Find the triple quote after prompt=
|
| 107 |
+
first_quote = content.find('"""', prompt_start)
|
| 108 |
+
if first_quote == -1:
|
| 109 |
+
return "❌ Error: Could not locate start of prompt content"
|
| 110 |
+
|
| 111 |
+
# Find the closing triple quote
|
| 112 |
+
end_quote = content.find('"""', first_quote + 3)
|
| 113 |
+
if end_quote == -1:
|
| 114 |
+
return "❌ Error: Could not locate end of prompt content"
|
| 115 |
+
|
| 116 |
+
# Format the new prompt with proper indentation
|
| 117 |
+
indented_lines = []
|
| 118 |
+
for line in new_prompt.strip().split('\n'):
|
| 119 |
+
if line.strip():
|
| 120 |
+
indented_lines.append(f' {line.strip()}')
|
| 121 |
+
else:
|
| 122 |
+
indented_lines.append(' ')
|
| 123 |
+
|
| 124 |
+
# Create the new section with proper formatting
|
| 125 |
+
new_section = (
|
| 126 |
+
'prompt=\n'
|
| 127 |
+
' """\n' +
|
| 128 |
+
'\n'.join(indented_lines) +
|
| 129 |
+
'\n """'
|
| 130 |
+
)
|
| 131 |
+
|
| 132 |
+
# Replace just the prompt content
|
| 133 |
+
new_content = (
|
| 134 |
+
content[:prompt_start] +
|
| 135 |
+
new_section +
|
| 136 |
+
content[end_quote + 3:]
|
| 137 |
+
)
|
| 138 |
|
| 139 |
# Write back to file
|
| 140 |
+
with open("prompt_configs.py", "w", encoding='utf-8') as f:
|
| 141 |
+
f.write(new_content)
|
| 142 |
|
| 143 |
+
# Reload the PROMPTS module to update in-memory state
|
| 144 |
+
PROMPTS = prompt_configs.PROMPTS
|
|
|
|
| 145 |
|
| 146 |
return "✅ Prompt updated successfully"
|
| 147 |
|
| 148 |
except Exception as e:
|
| 149 |
return f"❌ Error updating prompt: {str(e)}"
|
| 150 |
|
| 151 |
+
# Define prompt_key before using it in the lambda function
|
| 152 |
+
prompt_key = next((key for key, config in PROMPTS.items() if editor_key in config.ui), None)
|
| 153 |
+
|
| 154 |
+
save_button.click(
|
| 155 |
+
fn=lambda: save_prompt_changes(editor.value, prompt_key),
|
| 156 |
+
inputs=[],
|
| 157 |
outputs=[save_status]
|
| 158 |
)
|
| 159 |
|
| 160 |
components[editor_key] = editor
|
| 161 |
+
components[f"{editor_key}_save_button"] = save_button
|
| 162 |
components[f"{editor_key}_save_status"] = save_status
|
| 163 |
|
| 164 |
return components
|
event_handler.py
CHANGED
|
@@ -146,6 +146,8 @@ def setup_all_handlers(step_buttons, all_components, progress_update, quotation_
|
|
| 146 |
outputs=[progress_update]
|
| 147 |
)
|
| 148 |
|
|
|
|
|
|
|
| 149 |
except Exception as e:
|
| 150 |
print(f"Error setting up handlers: {str(e)}")
|
| 151 |
return None
|
|
|
|
| 146 |
outputs=[progress_update]
|
| 147 |
)
|
| 148 |
|
| 149 |
+
|
| 150 |
+
|
| 151 |
except Exception as e:
|
| 152 |
print(f"Error setting up handlers: {str(e)}")
|
| 153 |
return None
|
prompt_configs.json
CHANGED
|
@@ -48,13 +48,13 @@
|
|
| 48 |
"prompt": "You are an experienced project manager tasked to create a detailed task breakdown for a project based on the planning and testing component list.\n\nObjective:\nGenerate a structured CSV output with manday estimates for each planning and testing component.\n\nInstructions:\n1. Use the planning and testing component list to identify all components\n2. For each component:\n- Estimate mandays between 0.2 and 5 days based on real-world complexity\n- Provide a clear description of deliverables and outcomes\n- Ensure estimates account for potential delays or complications\n\nOutput Format Requirements:\n- Generate a CSV with EXACTLY these column headers: \"component,mandays,description\"\n- Each row must have all three columns filled\n- Numeric values should not be quoted\n- Text values must be enclosed in double quotes\n- No empty rows or missing values\n\nExample Output:\ncomponent,mandays,description\n\"Project Planning\",2.5,\"Detailed project planning including timeline and resource allocation\"\n\"Requirements Analysis\",1.5,\"Analysis and documentation of system requirements\"\n\nReturn only the CSV content, no code blocks or additional text."
|
| 49 |
},
|
| 50 |
"generate_engage_plan_test_mandays": {
|
| 51 |
-
"prompt": "You are an experienced project manager tasked to create a detailed task breakdown for a project based on the planning and testing component list and the development component list.\n\nObjective:\nGenerate a structured output organized by component. Provide a table with the following columns:\n- Component: The name of component, as defined in the component list.\n- Manday: The estimated effort required for a one-person team to complete the task, based on real-world complexity and scope.\n- Description: A detailed explanation of the task, including deliverables or outcomes, as defined in the component list.\n\nInstruction:\n1. Input:\n- Use the planning and testing component list identify all components and subcomponents. The hierarchy of the document is Phase -> Component -> Subcomponent -> Task\n\n2. Manday Estimation:\nAssign a manday estimate for each component based on the complexity and effort required, ensuring it falls between 0.2 and 5 days.\nEnsure estimates are based on real-world complexity and scope while accounting for potential delays or complications.\n\n**Output Format**:\
|
| 52 |
},
|
| 53 |
"generate_hybrid_plan_test_mandays": {
|
| 54 |
"prompt": "You are an experienced project manager tasked to create a detailed task breakdown for a Hybrid project involving both Document Extraction and Chatbot functionalities. The project involves planning and testing components related to document processing, extraction, user interactions, and conversational workflows.\n\nObjective:\nGenerate structured CSV outputs with manday estimates for each planning and testing component, separated into Document Extraction and Chatbot sections.\n\nInstructions:\n1. Input:\n- Use the planning and testing component list to identify all components and subcomponents.\n- The hierarchy of the document is: Phase -> Component -> Subcomponent -> Task.\n\n2. Manday Estimation:\n- Assign manday estimates for each component or subcomponent based on complexity and effort required, ranging from 0.2 to 5 days.\n- Ensure estimates account for real-world complexity, potential delays, and complications.\n\n3. Output Format Requirements:\n- Generate TWO separate CSV files:\n- First, for the Document Extraction section:\n- Columns: \"component, mandays, description\".\n- Description must include deliverables and outcomes.\n- Second, for the Chatbot section:\n- Columns: \"component, subcomponent, mandays, description\".\n- Subcomponents must be clearly listed under each component.\n- Description must include deliverables and outcomes.\n- Clearly indicate Section Breaks between the two files by including:\n----SECTION BREAK----\n\n4. Output:\n- Return **ONLY** the CSV content, no code blocks or additional text.\n- Ensure all rows have all columns filled.\n- Numeric values should not be quoted.\n- Text values must be enclosed in double quotes.\n- No empty rows or missing values.\n- Omit the ``` code guards."
|
| 55 |
},
|
| 56 |
"generate_dev_mandays": {
|
| 57 |
-
"prompt": "You are an experienced project manager tasked to create a detailed task breakdown for a project based on the development component list. \n\nObjective:\nGenerate a structured output organized by component. Provide a table with the following columns:\n- Component: The name of component, as defined in the component list.\n- Manday: The estimated effort required for a one-person team to complete the task, based on real-world complexity and scope.\n- Description: A detailed explanation of the task, including deliverables or outcomes, as defined in the component list.\n\nInstruction:\n1. Input:\n- Use the planning and testing component list and the development component list to identify all components, subcomponents, tasks and subtasks.\n\n2. Manday Estimation:\nFor each subcomponent, estimate the manday based on the effort required for a single person to complete it,, ensuring it falls between 0.5 and 7 days.\nEnsure estimates are based on real-world complexity and scope while accounting for potential delays or complications.\n\n**Output Format**:\
|
| 58 |
},
|
| 59 |
"analyze_planning_testing_mandays": {
|
| 60 |
"prompt": "You are an experienced project manager tasked with analyzing the provided planning and testing mandays estimates. Your goal is to identify the highest priority components that must be completed to build the MVP. Focus on components that deliver **immediate value to users** and are **critical for the core functionality** of the product. \n\nObjective:\nIdentify the highest priority planning and testing components that are critical for the MVP's core functionality and deliver immediate value to the business. Exclude all non-critical components that do not directly contribute to the MVP's primary functionality. \n\nKey Guidelines:\n- Focus on Core Functionality: Only include components that are essential for the MVP to function and deliver immediate value to users. \n- Exclude Non-Critical Components: Do not include components related to advanced security, compliance, scalability, authentication, fallback mechanisms, or any feature that is not absolutely necessary for the MVP. \n- Prioritize Business Value: Ensure the selected components align with the business's core objectives and deliver measurable value. \n- Minimalistic Approach: Focus on the least effort required to deliver the most value. \n\nOutput Format Requirements:\n- Generate a CSV with EXACTLY these column headers: \"component,mandays,description\" \n- Each row must have all three columns filled \n- Numeric values should not be quoted \n- Text values must be enclosed in double quotes \n- No empty rows or missing values \n\nReturn only the CSV content, no code blocks or additional text."
|
|
|
|
| 48 |
"prompt": "You are an experienced project manager tasked to create a detailed task breakdown for a project based on the planning and testing component list.\n\nObjective:\nGenerate a structured CSV output with manday estimates for each planning and testing component.\n\nInstructions:\n1. Use the planning and testing component list to identify all components\n2. For each component:\n- Estimate mandays between 0.2 and 5 days based on real-world complexity\n- Provide a clear description of deliverables and outcomes\n- Ensure estimates account for potential delays or complications\n\nOutput Format Requirements:\n- Generate a CSV with EXACTLY these column headers: \"component,mandays,description\"\n- Each row must have all three columns filled\n- Numeric values should not be quoted\n- Text values must be enclosed in double quotes\n- No empty rows or missing values\n\nExample Output:\ncomponent,mandays,description\n\"Project Planning\",2.5,\"Detailed project planning including timeline and resource allocation\"\n\"Requirements Analysis\",1.5,\"Analysis and documentation of system requirements\"\n\nReturn only the CSV content, no code blocks or additional text."
|
| 49 |
},
|
| 50 |
"generate_engage_plan_test_mandays": {
|
| 51 |
+
"prompt": "You are an experienced project manager tasked to create a detailed task breakdown for a project based on the planning and testing component list and the development component list.\n\nObjective:\nGenerate a structured output organized by component. Provide a table with the following columns:\n- Component: The name of component, as defined in the component list.\n- Manday: The estimated effort required for a one-person team to complete the task, based on real-world complexity and scope.\n- Description: A detailed explanation of the task, including deliverables or outcomes, as defined in the component list.\n\nInstruction:\n1. Input:\n- Use the planning and testing component list identify all components and subcomponents. The hierarchy of the document is Phase -> Component -> Subcomponent -> Task\n\n2. Manday Estimation:\nAssign a manday estimate for each component based on the complexity and effort required, ensuring it falls between 0.2 and 5 days.\nEnsure estimates are based on real-world complexity and scope while accounting for potential delays or complications.\n\n**Output Format**:\n- Create a CSV file with the following columns:\n \"component\",\"subcomponent\",\"mandays\",\"description\"\n- Just return the csv text and NOTHING else, omit the ``` code guards.\n- Numeric values should not be quoted.\n- Text values must be enclosed in double quotes.\n- No empty rows or missing values."
|
| 52 |
},
|
| 53 |
"generate_hybrid_plan_test_mandays": {
|
| 54 |
"prompt": "You are an experienced project manager tasked to create a detailed task breakdown for a Hybrid project involving both Document Extraction and Chatbot functionalities. The project involves planning and testing components related to document processing, extraction, user interactions, and conversational workflows.\n\nObjective:\nGenerate structured CSV outputs with manday estimates for each planning and testing component, separated into Document Extraction and Chatbot sections.\n\nInstructions:\n1. Input:\n- Use the planning and testing component list to identify all components and subcomponents.\n- The hierarchy of the document is: Phase -> Component -> Subcomponent -> Task.\n\n2. Manday Estimation:\n- Assign manday estimates for each component or subcomponent based on complexity and effort required, ranging from 0.2 to 5 days.\n- Ensure estimates account for real-world complexity, potential delays, and complications.\n\n3. Output Format Requirements:\n- Generate TWO separate CSV files:\n- First, for the Document Extraction section:\n- Columns: \"component, mandays, description\".\n- Description must include deliverables and outcomes.\n- Second, for the Chatbot section:\n- Columns: \"component, subcomponent, mandays, description\".\n- Subcomponents must be clearly listed under each component.\n- Description must include deliverables and outcomes.\n- Clearly indicate Section Breaks between the two files by including:\n----SECTION BREAK----\n\n4. Output:\n- Return **ONLY** the CSV content, no code blocks or additional text.\n- Ensure all rows have all columns filled.\n- Numeric values should not be quoted.\n- Text values must be enclosed in double quotes.\n- No empty rows or missing values.\n- Omit the ``` code guards."
|
| 55 |
},
|
| 56 |
"generate_dev_mandays": {
|
| 57 |
+
"prompt": "You are an experienced project manager tasked to create a detailed task breakdown for a project based on the development component list. \n\nObjective:\nGenerate a structured output organized by component. Provide a table with the following columns:\n- Component: The name of component, as defined in the component list.\n- Manday: The estimated effort required for a one-person team to complete the task, based on real-world complexity and scope.\n- Description: A detailed explanation of the task, including deliverables or outcomes, as defined in the component list.\n\nInstruction:\n1. Input:\n- Use the planning and testing component list and the development component list to identify all components, subcomponents, tasks and subtasks.\n\n2. Manday Estimation:\nFor each subcomponent, estimate the manday based on the effort required for a single person to complete it,, ensuring it falls between 0.5 and 7 days.\nEnsure estimates are based on real-world complexity and scope while accounting for potential delays or complications.\n\n**Output Format**:\n- Create a CSV file with the following columns:\n\"component\",\"subcomponent\",\"mandays\",\"description\"\n- Just return the csv text and NOTHING else, omit the ``` code guards.\n- Enclose all text values, including the column headers, in double quotes (\"\").\n- Retain numeric values as-is, without any quotes."
|
| 58 |
},
|
| 59 |
"analyze_planning_testing_mandays": {
|
| 60 |
"prompt": "You are an experienced project manager tasked with analyzing the provided planning and testing mandays estimates. Your goal is to identify the highest priority components that must be completed to build the MVP. Focus on components that deliver **immediate value to users** and are **critical for the core functionality** of the product. \n\nObjective:\nIdentify the highest priority planning and testing components that are critical for the MVP's core functionality and deliver immediate value to the business. Exclude all non-critical components that do not directly contribute to the MVP's primary functionality. \n\nKey Guidelines:\n- Focus on Core Functionality: Only include components that are essential for the MVP to function and deliver immediate value to users. \n- Exclude Non-Critical Components: Do not include components related to advanced security, compliance, scalability, authentication, fallback mechanisms, or any feature that is not absolutely necessary for the MVP. \n- Prioritize Business Value: Ensure the selected components align with the business's core objectives and deliver measurable value. \n- Minimalistic Approach: Focus on the least effort required to deliver the most value. \n\nOutput Format Requirements:\n- Generate a CSV with EXACTLY these column headers: \"component,mandays,description\" \n- Each row must have all three columns filled \n- Numeric values should not be quoted \n- Text values must be enclosed in double quotes \n- No empty rows or missing values \n\nReturn only the CSV content, no code blocks or additional text."
|
prompt_configs.py
CHANGED
|
@@ -2,14 +2,6 @@ from dataclasses import dataclass
|
|
| 2 |
from dataclasses import dataclass
|
| 3 |
from enum import Enum
|
| 4 |
from typing import List, Dict, Any, Optional
|
| 5 |
-
import json
|
| 6 |
-
from typing import Dict, Any
|
| 7 |
-
|
| 8 |
-
def load_prompts() -> Dict[str, Any]:
|
| 9 |
-
with open("prompt_configs.json", "r", encoding="utf-8") as f:
|
| 10 |
-
return json.load(f)
|
| 11 |
-
|
| 12 |
-
SYSTEM_PROMPTS = load_prompts()
|
| 13 |
|
| 14 |
class ModelType(Enum):
|
| 15 |
O1_MINI = "o1-mini"
|
|
@@ -45,9 +37,102 @@ class PromptConfig:
|
|
| 45 |
ui: Dict[str, UIConfig] = None
|
| 46 |
|
| 47 |
PROMPTS = {
|
| 48 |
-
|
| 49 |
"component_agent": PromptConfig(
|
| 50 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
inputs=['generated_prd'],
|
| 52 |
outputs=["configuration_type"],
|
| 53 |
step="Step 1 : Scope & Components",
|
|
@@ -77,7 +162,31 @@ PROMPTS = {
|
|
| 77 |
),
|
| 78 |
|
| 79 |
"client_initial_question": PromptConfig(
|
| 80 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 81 |
inputs=[],
|
| 82 |
outputs=[],
|
| 83 |
model=ModelType.O1_MINI,
|
|
@@ -94,7 +203,37 @@ PROMPTS = {
|
|
| 94 |
),
|
| 95 |
|
| 96 |
"generate_client_follow_up": PromptConfig(
|
| 97 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 98 |
inputs=["project_detail"],
|
| 99 |
outputs=["follow_up_questions"],
|
| 100 |
model=ModelType.O1_MINI,
|
|
@@ -111,7 +250,57 @@ PROMPTS = {
|
|
| 111 |
),
|
| 112 |
|
| 113 |
"generate_engage_follow_up_questions": PromptConfig(
|
| 114 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 115 |
inputs=["project_detail"],
|
| 116 |
outputs=["generated_engage_follow_up_questions"],
|
| 117 |
model=ModelType.O1_MINI,
|
|
@@ -128,7 +317,53 @@ PROMPTS = {
|
|
| 128 |
),
|
| 129 |
|
| 130 |
"generate_page_follow_up_questions": PromptConfig(
|
| 131 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 132 |
inputs=['project_detail'],
|
| 133 |
outputs=['generated_page_follow_up_questions'],
|
| 134 |
model=ModelType.O1_MINI,
|
|
@@ -145,16 +380,39 @@ PROMPTS = {
|
|
| 145 |
),
|
| 146 |
|
| 147 |
"generate_further_follow_up_questions": PromptConfig(
|
| 148 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 149 |
inputs=["project_detail"],
|
| 150 |
outputs=["generated_engage_further_follow_up_questions"],
|
| 151 |
model=ModelType.O1_MINI,
|
| 152 |
-
description="Generate Further Follow Up Questions",
|
| 153 |
step="Chatbot Prompt Editors",
|
| 154 |
ui={
|
| 155 |
"generate_further_follow_up_questions_prompt_editor": UIConfig(
|
| 156 |
component_type=UIComponentType.TEXTBOX,
|
| 157 |
-
label="Further Follow Up Questions Prompt",
|
| 158 |
lines=20,
|
| 159 |
interactive=True
|
| 160 |
)
|
|
@@ -162,7 +420,15 @@ PROMPTS = {
|
|
| 162 |
),
|
| 163 |
|
| 164 |
"generate_prd": PromptConfig(
|
| 165 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 166 |
inputs=["project_detail"],
|
| 167 |
outputs=["generated_prd"],
|
| 168 |
model=ModelType.O1_MINI,
|
|
@@ -191,7 +457,31 @@ PROMPTS = {
|
|
| 191 |
),
|
| 192 |
|
| 193 |
"generate_intent_list": PromptConfig(
|
| 194 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 195 |
inputs=["generated_prd"],
|
| 196 |
outputs=["generated_intent_list"],
|
| 197 |
model=ModelType.O1_MINI,
|
|
@@ -220,11 +510,33 @@ PROMPTS = {
|
|
| 220 |
),
|
| 221 |
|
| 222 |
"generate_plan_test_components": PromptConfig(
|
| 223 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 224 |
inputs=["generated_prd"],
|
| 225 |
outputs=["generated_plan_test_components"],
|
| 226 |
model=ModelType.O1_MINI,
|
| 227 |
-
description="Generate
|
| 228 |
step="Step 1 : Scope & Components",
|
| 229 |
ui={
|
| 230 |
"generate_plan_test_components_prompt_editor": UIConfig(
|
|
@@ -249,7 +561,46 @@ PROMPTS = {
|
|
| 249 |
),
|
| 250 |
|
| 251 |
"generate_page_dev_components": PromptConfig(
|
| 252 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 253 |
inputs=["generated_prd"],
|
| 254 |
outputs=["generated_page_dev_components"],
|
| 255 |
model=ModelType.O1_MINI,
|
|
@@ -278,7 +629,70 @@ PROMPTS = {
|
|
| 278 |
),
|
| 279 |
|
| 280 |
"generate_engage_dev_components": PromptConfig(
|
| 281 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 282 |
inputs=["generated_prd" , "generated_intent_list"],
|
| 283 |
outputs=["generated_engage_dev_components"],
|
| 284 |
model=ModelType.O1_MINI,
|
|
@@ -307,7 +721,44 @@ PROMPTS = {
|
|
| 307 |
),
|
| 308 |
|
| 309 |
"reformat_page_dev_components": PromptConfig(
|
| 310 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 311 |
inputs=["generated_page_dev_components"],
|
| 312 |
outputs=["reformatted_dev_components"],
|
| 313 |
model=ModelType.O1_MINI,
|
|
@@ -336,7 +787,58 @@ PROMPTS = {
|
|
| 336 |
),
|
| 337 |
|
| 338 |
"reformat_engage_dev_components": PromptConfig(
|
| 339 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 340 |
inputs=["generated_engage_dev_components"],
|
| 341 |
outputs=["reformatted_dev_components"],
|
| 342 |
model=ModelType.O1_MINI,
|
|
@@ -365,11 +867,29 @@ PROMPTS = {
|
|
| 365 |
),
|
| 366 |
|
| 367 |
"reformat_hybrid_dev_components": PromptConfig(
|
| 368 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 369 |
inputs=["generated_engage_dev_components","generated_page_dev_components"],
|
| 370 |
outputs=["reformatted_dev_components"],
|
| 371 |
model=ModelType.O1_MINI,
|
| 372 |
-
description="Reformat
|
| 373 |
step="Step 1 : Scope & Components",
|
| 374 |
ui={
|
| 375 |
"reformat_hybrid_dev_components_prompt_editor": UIConfig(
|
|
@@ -394,7 +914,15 @@ PROMPTS = {
|
|
| 394 |
),
|
| 395 |
|
| 396 |
"generate_intents_csv": PromptConfig(
|
| 397 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 398 |
inputs=["generated_intent_list"],
|
| 399 |
outputs=["generated_intents_csv"],
|
| 400 |
model=ModelType.O1_MINI,
|
|
@@ -418,11 +946,38 @@ PROMPTS = {
|
|
| 418 |
),
|
| 419 |
|
| 420 |
"generate_page_plan_test_mandays": PromptConfig(
|
| 421 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 422 |
inputs=["generated_plan_test_components"],
|
| 423 |
outputs=["generated_plan_test_mandays"],
|
| 424 |
model=ModelType.O1_MINI,
|
| 425 |
-
description="Generate
|
| 426 |
step="Step 2 : Mandays & Quotation",
|
| 427 |
sub_step="Step 2.1 : Generate Mandays",
|
| 428 |
ui={
|
|
@@ -441,11 +996,33 @@ PROMPTS = {
|
|
| 441 |
),
|
| 442 |
|
| 443 |
"generate_engage_plan_test_mandays": PromptConfig(
|
| 444 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 445 |
inputs=["generated_plan_test_components"],
|
| 446 |
outputs=["generated_plan_test_mandays"],
|
| 447 |
model=ModelType.O1_MINI,
|
| 448 |
-
description="Generate
|
| 449 |
step="Step 2 : Mandays & Quotation",
|
| 450 |
sub_step="Step 2.1 : Generate Mandays",
|
| 451 |
ui={
|
|
@@ -464,11 +1041,46 @@ PROMPTS = {
|
|
| 464 |
),
|
| 465 |
|
| 466 |
"generate_hybrid_plan_test_mandays": PromptConfig(
|
| 467 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 468 |
inputs=["generated_plan_test_components"],
|
| 469 |
outputs=["generated_plan_test_mandays"],
|
| 470 |
model=ModelType.O1_MINI,
|
| 471 |
-
description="Generate
|
| 472 |
step="Step 2 : Mandays & Quotation",
|
| 473 |
sub_step="Step 2.1 : Generate Mandays",
|
| 474 |
ui={
|
|
@@ -487,7 +1099,33 @@ PROMPTS = {
|
|
| 487 |
),
|
| 488 |
|
| 489 |
"generate_dev_mandays": PromptConfig(
|
| 490 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 491 |
inputs=["reformatted_dev_components"],
|
| 492 |
outputs=["generated_dev_mandays"],
|
| 493 |
model=ModelType.O1_MINI,
|
|
@@ -511,7 +1149,28 @@ PROMPTS = {
|
|
| 511 |
),
|
| 512 |
|
| 513 |
"analyze_planning_testing_mandays": PromptConfig(
|
| 514 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 515 |
inputs=["generated_plan_test_mandays"],
|
| 516 |
outputs=["identified_planning_testing_components"],
|
| 517 |
model=ModelType.O1_MINI,
|
|
@@ -535,7 +1194,33 @@ PROMPTS = {
|
|
| 535 |
),
|
| 536 |
|
| 537 |
"analyze_development_mandays": PromptConfig(
|
| 538 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 539 |
inputs=["generated_dev_mandays"],
|
| 540 |
outputs=["identified_development_components"],
|
| 541 |
model=ModelType.O1_MINI,
|
|
@@ -559,7 +1244,33 @@ PROMPTS = {
|
|
| 559 |
),
|
| 560 |
|
| 561 |
"analyze_MVP_intents": PromptConfig(
|
| 562 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 563 |
inputs=["generated_intent_list"],
|
| 564 |
outputs=["identified_mvp_intents"],
|
| 565 |
model=ModelType.O1_MINI,
|
|
@@ -583,7 +1294,45 @@ PROMPTS = {
|
|
| 583 |
),
|
| 584 |
|
| 585 |
"recalculate_page_MVP_mandays": PromptConfig(
|
| 586 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 587 |
inputs=["identified_planning_testing_components", "identified_development_components" , "generated_prd"],
|
| 588 |
outputs=["revised_mandays_estimates"],
|
| 589 |
model=ModelType.O1_MINI,
|
|
@@ -613,7 +1362,65 @@ PROMPTS = {
|
|
| 613 |
),
|
| 614 |
|
| 615 |
"recalculate_engage_MVP_mandays": PromptConfig(
|
| 616 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 617 |
inputs=["identified_planning_testing_components", "identified_development_components", "identified_mvp_intents", "generated_prd"],
|
| 618 |
outputs=["revised_mandays_estimates"],
|
| 619 |
model=ModelType.O1_MINI,
|
|
@@ -643,7 +1450,32 @@ PROMPTS = {
|
|
| 643 |
),
|
| 644 |
|
| 645 |
"generate_page_MVP_mandays": PromptConfig(
|
| 646 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 647 |
inputs=["revised_mandays_estimates"],
|
| 648 |
outputs=["generated_MVP_mandays"],
|
| 649 |
model=ModelType.O1_MINI,
|
|
@@ -673,7 +1505,36 @@ PROMPTS = {
|
|
| 673 |
),
|
| 674 |
|
| 675 |
"generate_engage_MVP_mandays": PromptConfig(
|
| 676 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 677 |
inputs=["revised_mandays_estimates"],
|
| 678 |
outputs=["generated_MVP_mandays"],
|
| 679 |
model=ModelType.O1_MINI,
|
|
@@ -709,7 +1570,22 @@ PROMPTS = {
|
|
| 709 |
),
|
| 710 |
|
| 711 |
"generate_page_MVP_prd": PromptConfig(
|
| 712 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 713 |
inputs=["generated_prd" , "generated_MVP_mandays"],
|
| 714 |
outputs=["generated_mvp_prd"],
|
| 715 |
model=ModelType.O1_MINI,
|
|
@@ -738,7 +1614,22 @@ PROMPTS = {
|
|
| 738 |
),
|
| 739 |
|
| 740 |
"generate_engage_MVP_prd": PromptConfig(
|
| 741 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 742 |
inputs=["generated_prd" , "generated_MVP_mandays"],
|
| 743 |
outputs=["generated_mvp_prd"],
|
| 744 |
model=ModelType.O1_MINI,
|
|
@@ -767,7 +1658,87 @@ PROMPTS = {
|
|
| 767 |
),
|
| 768 |
|
| 769 |
"generate_page_BD_SOW": PromptConfig(
|
| 770 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 771 |
inputs=["generated_prd" , "generated_plan_test_components" , "reformatted_dev_components" , "combined_cost_summary"],
|
| 772 |
outputs=["generated_BD_SOW"],
|
| 773 |
model=ModelType.O1_MINI,
|
|
@@ -796,7 +1767,87 @@ PROMPTS = {
|
|
| 796 |
),
|
| 797 |
|
| 798 |
"generate_engage_BD_SOW": PromptConfig(
|
| 799 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 800 |
inputs=["generated_prd" , "generated_plan_test_components" , "reformatted_dev_components" , "generated_intent_list" , "combined_cost_summary" ],
|
| 801 |
outputs=["generated_BD_SOW"],
|
| 802 |
model=ModelType.O1_MINI,
|
|
@@ -825,7 +1876,55 @@ PROMPTS = {
|
|
| 825 |
),
|
| 826 |
|
| 827 |
"generate_Tech_SOW": PromptConfig(
|
| 828 |
-
prompt=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 829 |
inputs=["generated_plan_test_components","reformatted_dev_components","generated_MVP_mandays"],
|
| 830 |
outputs=["generated_Tech_SOW"],
|
| 831 |
model=ModelType.O1_MINI,
|
|
|
|
| 2 |
from dataclasses import dataclass
|
| 3 |
from enum import Enum
|
| 4 |
from typing import List, Dict, Any, Optional
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
|
| 6 |
class ModelType(Enum):
|
| 7 |
O1_MINI = "o1-mini"
|
|
|
|
| 37 |
ui: Dict[str, UIConfig] = None
|
| 38 |
|
| 39 |
PROMPTS = {
|
|
|
|
| 40 |
"component_agent": PromptConfig(
|
| 41 |
+
prompt=
|
| 42 |
+
"""
|
| 43 |
+
You are an AI that analyzes a software project’s requirements and determines all possible valid and unique configurations based on the provided constraints.
|
| 44 |
+
|
| 45 |
+
Input Data:
|
| 46 |
+
|
| 47 |
+
- Project Requirement Document (PRD) – Describes the project’s goals and scope.
|
| 48 |
+
- List of Functions – A predefined set of function names and descriptions. STRICTLY use these ONLY (do not create new functions).
|
| 49 |
+
|
| 50 |
+
Objective:
|
| 51 |
+
Identify and classify valid project configurations into one of the following categories:
|
| 52 |
+
|
| 53 |
+
- Hybrid Configurations – If the project requires both chatbot and document extraction functionalities.
|
| 54 |
+
- Chatbot-Only Configurations – If the project is focused solely on chatbot functionality.
|
| 55 |
+
- Document Extraction-Only Configurations – If the project involves document extraction but does not require chatbot features.
|
| 56 |
+
|
| 57 |
+
Rules for Ensuring Uniqueness:
|
| 58 |
+
|
| 59 |
+
- Each configuration must belong to only one category (Chatbot, Document Extraction, or Hybrid) and be sorted by best match to the project requirements.
|
| 60 |
+
- Avoid redundant permutations – Ensure no duplicate function combinations under different names.
|
| 61 |
+
- Do NOT create new functions – Use only those from the provided function list.
|
| 62 |
+
|
| 63 |
+
Expected Output Format:
|
| 64 |
+
- For Hybrid Configurations , the configuration_type should be "Basic Chatbot and Document Extraction".
|
| 65 |
+
- A structured JSON object with no duplicate function combinations.
|
| 66 |
+
- DO NOT include any code guards or placeholders.
|
| 67 |
+
|
| 68 |
+
Example 1:
|
| 69 |
+
Project Requirement:
|
| 70 |
+
"The system must provide a chatbot to handle customer queries. It should support intent recognition and predefined workflows. The chatbot must work across web, mobile, and messaging platforms and escalate complex queries to human agents when needed."
|
| 71 |
+
|
| 72 |
+
OUTPUT:
|
| 73 |
+
[
|
| 74 |
+
{
|
| 75 |
+
"configuration_type": "Basic Chatbot",
|
| 76 |
+
"selected_functions": [
|
| 77 |
+
"generate_plan_test_components",
|
| 78 |
+
"generate_intent_list",
|
| 79 |
+
"generate_engage_dev_components"
|
| 80 |
+
]
|
| 81 |
+
}
|
| 82 |
+
]
|
| 83 |
+
|
| 84 |
+
Example 2:
|
| 85 |
+
Project Requirement:
|
| 86 |
+
"The system must extract structured data from PDFs. It should identify key fields, validate extracted data, support batch processing, and integrate with our existing software."
|
| 87 |
+
|
| 88 |
+
OUTPUT:
|
| 89 |
+
[
|
| 90 |
+
{
|
| 91 |
+
"configuration_type": "Basic Document Extraction",
|
| 92 |
+
"selected_functions": [
|
| 93 |
+
"generate_plan_test_components",
|
| 94 |
+
"generate_page_dev_components",
|
| 95 |
+
"reformat_page_dev_components"
|
| 96 |
+
]
|
| 97 |
+
}
|
| 98 |
+
]
|
| 99 |
+
|
| 100 |
+
Example 3:
|
| 101 |
+
Project Requirement:
|
| 102 |
+
"The system must integrate a chatbot with document extraction. The chatbot should accept user-uploaded documents, extract relevant data, and respond based on extracted content."
|
| 103 |
+
|
| 104 |
+
OUTPUT:
|
| 105 |
+
[
|
| 106 |
+
{
|
| 107 |
+
"configuration_type": "Basic Chatbot and Document Extraction",
|
| 108 |
+
"selected_functions": [
|
| 109 |
+
"generate_plan_test_components",
|
| 110 |
+
"generate_intent_list",
|
| 111 |
+
"generate_page_dev_components",
|
| 112 |
+
"generate_engage_dev_components",
|
| 113 |
+
"reformat_hybrid_dev_components"
|
| 114 |
+
]
|
| 115 |
+
}
|
| 116 |
+
]
|
| 117 |
+
|
| 118 |
+
<List of Functions: ONLY use these>
|
| 119 |
+
generate_plan_test_components: For ALL projects, generates a granular component list for the Planning and Testing phases,while explicitly excluding development-related tasks.
|
| 120 |
+
|
| 121 |
+
generate_page_dev_components: For document extraction projects, produces a structured development component breakdown, categorizing frontend, backend, and integration tasks, while addressing edge cases and special considerations.
|
| 122 |
+
|
| 123 |
+
generate_intent_list: For chatbot projects, analyzes a project’s requirements to define all possible chatbot intents and workflows, categorizing them by complexity (simple, multi-step, fallback, etc.) while also identifying overlooked but industry-relevant intents based on competitor comparisons.
|
| 124 |
+
|
| 125 |
+
generate_engage_dev_components: For chatbot projects, extracts comprehensive development components from the Project Requirement Document (PRD) and Chatbot Intent List (CIL), translating intents, workflows, and fallback scenarios into specific technical deliverables for structured implementation.
|
| 126 |
+
|
| 127 |
+
reformat_page_dev_components: Reformat the generated development components for document extraction projects to ensure consistent naming conventions, clarity, and logical grouping (e.g., Frontend, Backend, Integration).
|
| 128 |
+
|
| 129 |
+
reformat_engage_dev_components: Standardize and harmonize naming conventions for chatbot development components by cross-checking against a reference list, retaining all unique elements, and ensuring proper categorization of subcomponents.
|
| 130 |
+
|
| 131 |
+
reformat_hybrid_dev_components:Merge the chatbot and document extraction component lists into a unified, optimized list by consolidating overlapping elements, eliminating redundancies, and structuring the final output into clearly defined component categories.
|
| 132 |
+
|
| 133 |
+
|
| 134 |
+
<Requirements>
|
| 135 |
+
""",
|
| 136 |
inputs=['generated_prd'],
|
| 137 |
outputs=["configuration_type"],
|
| 138 |
step="Step 1 : Scope & Components",
|
|
|
|
| 162 |
),
|
| 163 |
|
| 164 |
"client_initial_question": PromptConfig(
|
| 165 |
+
prompt=
|
| 166 |
+
"""
|
| 167 |
+
# Client Information Gathering Questions
|
| 168 |
+
|
| 169 |
+
### Company Background and Industry
|
| 170 |
+
1. Can you provide some background about your company?
|
| 171 |
+
2. Which industry do you operate in, and what is your company's niche or specialization?
|
| 172 |
+
3. Who are your primary customers?
|
| 173 |
+
4. What are the main objectives you want to achieve?
|
| 174 |
+
5. What key features or functionalities do you need?
|
| 175 |
+
|
| 176 |
+
### Current Challenges
|
| 177 |
+
6. What are the biggest challenges your firm is currently facing?
|
| 178 |
+
7. Can you describe your current processes?
|
| 179 |
+
|
| 180 |
+
### Workflow and System Impact
|
| 181 |
+
8. How will this solution benefit your firm as a whole?
|
| 182 |
+
|
| 183 |
+
### Existing Workflow or System
|
| 184 |
+
9. Can you describe your current workflow or system?
|
| 185 |
+
|
| 186 |
+
### Pain Point Identification
|
| 187 |
+
10. Where is your current system falling short or causing delays?
|
| 188 |
+
11. Are there any parts of the process that are particularly time-consuming/ prone to error?
|
| 189 |
+
""",
|
| 190 |
inputs=[],
|
| 191 |
outputs=[],
|
| 192 |
model=ModelType.O1_MINI,
|
|
|
|
| 203 |
),
|
| 204 |
|
| 205 |
"generate_client_follow_up": PromptConfig(
|
| 206 |
+
prompt=
|
| 207 |
+
"""
|
| 208 |
+
Based on the initial list of questions and the client's provided answers, generate **insightful and targeted follow-up questions** that will help deepen my understanding of the following critical aspects:
|
| 209 |
+
|
| 210 |
+
1. **Client Overview**
|
| 211 |
+
**Objective:** ask relevant questions that will directly contribute to better project requirements gathering. (ie: department team that the project is meant for ..etc)
|
| 212 |
+
|
| 213 |
+
2. **Project Vision and Value**
|
| 214 |
+
**Objective:** Clarify the intended impact of the project on the client's business. Understand how it will improve their processes, solve key challenges, and deliver measurable benefits.
|
| 215 |
+
**Focus:** Investigate specific outcomes, immediate expected goals, and how success will be defined.
|
| 216 |
+
|
| 217 |
+
3. **Existing System or Workflow Description**
|
| 218 |
+
**Objective:** Delve deeper into the client's current tools, workflows, and processes to uncover pain points, integration requirements, and opportunities for optimization.
|
| 219 |
+
**Focus:** Identify inefficiencies, technical limitations, or gaps that the project will address.
|
| 220 |
+
|
| 221 |
+
4. **Budget and Resource Constraints**
|
| 222 |
+
**Objective:** Clearly define any limitations or constraints—financial, resource-based, or time-related—that could impact project success.
|
| 223 |
+
**Focus:** Understand the flexibility of the budget, timeline expectations, and resource availability.
|
| 224 |
+
|
| 225 |
+
Instructions:
|
| 226 |
+
Each question should:
|
| 227 |
+
Build on provided client information
|
| 228 |
+
Non repetitive, and unique. Avoid asking similar questions.
|
| 229 |
+
Include realistic sample answers relevant to the client's context
|
| 230 |
+
Focus on gathering quantifiable or specific information
|
| 231 |
+
|
| 232 |
+
|
| 233 |
+
Output top 10 questions in the following format:
|
| 234 |
+
<question>(sample answers)
|
| 235 |
+
Just return the text and NOTHING else. Do not overexplain, omit code guards.
|
| 236 |
+
""",
|
| 237 |
inputs=["project_detail"],
|
| 238 |
outputs=["follow_up_questions"],
|
| 239 |
model=ModelType.O1_MINI,
|
|
|
|
| 250 |
),
|
| 251 |
|
| 252 |
"generate_engage_follow_up_questions": PromptConfig(
|
| 253 |
+
prompt=
|
| 254 |
+
"""
|
| 255 |
+
**You are a Software Development Expert specializing in scalable, secure, and robust chatbot systems.
|
| 256 |
+
You will be provided with client background information and a requirements rubric.
|
| 257 |
+
Your task is to create a dynamic, context-aware list of questions to collaboratively gather client requirements for a chatbot application.
|
| 258 |
+
Use the requirements rubric as a baseline. Generate additional, relevant questions on top of this baseline where appropriate.
|
| 259 |
+
Use the client's context to add clarity or relevance to the question.
|
| 260 |
+
Each question should provide actionable insights to uncover critical details about client needs and include sample answers as guidance to the client.
|
| 261 |
+
|
| 262 |
+
Areas to Cover:
|
| 263 |
+
Business Requirements:
|
| 264 |
+
<client context>, What specific business outcomes should this chatbot achieve? (e.g., providing information, assisting users, facilitating specific tasks like event-related inquiries)
|
| 265 |
+
<client context>, Which current customer service challenges should the chatbot address? How are these challenges currently being addressed? Should this chatbot replace or complement existing customer service channels? Can you give more details? (e.g., long response times, lack of 24/7 support)
|
| 266 |
+
Conversational Design:
|
| 267 |
+
<client context>, Should the chatbot handle tasks that require only one piece of information, like retrieving an order ID? (e.g., yes, for order status checks)
|
| 268 |
+
<client context>, Can you provide 2 end-to-end expected conversation flows? (e.g., user asks for order status, chatbot obtains order ID, checks status, and notifies user)
|
| 269 |
+
<client context>, What are the most frequently asked questions by customers currently? Can you provide an expected number of questions in this FAQ or some sample questions? Where are the answers to these questions stored right now? (e.g., business hours, promotions)
|
| 270 |
+
<client context>, How should the chatbot handle multiple failed attempts? When should the chatbot escalate to a human agent after failed attempts? (e.g., after 3 failed attempts, escalate to a live agent)
|
| 271 |
+
<client context>, Will the chatbot handle complex tasks that involve multiple steps, such as booking appointments? If so, can you provide an expected range of questions that fall under this category and some sample scenarios? (e.g., booking a doctor’s appointment)
|
| 272 |
+
Technical Integration:
|
| 273 |
+
<client context>, Where would you prefer the chatbot to be hosted? On your own servers, in the cloud, or a mix of both? (e.g., cloud-based hosting for scalability)
|
| 274 |
+
<client context>, Do you need the chatbot to be deployed in a specific geographical region for data residency or compliance reasons? (e.g., EU region for GDPR compliance)
|
| 275 |
+
<client context>, Which platforms would you like the chatbot to be available on (e.g., website, mobile app, social media)? Which platform should it be prioritized? (e.g. website and mobile app as priority)
|
| 276 |
+
<client context>, Are there any existing tools or systems (e.g., CRM, ERP, customer service software) the chatbot should connect to? If so, what are the software names? (e.g., Salesforce, Zendesk)
|
| 277 |
+
<client context>, Do these systems provide APIs for integration? (e.g., yes, Salesforce and Zendesk provide APIs)
|
| 278 |
+
<client context>, How do you envision the chatbot interacting with these tools or systems? Will it need to fetch data, trigger actions, or both? (e.g., fetch customer data and create support tickets)
|
| 279 |
+
Data Requirements:
|
| 280 |
+
<client context>, What type of data formats will you expect the chatbot to process and handle? Will they be in text, files, images, audio, or perhaps video form? (e.g., text and images for product inquiries)
|
| 281 |
+
<client context>, Should the chatbot have the ability to update or modify data in these systems (e.g., creating tickets, updating customer information)? (e.g., yes, update customer profiles)
|
| 282 |
+
<client context>, How does your company store data? Is it in databases, spreadsheets, or cloud storage? If so, provide the name of the database. (e.g., MySQL database, Google Sheets)
|
| 283 |
+
<client context>, How often does the data in your system update? Is it updated in real-time, daily, or weekly? (e.g., real-time updates for inventory levels)
|
| 284 |
+
<client context>, Does the chatbot need to retrieve and provide real-time updates on things like prices, stock levels, or delivery status? How are these real-time data being stored or accessed? (e.g., yes, via API integration with inventory management system)
|
| 285 |
+
Performance and Scalability:
|
| 286 |
+
<client context>, What are the expected peak hours and maximum volume during these periods? Include timezone considerations and seasonal peaks. (e.g., 10 AM–2 PM, 500 concurrent users during holiday season)
|
| 287 |
+
<client context>, What is the expected number of simultaneous users accessing the chatbot? What is the required capacity for parallel conversations? (e.g., 200 concurrent users, 500 parallel conversations)
|
| 288 |
+
<client context>, What are the required response times and reliability expectations for the chatbot? How should we define server capacity and API limits to maintain optimal performance, even during peak traffic? (e.g., response time under 2 seconds, 99.9% uptime)
|
| 289 |
+
Security and Compliance:
|
| 290 |
+
<client context>, Will the chatbot handle any sensitive data? Are there industry-specific regulations to follow? (e.g., yes, GDPR compliance for customer data)
|
| 291 |
+
<client context>, What security measures are required to protect the data processed by the chatbot? (e.g., encryption for data in transit and at rest)
|
| 292 |
+
User Experience:
|
| 293 |
+
<client context>, Who are the key user personas for the chatbot? What are their primary needs (e.g., language differences)? (e.g., customers, support agents, multilingual support)
|
| 294 |
+
<client context>, What languages should the chatbot support? What tone should the chatbot use (e.g., friendly, formal)? (e.g., English and Spanish, friendly tone)
|
| 295 |
+
<client context>, What kind of metrics do you want to collect from the user, e.g., customer satisfaction for the chatbot? How do you envision these metrics being collected (every interaction/random)? Do you want a dashboard to monitor performance? (e.g., CSAT scores after every interaction, real-time dashboard)
|
| 296 |
+
System Reliability:
|
| 297 |
+
<client context>, What actions should be taken if the system fails or experiences downtime (e.g., notifying users, providing estimated response times)? How can we ensure minimal disruption to the user experience? (e.g., notify users of downtime and provide estimated resolution time)
|
| 298 |
+
<client context>, Would you like to set up automated monitoring and alerting for critical issues, such as system downtime or API failures? (e.g., yes, with email and SMS alerts)
|
| 299 |
+
|
| 300 |
+
Instructions:
|
| 301 |
+
Replace <client context> with relevant information derived from the provided client background.
|
| 302 |
+
Only provide the list of formatted questions without any additional introduction or summary.
|
| 303 |
+
""",
|
| 304 |
inputs=["project_detail"],
|
| 305 |
outputs=["generated_engage_follow_up_questions"],
|
| 306 |
model=ModelType.O1_MINI,
|
|
|
|
| 317 |
),
|
| 318 |
|
| 319 |
"generate_page_follow_up_questions": PromptConfig(
|
| 320 |
+
prompt=
|
| 321 |
+
"""
|
| 322 |
+
**You are a Software Development Expert specializing in scalable, secure, and robust document processing systems.
|
| 323 |
+
You will be provided with client background information.
|
| 324 |
+
Your task is to create a dynamic, context-aware list of questions to collaboratively gather client requirements for a document processing application.
|
| 325 |
+
Use the list below as a baseline. Generate additional, relevant questions on top of this baseline where appropriate.
|
| 326 |
+
Use the client's context to add clarity or relevance to the question.
|
| 327 |
+
Each question should provide actionable insights to uncover critical details about client needs and Sample Answers as guidance to the client to answer the questions.
|
| 328 |
+
### Areas to Cover:
|
| 329 |
+
---
|
| 330 |
+
Document Types:
|
| 331 |
+
<client context>, What specific types of documents will the application need to process (e.g., invoices, legal contracts, ID forms)?
|
| 332 |
+
<client context>, Are there specific complexities or variations in these documents that we should account for (e.g., multi-page documents, handwritten content)?
|
| 333 |
+
Inputs and Outputs:
|
| 334 |
+
<client context>, What are the expected input formats (e.g., PDFs, images, scanned documents)?
|
| 335 |
+
<client context>, What should the processed outputs look like (e.g., structured data, summaries, reports)?
|
| 336 |
+
<client context>, Are there any specific formatting requirements for outputs?
|
| 337 |
+
Document Quality:
|
| 338 |
+
<client context>, Are the documents typically clean and structured, or will the application need preprocessing capabilities (e.g., OCR, noise reduction)?
|
| 339 |
+
<client context>, Do you foresee any challenges with document quality, such as low resolution or inconsistent formatting?
|
| 340 |
+
Workflow Mapping:
|
| 341 |
+
<client context>, Can you describe your current document processing workflow?
|
| 342 |
+
<client context>, What are the major pain points or inefficiencies in the current process?
|
| 343 |
+
<client context>, Which parts of the workflow involve manual interventions, and how would you like to streamline them?
|
| 344 |
+
Integration Points:
|
| 345 |
+
<client context>, What existing systems or third-party tools does the application need to integrate with (e.g., CRMs, ERPs, cloud storage, OCR tools)?
|
| 346 |
+
<client context>, Are there specific APIs, databases, or platforms already in use that we need to consider?
|
| 347 |
+
Security and Compliance:
|
| 348 |
+
<client context>, What security measures are required to protect the data processed by the application?
|
| 349 |
+
<client context>, Are there any industry-specific compliance standards the application must adhere to (e.g., GDPR, HIPAA)?
|
| 350 |
+
Scalability and Performance:
|
| 351 |
+
<client context>, What is the expected volume of documents the application should handle on a daily/weekly/monthly basis?
|
| 352 |
+
<client context>, Are there performance benchmarks or response time requirements that the application must meet?
|
| 353 |
+
User Management and Access Control:
|
| 354 |
+
<client context>, What user roles and permissions will be needed within the application?
|
| 355 |
+
<client context>, How should user authentication and authorization be managed?
|
| 356 |
+
Reporting and Analytics:
|
| 357 |
+
<client context>, What types of analytics or reporting capabilities do you require within the application?
|
| 358 |
+
<client context>, Do you need real-time reporting, or are batch processes sufficient?
|
| 359 |
+
Deployment and Maintenance:
|
| 360 |
+
<client context>, Do you have any preferences for the deployment environment (e.g., cloud-based, on-premises)?
|
| 361 |
+
<client context>, What are your requirements for application maintenance and support post-deployment?
|
| 362 |
+
|
| 363 |
+
Instructions:
|
| 364 |
+
Replace <client context> with relevant information derived from the provided client background.
|
| 365 |
+
Only provide the list of formatted questions without any additional introduction or summary.
|
| 366 |
+
""",
|
| 367 |
inputs=['project_detail'],
|
| 368 |
outputs=['generated_page_follow_up_questions'],
|
| 369 |
model=ModelType.O1_MINI,
|
|
|
|
| 380 |
),
|
| 381 |
|
| 382 |
"generate_further_follow_up_questions": PromptConfig(
|
| 383 |
+
prompt=
|
| 384 |
+
"""
|
| 385 |
+
You are an AI Solution Expert with extensive experience in developing both intelligent chatbots and robust document extraction systems for startups. You will be provided with client background information pertaining to their project requirements, which may include a chatbot solution, a document extraction solution, or both.
|
| 386 |
+
|
| 387 |
+
Your task is to:
|
| 388 |
+
1. Determine the Project Scope:
|
| 389 |
+
Identify whether the project involves only a chatbot solution, only a document extraction solution, or a hybrid of both.
|
| 390 |
+
2.Identify Gaps and Clarify Requirements:
|
| 391 |
+
- Generate highly specific and actionable follow-up questions to clarify underlying needs.
|
| 392 |
+
- Utilize frameworks such as the 5 Whys and root cause analysis for deeper exploration.
|
| 393 |
+
- Ensure questions are tailored to the identified project scope (Chatbot, Document Extraction, or both).
|
| 394 |
+
|
| 395 |
+
Requirements:
|
| 396 |
+
You need to FULLY read the input which is given below client background information.
|
| 397 |
+
Generate follow-up questions to identify missing details or ambiguities.
|
| 398 |
+
Use specific references to prior responses for continuity. For example: "You mentioned [context]. Can you elaborate on [specific aspect]?"
|
| 399 |
+
Apply the 5 Whys to delve deeper where necessary. For example: "Why do call centers become overloaded during month-end? Are there specific processes causing bottlenecks?"
|
| 400 |
+
Highlight systemic issues where patterns emerge (e.g., manual processes across multiple challenges).
|
| 401 |
+
|
| 402 |
+
# Output Format:
|
| 403 |
+
# <index><question>(sample answers)
|
| 404 |
+
|
| 405 |
+
Just return the generated list of follow up questions as string and nothing else.
|
| 406 |
+
""",
|
| 407 |
inputs=["project_detail"],
|
| 408 |
outputs=["generated_engage_further_follow_up_questions"],
|
| 409 |
model=ModelType.O1_MINI,
|
| 410 |
+
description="Generate Engage Further Follow Up Questions",
|
| 411 |
step="Chatbot Prompt Editors",
|
| 412 |
ui={
|
| 413 |
"generate_further_follow_up_questions_prompt_editor": UIConfig(
|
| 414 |
component_type=UIComponentType.TEXTBOX,
|
| 415 |
+
label="Engage Further Follow Up Questions Prompt",
|
| 416 |
lines=20,
|
| 417 |
interactive=True
|
| 418 |
)
|
|
|
|
| 420 |
),
|
| 421 |
|
| 422 |
"generate_prd": PromptConfig(
|
| 423 |
+
prompt=
|
| 424 |
+
"""
|
| 425 |
+
Rewrite this for clarity while keeping all specific details, metrics, and constraints.
|
| 426 |
+
Please take note of the time constraint to build the MVP.
|
| 427 |
+
Do not include context or assumptions beyond the input provided.
|
| 428 |
+
Do not also exclude any input provided.
|
| 429 |
+
Structure the document to ensure clarity and logical flow.
|
| 430 |
+
Make sure to make the title "Project Requirements".
|
| 431 |
+
""",
|
| 432 |
inputs=["project_detail"],
|
| 433 |
outputs=["generated_prd"],
|
| 434 |
model=ModelType.O1_MINI,
|
|
|
|
| 457 |
),
|
| 458 |
|
| 459 |
"generate_intent_list": PromptConfig(
|
| 460 |
+
prompt=
|
| 461 |
+
"""
|
| 462 |
+
You are an solution architect and project manager with 20+ years of experience in building chatbots and AI-powered systems.
|
| 463 |
+
Your task is to analyze the provided project requirement document and help me understand the complexity of the project by defining ALL possible intents and workflows for each requirement.
|
| 464 |
+
Additionally, anticipate and suggest realistic, real-life intents that might have been overlooked by the client but are critical for a robust and user-friendly chatbot. You can reference **how other chatbots in the same industry are functioning** and suggest intents that are commonly provided by competitors but may not have been explicitly mentioned by the client. List down these suggestion in one seperate table.
|
| 465 |
+
|
| 466 |
+
Instruction:
|
| 467 |
+
1. **Break Down Requirements**: Identify all the client requirements from the document.
|
| 468 |
+
2. **Define ALL Possible Intents and Workflows**: For each requirement, list ALL possible intents and their corresponding workflows. - Use "→" to represent the flow between steps.
|
| 469 |
+
- Provide your analysis in a clear, highly readable and structured table format. The intents to consider are:
|
| 470 |
+
- Simple
|
| 471 |
+
- Complex
|
| 472 |
+
- Multi-Step
|
| 473 |
+
- Single-Step
|
| 474 |
+
- Fallback.Focus on business-centric fallback (e.g., "Order Management Fallback" should address specific order-related issues like invalid SKU, payment failure, or inventory unavailability)
|
| 475 |
+
- Others (if applicable)
|
| 476 |
+
|
| 477 |
+
Output Format:
|
| 478 |
+
Present the analysis in a tabular format with the following structure:
|
| 479 |
+
- Each requirement as the title of a separate table.
|
| 480 |
+
- **Columns**:
|
| 481 |
+
- Intent Type (e.g., Simple, Complex, Multi-Step, etc.)
|
| 482 |
+
- Intent (e.g., Order Status Inquiry, Track Order Progress, etc.)
|
| 483 |
+
- Workflow (describe the technical/logical steps using "→" and numbered steps, e.g., "1. Extract user input → 2. Query database → 3. Return result").
|
| 484 |
+
""",
|
| 485 |
inputs=["generated_prd"],
|
| 486 |
outputs=["generated_intent_list"],
|
| 487 |
model=ModelType.O1_MINI,
|
|
|
|
| 510 |
),
|
| 511 |
|
| 512 |
"generate_plan_test_components": PromptConfig(
|
| 513 |
+
prompt=
|
| 514 |
+
"""
|
| 515 |
+
Context:
|
| 516 |
+
You are an expert in software project planning and testing. Your task is to create a highly detailed, actionable, and project-specific Component List for a software project, focusing exclusively on the Planning and Testing phases. excluding Development phase. The response must align with the project's goals, technical stack, and compliance requirements, ensuring granularity, specificity, and adherence to the provided Project Requirement Document (PRD).
|
| 517 |
+
|
| 518 |
+
Instructions:
|
| 519 |
+
Break the project into the following phases:
|
| 520 |
+
1. Planning Phase ( Potention Focus: Requirement gathering,Technical architecture design, Resource Allocation.. etc)
|
| 521 |
+
2. Testing Phase ( Potention Focus: Integration testing, System testing, User Acceptance Testing (UAT) )
|
| 522 |
+
|
| 523 |
+
Components:
|
| 524 |
+
For each phase, include project-specific components that align with the goal of developing the software Project. Break down each phase into granular sub-components, ensuring specificity and alignment with the PRD.
|
| 525 |
+
Use the PRD to extract relevant, granular components that reflect deliverables unique to this project.
|
| 526 |
+
|
| 527 |
+
Tech Stack:
|
| 528 |
+
Backend: FastAPI, Python
|
| 529 |
+
Chatbot: Chatbot Builder , COZE , Yellow.ai
|
| 530 |
+
Infrastructure: AWS, PostgreSQL, Redis, Docker, Alembic
|
| 531 |
+
|
| 532 |
+
Output Format:
|
| 533 |
+
Use bullet points for clarity and ensure each component is concise yet descriptive.
|
| 534 |
+
Include sub-bullets for tasks or subcomponents where necessary to provide additional detail.
|
| 535 |
+
""",
|
| 536 |
inputs=["generated_prd"],
|
| 537 |
outputs=["generated_plan_test_components"],
|
| 538 |
model=ModelType.O1_MINI,
|
| 539 |
+
description="Generate Planning and Testing Components",
|
| 540 |
step="Step 1 : Scope & Components",
|
| 541 |
ui={
|
| 542 |
"generate_plan_test_components_prompt_editor": UIConfig(
|
|
|
|
| 561 |
),
|
| 562 |
|
| 563 |
"generate_page_dev_components": PromptConfig(
|
| 564 |
+
prompt=
|
| 565 |
+
"""
|
| 566 |
+
As a Senior Software Architect with 20+ years of experience, you are tasked to generate a detailed, actionable, and project-specific component list exclusively for the development phase of the project. The list must align with the project's goals, technical stack, and compliance requirements as outlined in the provided Project Requirement Document (PRD), ensuring granularity and specificity.
|
| 567 |
+
|
| 568 |
+
**Specific Requirements:**
|
| 569 |
+
1. Extract relevant **granular components** from the PRD that reflect the tasks and deliverables unique to this project.
|
| 570 |
+
2. Components should directly reference functionalities or deliverables related to the project.
|
| 571 |
+
3. Prioritize components that provide high business value, such as core functionality.
|
| 572 |
+
4. Organize components into logical categories such as Frontend, Backend, Integration Development, etc., with further subdivisions as needed. Avoid Testing, Support and Maintenance, Documentation, and Training components.
|
| 573 |
+
5. Ensure deliverables focus entirely on outcomes and deliverables, and consider edge cases, avoiding unnecessary instructions (i.e., avoid filler words).
|
| 574 |
+
6. Identify key business logic and special edge cases that need to be considered during development, which could impact the system's robustness or functionality.
|
| 575 |
+
7. **Include a separate section titled "Special Edge Cases Considerations"** to explicitly address unhappy paths. The deliverables in this section should focus solely on development outcomes to address these scenarios.
|
| 576 |
+
|
| 577 |
+
**Output Format:**
|
| 578 |
+
- Title: Component Name as Table Title (e.g., "Frontend Components")
|
| 579 |
+
- Table Structure:
|
| 580 |
+
- **Subcomponent**: Subcomponent name (e.g., "User Authentication and Authorization").
|
| 581 |
+
- **Task**: Task name (e.g., "Login Interface").
|
| 582 |
+
- **Deliverables**: Lists of technical outcomes or deliverables (e.g., "1. Deliverable 1 2. Deliverable 2 3. Deliverable ..."), as much as possible.
|
| 583 |
+
- **Special Edge Cases Considerations**: A separate table to address unhappy paths, with the same structure as above.
|
| 584 |
+
|
| 585 |
+
**Example:**
|
| 586 |
+
Frontend Component
|
| 587 |
+
| **Component** | **Task** | **Deliverables** |
|
| 588 |
+
|--------------------------------|------------------------------|----------------------------------------------------------------------------------------------------------|
|
| 589 |
+
| Document Upload Interface | Implement File Upload | 1. React-based file upload component<br>2. Drag-and-drop functionality<br>3. Progress bar for uploads |
|
| 590 |
+
|
| 591 |
+
**Special Edge Cases Considerations**
|
| 592 |
+
| **Component** | **Task** | **Deliverables** |
|
| 593 |
+
|--------------------------------|------------------------------|----------------------------------------------------------------------------------------------------------|
|
| 594 |
+
| Input Validation | Handle Invalid Inputs | 1. File format validation logic<br>2. File size validation logic<br>3. Error messaging UI for invalid inputs |
|
| 595 |
+
|
| 596 |
+
**Tech Stack:**
|
| 597 |
+
- Backend: FastAPI, Python
|
| 598 |
+
- Frontend: React
|
| 599 |
+
- Infrastructure: AWS, PostgreSQL, Redis, Docker, Alembic
|
| 600 |
+
|
| 601 |
+
**Objective:**
|
| 602 |
+
The final output should deliver a **clear, actionable, and project-specific list of components**, with a separate section for handling unhappy paths. The goal is to provide a foundation for developing granular subcomponents and tasks, ensuring alignment with the unique requirements of this project. A logical grouping and a clean structure that enhance the table's clarity and technical usability is expected.
|
| 603 |
+
""",
|
| 604 |
inputs=["generated_prd"],
|
| 605 |
outputs=["generated_page_dev_components"],
|
| 606 |
model=ModelType.O1_MINI,
|
|
|
|
| 629 |
),
|
| 630 |
|
| 631 |
"generate_engage_dev_components": PromptConfig(
|
| 632 |
+
prompt=
|
| 633 |
+
"""
|
| 634 |
+
**Role**:
|
| 635 |
+
You are a technical project manager and software architect specializing in chatbot development.
|
| 636 |
+
Your task is to create a granular "Development Component List" by extracting components from the **Project Requirement Document (PRD)** and the **Chatbot Intent List (CIL)**.
|
| 637 |
+
The output should align with the **project's specific goals** and focus on **technical implementation**.
|
| 638 |
+
|
| 639 |
+
### **Objectives**:
|
| 640 |
+
1. **Complements the CIL**: Ensure the components directly support the intents and workflows defined in the CIL.
|
| 641 |
+
2. **Aligns with the PRD**: Incorporate project-specific goals, business logic, and technical requirements from the PRD.
|
| 642 |
+
3. **Focus on Technical Implementation**: Provide actionable development tasks and deliverables.
|
| 643 |
+
4. **Project-Specific**: Avoid generic components; extract details directly from the PRD and CIL.
|
| 644 |
+
5. **Granular and Readable**: Maintain a balance between granularity and readability for actionable outputs.
|
| 645 |
+
|
| 646 |
+
**Key Focus**:
|
| 647 |
+
- Translate the **intents, workflows, fallbacks, and unhappy paths** from the CIL into **specific development deliverables** or tasks.
|
| 648 |
+
- Ensure that the deliverables are **actionable** and **context-aware**, aligning with the project's technical stack and business requirements.
|
| 649 |
+
|
| 650 |
+
### **Inputs**:
|
| 651 |
+
1. **PRD**: Contains functional, non-functional, technical, and compliance requirements for the chatbot project.
|
| 652 |
+
2. **CIL**: Lists intents the chatbot will handle, including **fallbacks** and **unhappy paths** with their corresponding workflows.
|
| 653 |
+
|
| 654 |
+
---
|
| 655 |
+
|
| 656 |
+
### **Process**:
|
| 657 |
+
1. **Read and Analyze the PRD and CIL**:
|
| 658 |
+
- Carefully review the PRD to understand the **project's specific goals, business logic, and technical requirements**.
|
| 659 |
+
- Review the CIL to identify the intents, workflows, fallbacks, and unhappy paths the chatbot will handle.
|
| 660 |
+
|
| 661 |
+
2. **Extract Granular Components**:
|
| 662 |
+
- Identify *ALL components* in the PRD and the CIL.
|
| 663 |
+
- Components should directly reference functionalities or deliverables related to the project.
|
| 664 |
+
- Identify key business logic.
|
| 665 |
+
- Prioritize components that provide high business value, such as core functionality.
|
| 666 |
+
- Organize components into logical categories. Avoid Testing, Support and Maintenance, Documentation and Training components.
|
| 667 |
+
|
| 668 |
+
3. **Identify Unhappy Paths and Fallbacks**:
|
| 669 |
+
- For each intent including the suggested or additional intents, identify unhappy paths or fallbacks (e.g., errors, exceptions, or edge cases) provided in the CIL. Define **specific development deliverables** or tasks. Examples include:
|
| 670 |
+
- **Order Creation**: Implement SKU validation logic and inventory availability checks.
|
| 671 |
+
- **Payment Processing**: Integrate payment retry mechanisms and notify users of payment status.
|
| 672 |
+
- **Document Extraction**: Add field validation logic and manual upload options for failed extractions.
|
| 673 |
+
- **Input Validation**: Implement file size and type checks, and provide fallback instructions for unsupported inputs.
|
| 674 |
+
- Ensure that the deliverables are **actionable** and **context-aware**.
|
| 675 |
+
|
| 676 |
+
---
|
| 677 |
+
|
| 678 |
+
### **Tech Stack**:
|
| 679 |
+
- **Backend**: FastAPI, Python
|
| 680 |
+
- **Chatbot Tools**: Chatbot Builder , COZE , Yellow.ai
|
| 681 |
+
- **Infrastructure**: AWS, PostgreSQL, Redis, Docker, Alembic
|
| 682 |
+
|
| 683 |
+
---
|
| 684 |
+
|
| 685 |
+
### **Output**:
|
| 686 |
+
- Compile a list of components from the PRD and CIL.
|
| 687 |
+
- Use a clear, tabular format with **project-specific context** for each component:
|
| 688 |
+
- Avoid using "Handle" for the Subcomponent naming.
|
| 689 |
+
|
| 690 |
+
| **Component** | **Subcomponent** | **Deliverables** |
|
| 691 |
+
|---------------------|------------------------|--------------------------------|
|
| 692 |
+
| **<Component 1>** | **<Subcomponent 1>** | 1. <Deliverable 1> <br> 2. <Deliverable 2> <br> 3. <Deliverable 3> |
|
| 693 |
+
|
| 694 |
+
Return the final tables and nothing else. Do not provide a summary at the end.
|
| 695 |
+
""",
|
| 696 |
inputs=["generated_prd" , "generated_intent_list"],
|
| 697 |
outputs=["generated_engage_dev_components"],
|
| 698 |
model=ModelType.O1_MINI,
|
|
|
|
| 721 |
),
|
| 722 |
|
| 723 |
"reformat_page_dev_components": PromptConfig(
|
| 724 |
+
prompt=
|
| 725 |
+
"""
|
| 726 |
+
As a Senior Software Architect with 20+ years of experience, you are tasked to reformat the generated development components for a document extraction project to ensure consistent and standardized naming conventions. The reformatted components must align with the project's goals, technical stack, and compliance requirements as outlined in the provided Project Requirement Document (PRD).
|
| 727 |
+
|
| 728 |
+
**Specific Requirements:**
|
| 729 |
+
1. **Standardize Naming Conventions**:
|
| 730 |
+
- Use **descriptive and intuitive names** for components, subcomponents, tasks, and deliverables.
|
| 731 |
+
- Ensure naming is **consistent across all tables** (Frontend, Backend, Integration, Infrastructure, Database, and Special Edge Cases).
|
| 732 |
+
- Avoid overly technical jargon unless necessary for clarity.
|
| 733 |
+
- Use **action-oriented language** for tasks and deliverables (e.g., "Implement file upload functionality" instead of "File upload functionality").
|
| 734 |
+
|
| 735 |
+
2. **Common Web Development Document Extraction Components**:
|
| 736 |
+
- Include standard components such as:
|
| 737 |
+
- **Document Upload Interface**
|
| 738 |
+
- **Document Processing Engine**
|
| 739 |
+
- **Data Validation Module**
|
| 740 |
+
- **OCR Integration**
|
| 741 |
+
- **Data Reconciliation Module**
|
| 742 |
+
- **Report Generation Interface**
|
| 743 |
+
- **User Authentication and Authorization**
|
| 744 |
+
- **Notification and Alert System**
|
| 745 |
+
- **API Integrations**
|
| 746 |
+
- **Database Schema Design**
|
| 747 |
+
- **Error Handling and Logging**
|
| 748 |
+
- **Scalability and Load Balancing**
|
| 749 |
+
|
| 750 |
+
3. **Reformat the Generated Components**:
|
| 751 |
+
- Ensure all components, subcomponents, tasks, and deliverables follow the standardized naming conventions.
|
| 752 |
+
- Group related tasks and deliverables under the appropriate subcomponents.
|
| 753 |
+
- Maintain a clean and logical structure for readability and technical usability.
|
| 754 |
+
|
| 755 |
+
**Output Format:**
|
| 756 |
+
- Title: Component Name as Table Title (e.g., "Frontend Components")
|
| 757 |
+
- Table Structure:
|
| 758 |
+
- **Subcomponent**: Subcomponent name (e.g., "Document Upload Interface").
|
| 759 |
+
- **Task**: Task name (e.g., "Implement file upload functionality").
|
| 760 |
+
- **Deliverables**: Lists of technical outcomes or deliverables
|
| 761 |
+
""",
|
| 762 |
inputs=["generated_page_dev_components"],
|
| 763 |
outputs=["reformatted_dev_components"],
|
| 764 |
model=ModelType.O1_MINI,
|
|
|
|
| 787 |
),
|
| 788 |
|
| 789 |
"reformat_engage_dev_components": PromptConfig(
|
| 790 |
+
prompt=
|
| 791 |
+
"""
|
| 792 |
+
**Role**:
|
| 793 |
+
You are a technical project manager and software architect responsible for ensuring consistent naming conventions in chatbot development. Your task is to standardize the naming of common chatbot components and subcomponents while preserving all existing components and subcomponents, including unique, domain-specific components.
|
| 794 |
+
|
| 795 |
+
### **Process**:
|
| 796 |
+
1. **Analyze the Development Component List (DCL)**:
|
| 797 |
+
- Identify components and subcomponents that are common across chatbot projects (e.g., "Chatbot Engine" vs. "Chatbot Interface").
|
| 798 |
+
- Identify domain-specific components that should remain unchanged.
|
| 799 |
+
- Ensure that technical terminology and categorization are consistent across component , particularly for components of similar concepts to maintain uniformity.
|
| 800 |
+
|
| 801 |
+
2. **Standardize Common Chatbot Components**:
|
| 802 |
+
- Cross-check common components against a standardized reference list (see below).
|
| 803 |
+
- Rename only the common chatbot components to their standardized equivalent while keeping the intended meaning intact.
|
| 804 |
+
- Ensure all subcomponents are retained and placed under the correct standardized component.
|
| 805 |
+
|
| 806 |
+
3. **Preserve All Existing Components and Subcomponents**:
|
| 807 |
+
- Ensure that no components or subcomponents are removed during standardization
|
| 808 |
+
- If a component is highly specific to a particular use case, do not modify it
|
| 809 |
+
- Retain any unique features that are tailored to the project
|
| 810 |
+
- Verify that each component has appropriate subcomponents and deliverables
|
| 811 |
+
|
| 812 |
+
### **Standardized Naming Conventions (for Common Chatbot Components)**:
|
| 813 |
+
| **Standard Component** | **Common Subcomponents** |
|
| 814 |
+
|------------------------------|--------------------------------|
|
| 815 |
+
| Core Chatbot Engine | Intent Recognition, NER, Context Management, Dialog Flow, Response Generation, Multi-turn Handling |
|
| 816 |
+
| LLM Processing Pipeline | Text Preprocessing, Entity Extraction |
|
| 817 |
+
| Integration Layer | API Gateway, CRM/ERP Integration, Knowledge Base Integration, Third-party Services |
|
| 818 |
+
| Data Management | ETL Pipelines, Database Operations, Data Versioning, Cache Management |
|
| 819 |
+
| Security and Compliance | Authentication, Authorization, Data Encryption, Audit Logging, GDPR/PDPA Compliance |
|
| 820 |
+
| Infrastructure | AWS/Cloud Setup, Docker Containerization, CI/CD Pipeline, Environment Management |
|
| 821 |
+
| Error Handling | Error Logging, Exception Management, Fallback Responses, Escalation Workflows |
|
| 822 |
+
| User Management | User Authentication, Profile Management, Session Handling, Role-based Access |
|
| 823 |
+
| Monitoring & Analytics | Performance Metrics, Usage Analytics, Error Tracking, Real-time Dashboards |
|
| 824 |
+
| Feedback & Learning | User Feedback Collection, Model Performance Tracking, A/B Testing, Continuous Learning |
|
| 825 |
+
| Conversation Management | Context Retention, Topic Switching, Language Support, Flow Control |
|
| 826 |
+
| Channel Management | Web Integration, Mobile Support, Social Media Platforms |
|
| 827 |
+
| AI/ML Components | LLM Integration, RAG Implementation, Fine-tuning Pipeline, Vector Store Management |
|
| 828 |
+
| Business Logic Layer | Custom Rules Engine, Workflow Automation, Business Process Integration |
|
| 829 |
+
| Knowledge Management | Content Management, FAQ Updates, Knowledge Graph, Document Processing |
|
| 830 |
+
| Human Handoff | Agent Routing, Queue Management, Conversation History Transfer, Live Chat Support |
|
| 831 |
+
| Performance & Scaling | Load Balancing, Auto-scaling, Performance Optimization, Resource Management |
|
| 832 |
+
| Development Tools | Testing Framework, Debugging Tools, Development Environment, Documentation |
|
| 833 |
+
|
| 834 |
+
### **Output**:
|
| 835 |
+
- Return the Updated Component List in a clear, structured format.
|
| 836 |
+
- Maintain the tabular format while applying consistent naming conventions.
|
| 837 |
+
- Each component should be distinct and well-defined.
|
| 838 |
+
- No repeated components or overlapping functionality.
|
| 839 |
+
- Ensure that all components and subcomponents are included in the output.
|
| 840 |
+
- Provide only the corrected table and nothing else.
|
| 841 |
+
""",
|
| 842 |
inputs=["generated_engage_dev_components"],
|
| 843 |
outputs=["reformatted_dev_components"],
|
| 844 |
model=ModelType.O1_MINI,
|
|
|
|
| 867 |
),
|
| 868 |
|
| 869 |
"reformat_hybrid_dev_components": PromptConfig(
|
| 870 |
+
prompt=
|
| 871 |
+
"""
|
| 872 |
+
You are an expert in software architecture and systems integration. Your task is to merge two component lists: (1) a chatbot development component list and (2) a general/document-related component list. The goal is to create a unified list that consolidates overlapping elements while eliminating redundancies.
|
| 873 |
+
|
| 874 |
+
Follow these steps:
|
| 875 |
+
|
| 876 |
+
Identify Similarities: Compare both lists and merge similar components without losing granularity. Retain specific steps and detailed tasks.
|
| 877 |
+
Remove Redundancies: Eliminate duplicate entries by consolidating their tasks and deliverables while preserving the essential details of each task. Ensure that no components are removed
|
| 878 |
+
Structure Logically: Organize the final list into major categories (e.g., Frontend, Backend, Document Handling.)
|
| 879 |
+
|
| 880 |
+
Output Format: Present the final list in a structured tabular format with the following columns:
|
| 881 |
+
Component: The high-level functionality grouping.
|
| 882 |
+
Subcomponent: A more granular breakdown of each function.
|
| 883 |
+
Deliverables: A list of specific tasks associated with the subcomponent. Avoid Filler words("Enable", "Support", "Implement")
|
| 884 |
+
|
| 885 |
+
Output:
|
| 886 |
+
A refined, logically structured, and optimized merged component list in tabular format.
|
| 887 |
+
|
| 888 |
+
""",
|
| 889 |
inputs=["generated_engage_dev_components","generated_page_dev_components"],
|
| 890 |
outputs=["reformatted_dev_components"],
|
| 891 |
model=ModelType.O1_MINI,
|
| 892 |
+
description="Reformat Hybrid Development Components",
|
| 893 |
step="Step 1 : Scope & Components",
|
| 894 |
ui={
|
| 895 |
"reformat_hybrid_dev_components_prompt_editor": UIConfig(
|
|
|
|
| 914 |
),
|
| 915 |
|
| 916 |
"generate_intents_csv": PromptConfig(
|
| 917 |
+
prompt=
|
| 918 |
+
"""
|
| 919 |
+
You will be provided with an intent list. Your task is to convert the entire list into a CSV string, ensuring that all rows from the list are included without omission. The CSV should contain the following columns: "intent_type", "intent", and "workflow". Follow these rules:
|
| 920 |
+
|
| 921 |
+
Enclose all text values, including the column headers, in double quotes ("").
|
| 922 |
+
Retain numeric values as-is, without any quotes.
|
| 923 |
+
Ensure the CSV string is formatted correctly, with commas separating the values and each row represented on a new line.
|
| 924 |
+
Your response must include every row and correctly reflect the structure and content of the intent list. Just return the CSV text and nothing else. Omit any code guards ```
|
| 925 |
+
""",
|
| 926 |
inputs=["generated_intent_list"],
|
| 927 |
outputs=["generated_intents_csv"],
|
| 928 |
model=ModelType.O1_MINI,
|
|
|
|
| 946 |
),
|
| 947 |
|
| 948 |
"generate_page_plan_test_mandays": PromptConfig(
|
| 949 |
+
prompt=
|
| 950 |
+
"""
|
| 951 |
+
You are an experienced project manager tasked to create a detailed task breakdown for a project based on the planning and testing component list.
|
| 952 |
+
|
| 953 |
+
Objective:
|
| 954 |
+
Generate a structured CSV output with manday estimates for each planning and testing component.
|
| 955 |
+
|
| 956 |
+
Instructions:
|
| 957 |
+
1. Use the planning and testing component list to identify all components
|
| 958 |
+
2. For each component:
|
| 959 |
+
- Estimate mandays between 0.2 and 5 days based on real-world complexity
|
| 960 |
+
- Provide a clear description of deliverables and outcomes
|
| 961 |
+
- Ensure estimates account for potential delays or complications
|
| 962 |
+
|
| 963 |
+
Output Format Requirements:
|
| 964 |
+
- Generate a CSV with EXACTLY these column headers: "component,mandays,description"
|
| 965 |
+
- Each row must have all three columns filled
|
| 966 |
+
- Numeric values should not be quoted
|
| 967 |
+
- Text values must be enclosed in double quotes
|
| 968 |
+
- No empty rows or missing values
|
| 969 |
+
|
| 970 |
+
Example Output:
|
| 971 |
+
component,mandays,description
|
| 972 |
+
"Project Planning",2.5,"Detailed project planning including timeline and resource allocation"
|
| 973 |
+
"Requirements Analysis",1.5,"Analysis and documentation of system requirements"
|
| 974 |
+
|
| 975 |
+
Return only the CSV content, no code blocks or additional text.
|
| 976 |
+
""",
|
| 977 |
inputs=["generated_plan_test_components"],
|
| 978 |
outputs=["generated_plan_test_mandays"],
|
| 979 |
model=ModelType.O1_MINI,
|
| 980 |
+
description="Generate Page planning and testing mandays",
|
| 981 |
step="Step 2 : Mandays & Quotation",
|
| 982 |
sub_step="Step 2.1 : Generate Mandays",
|
| 983 |
ui={
|
|
|
|
| 996 |
),
|
| 997 |
|
| 998 |
"generate_engage_plan_test_mandays": PromptConfig(
|
| 999 |
+
prompt=
|
| 1000 |
+
"""
|
| 1001 |
+
You are an experienced project manager tasked to create a detailed task breakdown for a project based on the planning and testing component list and the development component list.
|
| 1002 |
+
|
| 1003 |
+
Objective:
|
| 1004 |
+
Generate a structured output organized by component. Provide a table with the following columns:
|
| 1005 |
+
- Component: The name of component, as defined in the component list. ()
|
| 1006 |
+
- Manday: The estimated effort required for a one-person team to complete the task, based on real-world complexity and scope.
|
| 1007 |
+
- Description: A detailed explanation of the task, including deliverables or outcomes, as defined in the component list.
|
| 1008 |
+
|
| 1009 |
+
Instruction:
|
| 1010 |
+
1. Input:
|
| 1011 |
+
- Use the planning and testing component list identify all components and subcomponents. The hierarchy of the document is Phase -> Component -> Subcomponent -> Task
|
| 1012 |
+
|
| 1013 |
+
2. Manday Estimation:
|
| 1014 |
+
Assign a manday estimate for each component based on the complexity and effort required, ensuring it falls between 0.2 and 5 days.
|
| 1015 |
+
Ensure estimates are based on real-world complexity and scope while accounting for potential delays or complications.
|
| 1016 |
+
|
| 1017 |
+
**Output Format**:
|
| 1018 |
+
Create a CSV file with the following columns:
|
| 1019 |
+
"component",,"subcomponent","mandays","description"
|
| 1020 |
+
Just return the csv text and NOTHING else, omit the ``` code guards.
|
| 1021 |
+
""",
|
| 1022 |
inputs=["generated_plan_test_components"],
|
| 1023 |
outputs=["generated_plan_test_mandays"],
|
| 1024 |
model=ModelType.O1_MINI,
|
| 1025 |
+
description="Generate Engage planning and testing mandays",
|
| 1026 |
step="Step 2 : Mandays & Quotation",
|
| 1027 |
sub_step="Step 2.1 : Generate Mandays",
|
| 1028 |
ui={
|
|
|
|
| 1041 |
),
|
| 1042 |
|
| 1043 |
"generate_hybrid_plan_test_mandays": PromptConfig(
|
| 1044 |
+
prompt=
|
| 1045 |
+
"""
|
| 1046 |
+
You are an experienced project manager tasked to create a detailed task breakdown for a Hybrid project involving both Document Extraction and Chatbot functionalities. The project involves planning and testing components related to document processing, extraction, user interactions, and conversational workflows.
|
| 1047 |
+
|
| 1048 |
+
Objective:
|
| 1049 |
+
Generate structured CSV outputs with manday estimates for each planning and testing component, separated into Document Extraction and Chatbot sections.
|
| 1050 |
+
|
| 1051 |
+
Instructions:
|
| 1052 |
+
1. Input:
|
| 1053 |
+
- Use the planning and testing component list to identify all components and subcomponents.
|
| 1054 |
+
- The hierarchy of the document is: Phase -> Component -> Subcomponent -> Task.
|
| 1055 |
+
|
| 1056 |
+
2. Manday Estimation:
|
| 1057 |
+
- Assign manday estimates for each component or subcomponent based on complexity and effort required, ranging from 0.2 to 5 days.
|
| 1058 |
+
- Ensure estimates account for real-world complexity, potential delays, and complications.
|
| 1059 |
+
|
| 1060 |
+
3. Output Format Requirements:
|
| 1061 |
+
- Generate TWO separate CSV files:
|
| 1062 |
+
- First, for the Document Extraction section:
|
| 1063 |
+
- Columns: "component, mandays, description".
|
| 1064 |
+
- Description must include deliverables and outcomes.
|
| 1065 |
+
- Second, for the Chatbot section:
|
| 1066 |
+
- Columns: "component, subcomponent, mandays, description".
|
| 1067 |
+
- Subcomponents must be clearly listed under each component.
|
| 1068 |
+
- Description must include deliverables and outcomes.
|
| 1069 |
+
- Clearly indicate Section Breaks between the two files by including:
|
| 1070 |
+
----SECTION BREAK----
|
| 1071 |
+
|
| 1072 |
+
4. Output:
|
| 1073 |
+
- Return **ONLY** the CSV content, no code blocks or additional text.
|
| 1074 |
+
- Ensure all rows have all columns filled.
|
| 1075 |
+
- Numeric values should not be quoted.
|
| 1076 |
+
- Text values must be enclosed in double quotes.
|
| 1077 |
+
- No empty rows or missing values.
|
| 1078 |
+
- Omit the ``` code guards.
|
| 1079 |
+
""",
|
| 1080 |
inputs=["generated_plan_test_components"],
|
| 1081 |
outputs=["generated_plan_test_mandays"],
|
| 1082 |
model=ModelType.O1_MINI,
|
| 1083 |
+
description="Generate Hybrid planning and testing mandays",
|
| 1084 |
step="Step 2 : Mandays & Quotation",
|
| 1085 |
sub_step="Step 2.1 : Generate Mandays",
|
| 1086 |
ui={
|
|
|
|
| 1099 |
),
|
| 1100 |
|
| 1101 |
"generate_dev_mandays": PromptConfig(
|
| 1102 |
+
prompt=
|
| 1103 |
+
"""
|
| 1104 |
+
You are an experienced project manager tasked to create a detailed task breakdown for a project based on the development component list.
|
| 1105 |
+
|
| 1106 |
+
Objective:
|
| 1107 |
+
Generate a structured output organized by component. Provide a table with the following columns:
|
| 1108 |
+
- Component: The name of component, as defined in the component list.
|
| 1109 |
+
- Subcomponent: The subcategory or module within the component, as defined in the component list.
|
| 1110 |
+
- Manday: The estimated effort required for a one-person team to complete the task, based on real-world complexity and scope.
|
| 1111 |
+
- Description: A detailed explanation of the task, including deliverables or outcomes, as defined in the component list.
|
| 1112 |
+
|
| 1113 |
+
Instruction:
|
| 1114 |
+
1. Input:
|
| 1115 |
+
- Use the planning and testing component list and the development component list to identify all components, subcomponents, tasks and subtasks.
|
| 1116 |
+
|
| 1117 |
+
2. Manday Estimation:
|
| 1118 |
+
For each subcomponent, estimate the manday based on the effort required for a single person to complete it,, ensuring it falls between 0.5 and 7 days.
|
| 1119 |
+
- Ensure estimates are based on real-world complexity and scope while accounting for potential delays or complications.
|
| 1120 |
+
|
| 1121 |
+
**Output Format**:
|
| 1122 |
+
Create a CSV file with the following columns:
|
| 1123 |
+
"component","subcomponent","mandays","description"
|
| 1124 |
+
Make sure you encapsulate all TEXT column in "", and keep numeric columns as is.
|
| 1125 |
+
Just return the csv text and NOTHING else, omit the ``` code guards.
|
| 1126 |
+
Numeric values should not be quoted
|
| 1127 |
+
Text values must be enclosed in double quotes
|
| 1128 |
+
""",
|
| 1129 |
inputs=["reformatted_dev_components"],
|
| 1130 |
outputs=["generated_dev_mandays"],
|
| 1131 |
model=ModelType.O1_MINI,
|
|
|
|
| 1149 |
),
|
| 1150 |
|
| 1151 |
"analyze_planning_testing_mandays": PromptConfig(
|
| 1152 |
+
prompt=
|
| 1153 |
+
"""
|
| 1154 |
+
You are an experienced project manager tasked with analyzing the provided planning and testing mandays estimates. Your goal is to identify the highest priority components that must be completed to build the MVP. Focus on components that deliver **immediate value to users** and are **critical for the core functionality** of the product.
|
| 1155 |
+
|
| 1156 |
+
Objective:
|
| 1157 |
+
Identify the highest priority planning and testing components that are critical for the MVP's core functionality and deliver immediate value to the business. Exclude all non-critical components that do not directly contribute to the MVP's primary functionality.
|
| 1158 |
+
|
| 1159 |
+
Key Guidelines:
|
| 1160 |
+
- Focus on Core Functionality: Only include components that are essential for the MVP to function and deliver immediate value to users.
|
| 1161 |
+
- Exclude Non-Critical Components: Do not include components related to advanced security, compliance, scalability, authentication, fallback mechanisms, or any feature that is not absolutely necessary for the MVP.
|
| 1162 |
+
- Prioritize Business Value: Ensure the selected components align with the business's core objectives and deliver measurable value.
|
| 1163 |
+
- Minimalistic Approach: Focus on the least effort required to deliver the most value.
|
| 1164 |
+
|
| 1165 |
+
Output Format Requirements:
|
| 1166 |
+
- Generate a CSV with EXACTLY these column headers: "component,mandays,description"
|
| 1167 |
+
- Each row must have all three columns filled
|
| 1168 |
+
- Numeric values should not be quoted
|
| 1169 |
+
- Text values must be enclosed in double quotes
|
| 1170 |
+
- No empty rows or missing values
|
| 1171 |
+
|
| 1172 |
+
Return only the CSV content, no code blocks or additional text.
|
| 1173 |
+
""",
|
| 1174 |
inputs=["generated_plan_test_mandays"],
|
| 1175 |
outputs=["identified_planning_testing_components"],
|
| 1176 |
model=ModelType.O1_MINI,
|
|
|
|
| 1194 |
),
|
| 1195 |
|
| 1196 |
"analyze_development_mandays": PromptConfig(
|
| 1197 |
+
prompt=
|
| 1198 |
+
"""
|
| 1199 |
+
You are an experienced project manager tasked with analyzing the provided development mandays estimates. Your goal is to assign a priority level to each development component based on its importance to the MVP's core functionality and business value. Focus exclusively on components that deliver immediate value to users and are critical for the core functionality of the product.
|
| 1200 |
+
|
| 1201 |
+
Key Guidelines:
|
| 1202 |
+
- **Focus on Core Functionality:** Assign priority levels based on how essential each component is for the MVP to function and deliver immediate value to users.
|
| 1203 |
+
- **Exclude Non-Critical Considerations:** Do not label components related to advanced security, compliance, scalability, authentication, fallback mechanisms, or any feature that is **NOT** absolutely necessary for the MVP as "high" priority.
|
| 1204 |
+
- **Prioritize Business Value:** Ensure the priority levels align with the business's core objectives and deliver measurable value.
|
| 1205 |
+
- **Minimalistic Approach:** Focus on the least effort required to deliver the most value when assigning priority levels.
|
| 1206 |
+
- **Assign Priority Levels:** Label each development component as "high," "medium," or "low" priority based on its importance to the MVP's core functionality and business value.
|
| 1207 |
+
|
| 1208 |
+
Objective:
|
| 1209 |
+
Assign a priority level ("high," "medium," or "low") to each development component, ensuring the output reflects the importance of each component to the MVP's core functionality and business value. Retain all original components in the list.
|
| 1210 |
+
|
| 1211 |
+
Important Notes:
|
| 1212 |
+
- If a component is not directly tied to the core functionality or can be deferred to a later phase, assign it a lower priority ("medium" or "low").
|
| 1213 |
+
- Do not exclude any components from the list, even if they are low priority.
|
| 1214 |
+
- Only assign "high" priority to components that are absolutely necessary for the MVP to function.
|
| 1215 |
+
|
| 1216 |
+
Output Format Requirements:
|
| 1217 |
+
Convert the entire list into a CSV string, ensuring that all rows from the list are included without omission. The CSV should contain the following columns: "component","subcomponent","mandays","description". Follow these rules:
|
| 1218 |
+
|
| 1219 |
+
Enclose all text values, including the column headers, in double quotes ("").
|
| 1220 |
+
Retain numeric values as-is, without any quotes.
|
| 1221 |
+
Ensure the CSV string is formatted correctly, with commas separating the values and each row represented on a new line.
|
| 1222 |
+
Your response must include every row and correctly reflect the structure and content of the intent list. Just return the CSV text and nothing else. Omit any code guards ```.
|
| 1223 |
+
""",
|
| 1224 |
inputs=["generated_dev_mandays"],
|
| 1225 |
outputs=["identified_development_components"],
|
| 1226 |
model=ModelType.O1_MINI,
|
|
|
|
| 1244 |
),
|
| 1245 |
|
| 1246 |
"analyze_MVP_intents": PromptConfig(
|
| 1247 |
+
prompt=
|
| 1248 |
+
"""
|
| 1249 |
+
You are an experienced project manager tasked with analyzing the provided intents mandays estimates. Your goal is to assign a priority level to each intents based on its importance to the MVP's core functionality and business value. Focus exclusively on intents that deliver immediate value to users and are critical for the core functionality of the product.
|
| 1250 |
+
|
| 1251 |
+
Key Guidelines:
|
| 1252 |
+
- **Focus on Core Functionality:** Assign priority levels based on how essential each intents is for the MVP to function and deliver immediate value to users.
|
| 1253 |
+
- **Exclude Non-Critical Considerations:** Do not label intents related to advanced security, compliance, scalability, authentication, fallback mechanisms, or any feature that is **NOT** absolutely necessary for the MVP as "high" priority.
|
| 1254 |
+
- **Prioritize Business Value:** Ensure the priority levels align with the business's core objectives and deliver measurable value.
|
| 1255 |
+
- **Minimalistic Approach:** Focus on the least effort required to deliver the most value when assigning priority levels.
|
| 1256 |
+
- **Assign Priority Levels:** Label each development intents as "high," "medium," or "low" priority based on its importance to the MVP's core functionality and business value.
|
| 1257 |
+
|
| 1258 |
+
Objective:
|
| 1259 |
+
Assign a priority level ("high," "medium," or "low") to each development intents , ensuring the output reflects the importance to the MVP's core functionality and business value. Retain all original components in the list.
|
| 1260 |
+
|
| 1261 |
+
Important Notes:
|
| 1262 |
+
- If a component is not directly tied to the core functionality or can be deferred to a later phase, assign it a lower priority ("medium" or "low").
|
| 1263 |
+
- Do not exclude any intents rom the list, even if they are low priority.
|
| 1264 |
+
- Only assign "high" priority to intents that are absolutely necessary for the MVP to function.
|
| 1265 |
+
|
| 1266 |
+
Output Format Requirements:
|
| 1267 |
+
Convert the entire list into a CSV string, ensuring that all rows from the list are included without omission. The CSV should contain the following columns: "intent_type", "intent", and "workflow". Follow these rules:
|
| 1268 |
+
|
| 1269 |
+
Enclose all text values, including the column headers, in double quotes ("").
|
| 1270 |
+
Retain numeric values as-is, without any quotes.
|
| 1271 |
+
Ensure the CSV string is formatted correctly, with commas separating the values and each row represented on a new line.
|
| 1272 |
+
Your response must include every row and correctly reflect the structure and content of the intent list. Just return the CSV text and nothing else. Omit any code guards ```.
|
| 1273 |
+
""",
|
| 1274 |
inputs=["generated_intent_list"],
|
| 1275 |
outputs=["identified_mvp_intents"],
|
| 1276 |
model=ModelType.O1_MINI,
|
|
|
|
| 1294 |
),
|
| 1295 |
|
| 1296 |
"recalculate_page_MVP_mandays": PromptConfig(
|
| 1297 |
+
prompt=
|
| 1298 |
+
"""
|
| 1299 |
+
Based on the identified priority components from the previous analysis, your task is to recalculate the mandays estimates to ensure they fit within the time given (e.g., days or weeks) in building the MVP mentioned in the Project Requirement Document (PRD).
|
| 1300 |
+
|
| 1301 |
+
Objective:
|
| 1302 |
+
Reread the entire PRD to identify the timelimit of the MVP, then recalculate the manday estimates for the identified priority development components to ensure they fit within the timeline specified in the Project Requirement Document (PRD) to build the MVP. Adjust development mandays while maintaining feasibility and ensuring core functionality delivery.
|
| 1303 |
+
|
| 1304 |
+
Key Guidelines:
|
| 1305 |
+
1. Convert Time Estimates: Convert all time estimates into raw mandays:
|
| 1306 |
+
- 1 week = 7 mandays
|
| 1307 |
+
- 1 month = 28-31 mandays
|
| 1308 |
+
- If input is in days, use as is.
|
| 1309 |
+
- If input is a range (e.g., 1-2 weeks), use the average (1.5 weeks = 7.5 mandays).
|
| 1310 |
+
2. **Preserve All Components:** Do not remove any components from the list, even if they are low priority.
|
| 1311 |
+
3. **Adjust Mandays Based on Priority:**
|
| 1312 |
+
- For **high priority components**, allocate the majority of mandays (e.g., 1-3) to ensure critical functionalities are minimally viable. However, components such as authentication, security, etc., can be set to 0.
|
| 1313 |
+
- For **medium priority components**, allocate minimal mandays (e.g., 1-2) or set them to 0, as these can be deferred without impacting core functionalities.
|
| 1314 |
+
- For **low priority components**, set mandays to 0, as these are not essential for the MVP.
|
| 1315 |
+
4. **Retain Planning/Testing Components:** All identified planning and testing components must be retained in the list but have their mandays set to 0. Do not remove them.
|
| 1316 |
+
5. **Iterative Adjustment:** If the total mandays for the development components still exceed the MVP timeline after the first adjustment, further reduce or set the mandays to 0 on high and medium priority components if necessary until the total fits within the timeline.
|
| 1317 |
+
- **MVP Timeline Constraint:** Ensure the final total mandays do not exceed the MVP timeline.
|
| 1318 |
+
6. **Justify Adjustments:** Provide a brief explanation for any adjustments made to the mandays, ensuring they align with the timeline and maintain the MVP's core functionality.
|
| 1319 |
+
|
| 1320 |
+
Output Format Requirements:
|
| 1321 |
+
- **Separate Planning/Testing Components and Development Components:**
|
| 1322 |
+
- Planning/Testing Components:
|
| 1323 |
+
component,mandays,description,priority
|
| 1324 |
+
"Requirements Analysis",0,"Critical user requirements and system specifications","High"
|
| 1325 |
+
- Development Components:
|
| 1326 |
+
component,subcomponent,mandays,description,priority
|
| 1327 |
+
"Frontend","Document Upload Interface",3,"Essential for core functionality of automated document processing","High"
|
| 1328 |
+
- Include the "Priority" column for all components.
|
| 1329 |
+
- Include the total mandays for the revised plan and confirm whether it fits within the MVP timeline.
|
| 1330 |
+
- Ensure the output is concise and actionable.
|
| 1331 |
+
|
| 1332 |
+
Important Notes:
|
| 1333 |
+
- If the total mandays still exceed the timeline after adjustments, prioritize further reductions in medium priority components while keeping high priority components as intact as possible.
|
| 1334 |
+
- Do not remove any components from the list, even if their mandays are reduced to 0.
|
| 1335 |
+
""",
|
| 1336 |
inputs=["identified_planning_testing_components", "identified_development_components" , "generated_prd"],
|
| 1337 |
outputs=["revised_mandays_estimates"],
|
| 1338 |
model=ModelType.O1_MINI,
|
|
|
|
| 1362 |
),
|
| 1363 |
|
| 1364 |
"recalculate_engage_MVP_mandays": PromptConfig(
|
| 1365 |
+
prompt=
|
| 1366 |
+
"""
|
| 1367 |
+
Based on the identified priority components and the identified priority intent list from the previous analysis , your task is to recalculate the mandays estimates to ensure they fit within the time given (e.g., days or weeks) in building the MVP mentioned in the Project Requirement Document (PRD).
|
| 1368 |
+
|
| 1369 |
+
Objective:
|
| 1370 |
+
Read the entire PRD and identify the time constraint ; Recalculate the manday estimates for both development components and intents to ensure the total combined mandays fit within the MVP timeline specified in the Project Requirement Document (PRD). Adjust mandays while maintaining feasibility and ensuring core functionality delivery. Retain all components and intents in the list, even if their mandays are set to 0.
|
| 1371 |
+
|
| 1372 |
+
Key Guidelines:
|
| 1373 |
+
1. Total Combined Mandays Constraint:
|
| 1374 |
+
The combined total mandays for development components and intents must not exceed MVP timeline.
|
| 1375 |
+
Ensure the total is calculated as:
|
| 1376 |
+
Total Combined Mandays = Development Components Mandays + Intents Mandays ≤ MVP timeline.
|
| 1377 |
+
Convert Time Estimates:
|
| 1378 |
+
Convert all time estimates into raw mandays:
|
| 1379 |
+
- 1 week = 7 mandays
|
| 1380 |
+
- 1 month = 28-31 mandays
|
| 1381 |
+
- If input is in days, use as is.
|
| 1382 |
+
- If input is a range (e.g., 1-2 weeks), use the average (1.5 weeks = 7.5 mandays).
|
| 1383 |
+
|
| 1384 |
+
2. Preserve All Components and Intents:
|
| 1385 |
+
|
| 1386 |
+
3. Do not remove any components or intents from the list, even if their mandays are set to 0.
|
| 1387 |
+
|
| 1388 |
+
4. Retain all planning and testing components but set their mandays to 0.
|
| 1389 |
+
|
| 1390 |
+
5. Adjust Mandays Based on Priority:
|
| 1391 |
+
- For high priority, allocate the majority of mandays to ensure critical functionalities are minimally viable. Significant reductions may be necessary for non-core features (e.g., authentication, security).
|
| 1392 |
+
- For medium priority, allocate minimal mandays or set them to 0, as these can be deferred without impacting core functionalities.
|
| 1393 |
+
- For low priority, set mandays to 0, as these are not essential for the MVP.
|
| 1394 |
+
|
| 1395 |
+
6. Iterative Adjustment:
|
| 1396 |
+
- If the total combined mandays still exceed the MVP timeline after the first adjustment, further reduce mandays for both high and medium priority components and intents until the total fits within the timeline.
|
| 1397 |
+
- Set mandays to 0 for non-essential components and intents if necessary, but do not remove them from the list.
|
| 1398 |
+
|
| 1399 |
+
7. Strict Calculation for Intents:
|
| 1400 |
+
Properly calculate the total mandays for development components and MVP intents. Ensure the total combined mandays for both development components and MVP intents DO NOT exceed the MVP timeline.
|
| 1401 |
+
|
| 1402 |
+
8. Justify Adjustments:
|
| 1403 |
+
- Provide a brief explanation for any adjustments made to the mandays, ensuring they align with the timeline and maintain the MVP's core functionality.
|
| 1404 |
+
|
| 1405 |
+
Output Format Requirements:
|
| 1406 |
+
- **Separate Planning/Testing Components , Development Components and MVP Intents:**
|
| 1407 |
+
- Planning/Testing Components:
|
| 1408 |
+
component,mandays,description,priority
|
| 1409 |
+
"Requirements Analysis",0,"Critical user requirements and system specifications","High"
|
| 1410 |
+
- Development Components:
|
| 1411 |
+
component,subcomponent,mandays,description,priority
|
| 1412 |
+
"Frontend","Document Upload Interface",3,"Essential for core functionality of automated document processing","High"
|
| 1413 |
+
- MVP Intents:
|
| 1414 |
+
intent_type,intent,workflow,mandays
|
| 1415 |
+
"Single-Step","Create New Order","1. User initiates order creation → 2. Extract order details from user input → 3. Save order to database → 4. Confirm creation to user",0.3
|
| 1416 |
+
- Include the "Priority" column for all components.
|
| 1417 |
+
- Include the total mandays for the revised plan and confirm whether it fits within the MVP timeline.
|
| 1418 |
+
- Ensure the output is concise and actionable.
|
| 1419 |
+
|
| 1420 |
+
Important Notes:
|
| 1421 |
+
- If the total mandays still exceed the timeline after adjustments, prioritize further reductions in medium priority components and intents while keeping high priority components as intact as possible.
|
| 1422 |
+
- Do not remove any components or intents from the list, even if their mandays are reduced to 0.
|
| 1423 |
+
""",
|
| 1424 |
inputs=["identified_planning_testing_components", "identified_development_components", "identified_mvp_intents", "generated_prd"],
|
| 1425 |
outputs=["revised_mandays_estimates"],
|
| 1426 |
model=ModelType.O1_MINI,
|
|
|
|
| 1450 |
),
|
| 1451 |
|
| 1452 |
"generate_page_MVP_mandays": PromptConfig(
|
| 1453 |
+
prompt=
|
| 1454 |
+
"""
|
| 1455 |
+
Using the revised mandays estimates from the previous step, format the output into two clearly separated CSV sections: one for Planning/Testing Components and another for Development Components.
|
| 1456 |
+
|
| 1457 |
+
Objective:
|
| 1458 |
+
Structure the output to clearly delineate the two sections while maintaining the original column structure. Ensure that there are no duplicate components or subcomponents in the output.
|
| 1459 |
+
|
| 1460 |
+
Output Format Requirements:
|
| 1461 |
+
- First Section - Planning & Testing Components:
|
| 1462 |
+
component,mandays,description
|
| 1463 |
+
"Requirements Analysis",0,"Critical user requirements and system specifications"
|
| 1464 |
+
|
| 1465 |
+
- Second Section - Development Components:
|
| 1466 |
+
component,subcomponent,mandays,description
|
| 1467 |
+
"Backend","Core API Development",3,"Essential API endpoints for basic functionality"
|
| 1468 |
+
|
| 1469 |
+
Important:
|
| 1470 |
+
- Each section must maintain its original column structure.
|
| 1471 |
+
- Sections MUST be separated by the marker: "----SECTION BREAK----".
|
| 1472 |
+
- Include ALL components but ensure there are no duplicates. If a component or subcomponent appears in both sections, include it only in the most relevant section.
|
| 1473 |
+
- No empty rows or missing values.
|
| 1474 |
+
- Text values must be in double quotes.
|
| 1475 |
+
- Numbers must not be in quotes.
|
| 1476 |
+
|
| 1477 |
+
Return only the CSV content with the section break, no additional text or explanations.
|
| 1478 |
+
""",
|
| 1479 |
inputs=["revised_mandays_estimates"],
|
| 1480 |
outputs=["generated_MVP_mandays"],
|
| 1481 |
model=ModelType.O1_MINI,
|
|
|
|
| 1505 |
),
|
| 1506 |
|
| 1507 |
"generate_engage_MVP_mandays": PromptConfig(
|
| 1508 |
+
prompt=
|
| 1509 |
+
"""
|
| 1510 |
+
Using the revised mandays estimates from the previous step, format the output into three clearly separated CSV sections: one for Planning/Testing Components, one for Development Components, and another for MVP Intents.
|
| 1511 |
+
|
| 1512 |
+
Objective:
|
| 1513 |
+
Structure the output to clearly delineate the two sections while maintaining the original column structure. Ensure that there are no duplicate components or subcomponents in the output.
|
| 1514 |
+
|
| 1515 |
+
Output Format Requirements:
|
| 1516 |
+
- First Section - Planning & Testing Components:
|
| 1517 |
+
component,mandays,description
|
| 1518 |
+
"Requirements Analysis",0,"Critical user requirements and system specifications"
|
| 1519 |
+
|
| 1520 |
+
- Second Section - Development Components:
|
| 1521 |
+
component,subcomponent,mandays,description
|
| 1522 |
+
"Backend","Core API Development",3,"Essential API endpoints for basic functionality"
|
| 1523 |
+
|
| 1524 |
+
- Third Section - MVP Intents:
|
| 1525 |
+
intent_type,intent,workflow,mandays
|
| 1526 |
+
"Single-Step","Create New Order","1. User initiates order creation → 2. Extract order details from user input → 3. Save order to database → 4. Confirm creation to user",0.3
|
| 1527 |
+
|
| 1528 |
+
Important:
|
| 1529 |
+
- Each section must maintain its original column structure.
|
| 1530 |
+
- Sections MUST be separated by the marker: "----SECTION BREAK----".
|
| 1531 |
+
- Include ALL the components and intents.
|
| 1532 |
+
- No empty rows or missing values.
|
| 1533 |
+
- Text values must be in double quotes.
|
| 1534 |
+
- Numbers must not be in quotes.
|
| 1535 |
+
|
| 1536 |
+
Return only the CSV content with the section break, no additional text or explanations.
|
| 1537 |
+
""",
|
| 1538 |
inputs=["revised_mandays_estimates"],
|
| 1539 |
outputs=["generated_MVP_mandays"],
|
| 1540 |
model=ModelType.O1_MINI,
|
|
|
|
| 1570 |
),
|
| 1571 |
|
| 1572 |
"generate_page_MVP_prd": PromptConfig(
|
| 1573 |
+
prompt=
|
| 1574 |
+
"""
|
| 1575 |
+
Generate a comprehensive and structured Project Requirement Document (PRD) for a Minimum Viable Product (MVP) using the following inputs:
|
| 1576 |
+
1. **General PRD Guidelines**: Use the provided general PRD as a framework for structure, tone, and level of detail. This includes sections like Introduction, Scope, Functional Requirements, Non-Functional Requirements, Technical Architecture, Workflow, Testing, Deployment, and Appendices.
|
| 1577 |
+
2. **Revised Mandays Estimates**: Incorporate the specific MVP components, including their descriptions, mandays estimates, and functionalities, into the relevant sections of the PRD. Ensure all details are accurately reflected.
|
| 1578 |
+
|
| 1579 |
+
Follow these instructions:
|
| 1580 |
+
- Retain ALL specific details, metrics, and constraints from both the general PRD and MVP components.
|
| 1581 |
+
- Pay special attention to the time constraint for building the MVP, as outlined in the inputs.
|
| 1582 |
+
- Do not add any context or assumptions beyond the provided inputs.
|
| 1583 |
+
- Do not exclude any details from the inputs.
|
| 1584 |
+
- Structure the document to ensure clarity, logical flow, and readability and use tabular format whenever possible.
|
| 1585 |
+
- Use the title "Project Requirements" for the document.
|
| 1586 |
+
|
| 1587 |
+
The output should be a well-organized PRD that combines the general PRD guidelines with the specific MVP components, ensuring alignment with the project's goals and constraints.
|
| 1588 |
+
""",
|
| 1589 |
inputs=["generated_prd" , "generated_MVP_mandays"],
|
| 1590 |
outputs=["generated_mvp_prd"],
|
| 1591 |
model=ModelType.O1_MINI,
|
|
|
|
| 1614 |
),
|
| 1615 |
|
| 1616 |
"generate_engage_MVP_prd": PromptConfig(
|
| 1617 |
+
prompt=
|
| 1618 |
+
"""
|
| 1619 |
+
Generate a comprehensive and structured Project Requirement Document (PRD) for a Minimum Viable Product (MVP) using the following inputs:
|
| 1620 |
+
1. **General PRD Guidelines**: Use the provided general PRD as a framework for structure, tone, and level of detail. This includes sections like Introduction, Scope, Functional Requirements, Non-Functional Requirements, Technical Architecture, Workflow, Testing, Deployment, and Appendices.
|
| 1621 |
+
2. **Revised Mandays Estimates**: Incorporate the specific MVP components & intents, including their descriptions, mandays estimates, and functionalities, into the relevant sections of the PRD. Ensure all details are accurately reflected.
|
| 1622 |
+
|
| 1623 |
+
Follow these instructions:
|
| 1624 |
+
- Retain ALL specific details, metrics, and constraints from both the general PRD and MVP components.
|
| 1625 |
+
- Pay special attention to the time constraint for building the MVP, as outlined in the inputs.
|
| 1626 |
+
- Do not add any context or assumptions beyond the provided inputs.
|
| 1627 |
+
- Do not exclude any details from the inputs.
|
| 1628 |
+
- Structure the document to ensure clarity, logical flow, and readability and structure tabular format if necessary.
|
| 1629 |
+
- Use the title "Project Requirements" for the document.
|
| 1630 |
+
|
| 1631 |
+
The output should be a well-organized PRD that combines the general PRD guidelines with the specific MVP components, ensuring alignment with the project's goals and constraints.
|
| 1632 |
+
""",
|
| 1633 |
inputs=["generated_prd" , "generated_MVP_mandays"],
|
| 1634 |
outputs=["generated_mvp_prd"],
|
| 1635 |
model=ModelType.O1_MINI,
|
|
|
|
| 1658 |
),
|
| 1659 |
|
| 1660 |
"generate_page_BD_SOW": PromptConfig(
|
| 1661 |
+
prompt=
|
| 1662 |
+
"""
|
| 1663 |
+
As an project manager with 20+ years of experience, you are tasked to create a detailed Scope of Work (SOW) document. Analyze the provided project component list and scope document to generate the following sections. Follow the guidelines below to ensure a professional, structured, and client-ready output:
|
| 1664 |
+
|
| 1665 |
+
### **Scope of Work (SOW)**
|
| 1666 |
+
|
| 1667 |
+
#### **1. Project Background**
|
| 1668 |
+
- Provide a brief overview of the project, including the context, problem statement, and why the project is being initiated.
|
| 1669 |
+
- Break down key challenges (in bullet point) the company currently facing, quantifying the impacts where possible (e.g., lost revenue, downtime).
|
| 1670 |
+
- Close this section with industry trends or other relevant background information, emphasizing risks of inaction leading to the project, in 2-3 sentences.
|
| 1671 |
+
|
| 1672 |
+
#### **2. Project Objective**
|
| 1673 |
+
- Clearly define the project's primary goals and what constitutes success, using the following structure:
|
| 1674 |
+
- Goals: List specific, measurable goals (e.g., reduce processing time by 20%).
|
| 1675 |
+
- Outcomes: Describe tangible deliverables and metrics for success.
|
| 1676 |
+
|
| 1677 |
+
#### **3. Project Buyers & Stakeholders**
|
| 1678 |
+
- List key stakeholders involved in the project, e.g. buyers, end-users, and decision-makers.
|
| 1679 |
+
- Identify their name and roles in the project, using a table.
|
| 1680 |
+
|
| 1681 |
+
#### **4. System Flow**
|
| 1682 |
+
- Provide description of how the system components interact, describing what each module does and how it works.
|
| 1683 |
+
- Use one of the following:
|
| 1684 |
+
- Visual Representation: Diagram illustrating workflows or data flows between modules.
|
| 1685 |
+
- Textual Description: Detailed explanation of the processes and transitions
|
| 1686 |
+
- Use bullet point, ensure simplicity and avoid overly technical language.
|
| 1687 |
+
|
| 1688 |
+
#### **5. Modules and Functional Requirements Breakdown**
|
| 1689 |
+
- LEAVE THIS BLANK
|
| 1690 |
+
|
| 1691 |
+
#### **6. Acceptance Criteria**
|
| 1692 |
+
- Define conditions to be met, including specific, measurable criteria for project completion:
|
| 1693 |
+
- Link each deliverable/module to its validation or testing process (e.g., UAT).
|
| 1694 |
+
- Table format with the following column:
|
| 1695 |
+
- Deliverable (e.g. Field Matching Automation module)
|
| 1696 |
+
- Criteria, starting with "able to" (e.g. able to extract, match, and change the case status accordingly)
|
| 1697 |
+
|
| 1698 |
+
#### **7. Assumptions and Pre-requisites**
|
| 1699 |
+
- List all planning-phase assumptions and pre-requisites, grouped into:
|
| 1700 |
+
- Assumptions: Detailed, scenario-based assumptions that the project relies on. Each assumption should:
|
| 1701 |
+
- Reference specific stakeholders (e.g., PWT staff, Mindhive).
|
| 1702 |
+
- Describe specific conditions or expectations (e.g., document quality, workflow stability).
|
| 1703 |
+
- Be written in clear, concise language.
|
| 1704 |
+
- Pre-requisites or dependencies: Conditions that must be met before the project can proceed. Each pre-requisite should:
|
| 1705 |
+
- Be specific and actionable.
|
| 1706 |
+
- Reference who is responsible and what needs to be done.
|
| 1707 |
+
|
| 1708 |
+
#### **8. Proposed Timeline**
|
| 1709 |
+
- Provide a project timeline, including:
|
| 1710 |
+
- Milestone
|
| 1711 |
+
- Expected Date/Duration
|
| 1712 |
+
- Outcome/Deliverable
|
| 1713 |
+
- Use a Gantt chart or table to visualize the timeline.
|
| 1714 |
+
- Ensure the output are clean, organized, and easy to read.
|
| 1715 |
+
|
| 1716 |
+
#### **9. Commercial**
|
| 1717 |
+
Summarize the project's commercial details in the following subsections:
|
| 1718 |
+
- Development Fee: Create a table summarizing the costs for development, including the product, technical work supporting, or other additional services provided
|
| 1719 |
+
- Subscription Fee: If applicable, create a table summarizing subscription fees for system usage.
|
| 1720 |
+
- Payment Terms: Include a text description of payment terms:
|
| 1721 |
+
- Milestones: Specify at which stages payments are due
|
| 1722 |
+
- Invoicing: Define invoicing intervals (e.g., monthly, quarterly) and payment deadlines
|
| 1723 |
+
- Other Terms: Mention late payment fees or additional terms, if applicable
|
| 1724 |
+
- Output Format for tables: {Service}, {Fee} (leave amount blank)
|
| 1725 |
+
|
| 1726 |
+
#### **10. Sign-Off**
|
| 1727 |
+
- Create a professional and formal Sign-Off section to acknowledge and approve the SOW.
|
| 1728 |
+
- Include an statement to clearly communicate that both parties have reviewed and agreed to the SOW.
|
| 1729 |
+
- Provide placeholder for each party (Company):
|
| 1730 |
+
- Signature
|
| 1731 |
+
- Name
|
| 1732 |
+
- Position
|
| 1733 |
+
- Date
|
| 1734 |
+
|
| 1735 |
+
#### **Guidelines**
|
| 1736 |
+
- Use bullet points for clarity.
|
| 1737 |
+
- Keep descriptions concise and client-friendly; avoid technical jargon unless necessary.
|
| 1738 |
+
- Maintain structured sections and tables for readability.
|
| 1739 |
+
|
| 1740 |
+
Expected output should be professional, well-structured, and designed to help clients and stakeholders clearly understand the project scope. I'm going to tip you for a better outcome!
|
| 1741 |
+
""",
|
| 1742 |
inputs=["generated_prd" , "generated_plan_test_components" , "reformatted_dev_components" , "combined_cost_summary"],
|
| 1743 |
outputs=["generated_BD_SOW"],
|
| 1744 |
model=ModelType.O1_MINI,
|
|
|
|
| 1767 |
),
|
| 1768 |
|
| 1769 |
"generate_engage_BD_SOW": PromptConfig(
|
| 1770 |
+
prompt=
|
| 1771 |
+
"""
|
| 1772 |
+
As an project manager with 20+ years of experience, you are tasked to create a detailed Scope of Work (SOW) document. Analyze the provided project component list and scope document to generate the following sections. Follow the guidelines below to ensure a professional, structured, and client-ready output:
|
| 1773 |
+
|
| 1774 |
+
### **Scope of Work (SOW)**
|
| 1775 |
+
|
| 1776 |
+
#### **1. Project Background**
|
| 1777 |
+
- Provide a brief overview of the project, including the context, problem statement, and why the project is being initiated.
|
| 1778 |
+
- Break down key challenges (in bullet point) the company currently facing, quantifying the impacts where possible (e.g., lost revenue, downtime).
|
| 1779 |
+
- Close this section with industry trends or other relevant background information, emphasizing risks of inaction leading to the project, in 2-3 sentences.
|
| 1780 |
+
|
| 1781 |
+
#### **2. Project Objective**
|
| 1782 |
+
- Clearly define the project's primary goals and what constitutes success, using the following structure:
|
| 1783 |
+
- Goals: List specific, measurable goals (e.g., reduce processing time by 20%).
|
| 1784 |
+
- Outcomes: Describe tangible deliverables and metrics for success.
|
| 1785 |
+
|
| 1786 |
+
#### **3. Project Buyers & Stakeholders**
|
| 1787 |
+
- List key stakeholders involved in the project, e.g. buyers, end-users, and decision-makers.
|
| 1788 |
+
- Identify their name and roles in the project, using a table.
|
| 1789 |
+
|
| 1790 |
+
#### **4. System Flow**
|
| 1791 |
+
- Provide description of how the system components interact, describing what each module does and how it works.
|
| 1792 |
+
- Use one of the following:
|
| 1793 |
+
- Visual Representation: Diagram illustrating workflows or data flows between modules.
|
| 1794 |
+
- Textual Description: Detailed explanation of the processes and transitions
|
| 1795 |
+
- Use bullet point, ensure simplicity and avoid overly technical language.
|
| 1796 |
+
|
| 1797 |
+
#### **5. Modules and Functional Requirements Breakdown**
|
| 1798 |
+
- LEAVE THIS BLANK
|
| 1799 |
+
|
| 1800 |
+
#### **6. Acceptance Criteria**
|
| 1801 |
+
- Define conditions to be met, including specific, measurable criteria for project completion:
|
| 1802 |
+
- Link each deliverable/module to its validation or testing process (e.g., UAT).
|
| 1803 |
+
- Table format with the following column:
|
| 1804 |
+
- Deliverable (e.g. Field Matching Automation module)
|
| 1805 |
+
- Criteria, starting with "able to" (e.g. able to extract, match, and change the case status accordingly)
|
| 1806 |
+
|
| 1807 |
+
#### **7. Assumptions and Pre-requisites**
|
| 1808 |
+
- List all planning-phase assumptions and pre-requisites, grouped into:
|
| 1809 |
+
- Assumptions: Detailed, scenario-based assumptions that the project relies on. Each assumption should:
|
| 1810 |
+
- Reference specific stakeholders (e.g., PWT staff, Mindhive).
|
| 1811 |
+
- Describe specific conditions or expectations (e.g., document quality, workflow stability).
|
| 1812 |
+
- Be written in clear, concise language.
|
| 1813 |
+
- Pre-requisites or dependencies: Conditions that must be met before the project can proceed. Each pre-requisite should:
|
| 1814 |
+
- Be specific and actionable.
|
| 1815 |
+
- Reference who is responsible and what needs to be done.
|
| 1816 |
+
|
| 1817 |
+
#### **8. Proposed Timeline**
|
| 1818 |
+
- Provide a project timeline, including:
|
| 1819 |
+
- Milestone
|
| 1820 |
+
- Expected Date/Duration
|
| 1821 |
+
- Outcome/Deliverable
|
| 1822 |
+
- Use a Gantt chart or table to visualize the timeline.
|
| 1823 |
+
- Ensure the output are clean, organized, and easy to read.
|
| 1824 |
+
|
| 1825 |
+
#### **9. Commercial**
|
| 1826 |
+
Summarize the project's commercial details in the following subsections:
|
| 1827 |
+
- Development Fee: Create a table summarizing the costs for development, including the product, technical work supporting, or other additional services provided
|
| 1828 |
+
- Subscription Fee: If applicable, create a table summarizing subscription fees for system usage.
|
| 1829 |
+
- Payment Terms: Include a text description of payment terms:
|
| 1830 |
+
- Milestones: Specify at which stages payments are due
|
| 1831 |
+
- Invoicing: Define invoicing intervals (e.g., monthly, quarterly) and payment deadlines
|
| 1832 |
+
- Other Terms: Mention late payment fees or additional terms, if applicable
|
| 1833 |
+
- Output Format for tables: {Service}, {Fee} (leave amount blank)
|
| 1834 |
+
|
| 1835 |
+
#### **10. Sign-Off**
|
| 1836 |
+
- Create a professional and formal Sign-Off section to acknowledge and approve the SOW.
|
| 1837 |
+
- Include an statement to clearly communicate that both parties have reviewed and agreed to the SOW.
|
| 1838 |
+
- Provide placeholder for each party (Company):
|
| 1839 |
+
- Signature
|
| 1840 |
+
- Name
|
| 1841 |
+
- Position
|
| 1842 |
+
- Date
|
| 1843 |
+
|
| 1844 |
+
#### **Guidelines**
|
| 1845 |
+
- Use bullet points for clarity.
|
| 1846 |
+
- Keep descriptions concise and client-friendly; avoid technical jargon unless necessary.
|
| 1847 |
+
- Maintain structured sections and tables for readability.
|
| 1848 |
+
|
| 1849 |
+
Expected output should be professional, well-structured, and designed to help clients and stakeholders clearly understand the project scope. I'm going to tip you for a better outcome!
|
| 1850 |
+
""",
|
| 1851 |
inputs=["generated_prd" , "generated_plan_test_components" , "reformatted_dev_components" , "generated_intent_list" , "combined_cost_summary" ],
|
| 1852 |
outputs=["generated_BD_SOW"],
|
| 1853 |
model=ModelType.O1_MINI,
|
|
|
|
| 1876 |
),
|
| 1877 |
|
| 1878 |
"generate_Tech_SOW": PromptConfig(
|
| 1879 |
+
prompt=
|
| 1880 |
+
"""
|
| 1881 |
+
As an experienced project manager with over 20 years of expertise, you are tasked to create a detailed Scope of Work (SOW) document in JSON format. The JSON output should contain markdown-formatted strings as values for each section of the SOW. Analyze the provided project component list and scope document to generate the following sections:
|
| 1882 |
+
|
| 1883 |
+
### **Scope of Work (SOW)**
|
| 1884 |
+
|
| 1885 |
+
#### **1. Scope Summary**
|
| 1886 |
+
- Provide a concise, high-level overview of the project scope. Divide it into three subsections:
|
| 1887 |
+
- In Scope:
|
| 1888 |
+
- List all deliverables, functionalities, and modules included in the project.
|
| 1889 |
+
- Be specific about what will be developed, implemented, or delivered.
|
| 1890 |
+
- Include MVP components (e.g., basic features, functionality, UI, document processing).
|
| 1891 |
+
- Assumptions:
|
| 1892 |
+
- Highlight key project-specific assumptions that the project relies on.
|
| 1893 |
+
- Dependencies:
|
| 1894 |
+
- List all internal and external dependencies required for the project's success.
|
| 1895 |
+
- Include any third-party integrations, resources, or timelines that the project depends on.
|
| 1896 |
+
|
| 1897 |
+
#### **2. Modules and Functional Requirements Breakdown**
|
| 1898 |
+
- Break down the project into modules or components.
|
| 1899 |
+
- Prsent the details in a succinct and client-friendly table with the following column:
|
| 1900 |
+
- Module
|
| 1901 |
+
ii. Functionalities/Features
|
| 1902 |
+
iii. Notes for any special considerations or constraints (e.g., 'Supports files up to 100MB').
|
| 1903 |
+
- Use clear, concise, non-technical language. (e.g., 'Drag-and-drop support for PDFs, Excel, CSV; progress indicators'). Avoid excessive detail.
|
| 1904 |
+
- Include MVP components as part of the breakdown and provide clear functionalities related to those (e.g., basic document upload, UI features, data processing).
|
| 1905 |
+
|
| 1906 |
+
#### **3. Out of Scope**
|
| 1907 |
+
- Explicitly define what is excluded from the project's scope. This may include any functionalities, tasks, or deliverables.
|
| 1908 |
+
- Ensure clarity to prevent future misunderstandings.
|
| 1909 |
+
|
| 1910 |
+
#### **4. System Flow**
|
| 1911 |
+
- Provide a detailed, step-by-step description of how the system components interact.
|
| 1912 |
+
- For each component or module:
|
| 1913 |
+
- Describe what it does and how it works, including both success and unsuccessful scenarios
|
| 1914 |
+
- Explain how it interacts with other components
|
| 1915 |
+
- Include MVP-related components in the system flow, describing their function and interaction within the MVP's framework.
|
| 1916 |
+
|
| 1917 |
+
Output Requirements:
|
| 1918 |
+
Just return the json object and nothing else, omit code guards ```, where each key represents a section of the SOW, and the value is a markdown-formatted string for that section.
|
| 1919 |
+
Use clear, concise, and client-friendly language. Avoid excessive technical jargon unless necessary.
|
| 1920 |
+
Example JSON Output:
|
| 1921 |
+
{
|
| 1922 |
+
"scope_summary": <markdown content>,
|
| 1923 |
+
"modules_and_functional_requirements": <markdown content>,
|
| 1924 |
+
"out_of_scope": <markdown content>,
|
| 1925 |
+
"system_flow": <markdown content>
|
| 1926 |
+
}
|
| 1927 |
+
""",
|
| 1928 |
inputs=["generated_plan_test_components","reformatted_dev_components","generated_MVP_mandays"],
|
| 1929 |
outputs=["generated_Tech_SOW"],
|
| 1930 |
model=ModelType.O1_MINI,
|