Spaces:
Runtime error
Runtime error
jess commited on
Commit ·
b344bb8
1
Parent(s): 47258ec
modify config and input_mappings
Browse files- Project.py +28 -18
- app.py +2 -2
- extract_input_mappings.py +36 -0
- input_mappings.py +34 -0
- prompt_configs.py +7 -2
Project.py
CHANGED
|
@@ -70,26 +70,36 @@ class Project:
|
|
| 70 |
INPUT_MAPPINGS = {
|
| 71 |
'project_detail': lambda self: self.get_project_detail(),
|
| 72 |
'generated_prd': lambda self: self.generated_prd,
|
| 73 |
-
'
|
| 74 |
-
'
|
| 75 |
-
'
|
| 76 |
-
'
|
| 77 |
-
'
|
|
|
|
|
|
|
|
|
|
| 78 |
'generated_intent_list': lambda self: self.generated_intent_list,
|
| 79 |
-
'
|
| 80 |
-
'
|
| 81 |
-
'
|
| 82 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 83 |
'mvp_components': lambda self: self.mvp_components,
|
| 84 |
-
'
|
| 85 |
-
'
|
| 86 |
-
'
|
| 87 |
-
'
|
| 88 |
-
'
|
| 89 |
-
'
|
| 90 |
-
'
|
| 91 |
-
'
|
| 92 |
-
'
|
|
|
|
| 93 |
}
|
| 94 |
|
| 95 |
#Execute prompt with given input variables
|
|
|
|
| 70 |
INPUT_MAPPINGS = {
|
| 71 |
'project_detail': lambda self: self.get_project_detail(),
|
| 72 |
'generated_prd': lambda self: self.generated_prd,
|
| 73 |
+
'configuration_type': lambda self: self.configuration_type,
|
| 74 |
+
'project_detail': lambda self: self.project_detail,
|
| 75 |
+
'follow_up_questions': lambda self: self.follow_up_questions,
|
| 76 |
+
'requirements_rubric': lambda self: self.requirements_rubric,
|
| 77 |
+
'generated_engage_follow_up_questions': lambda self: self.generated_engage_follow_up_questions,
|
| 78 |
+
'generated_page_follow_up_questions': lambda self: self.generated_page_follow_up_questions,
|
| 79 |
+
'generated_engage_further_follow_up_questions': lambda self: self.generated_engage_further_follow_up_questions,
|
| 80 |
+
'generated_page_further_follow_up_questions': lambda self: self.generated_page_further_follow_up_questions,
|
| 81 |
'generated_intent_list': lambda self: self.generated_intent_list,
|
| 82 |
+
'generated_plan_test_components': lambda self: self.generated_plan_test_components,
|
| 83 |
+
'generated_page_dev_components': lambda self: self.generated_page_dev_components,
|
| 84 |
+
'generated_engage_dev_components': lambda self: self.generated_engage_dev_components,
|
| 85 |
+
'reformatted_page_dev_components': lambda self: self.reformatted_page_dev_components,
|
| 86 |
+
'reformatted_engage_dev_components': lambda self: self.reformatted_engage_dev_components,
|
| 87 |
+
'reformatted_hybrid_dev_components': lambda self: self.reformatted_hybrid_dev_components,
|
| 88 |
+
'generated_intents_csv': lambda self: self.generated_intents_csv,
|
| 89 |
+
'generated_plan_test_mandays': lambda self: self.generated_plan_test_mandays,
|
| 90 |
+
'reformatted_dev_components': lambda self: self.reformatted_dev_components,
|
| 91 |
+
'generated_dev_mandays': lambda self: self.generated_dev_mandays,
|
| 92 |
'mvp_components': lambda self: self.mvp_components,
|
| 93 |
+
'generated_mvp_prd': lambda self: self.generated_mvp_prd,
|
| 94 |
+
'quotation_cost': lambda self: self.quotation_cost,
|
| 95 |
+
'generated_BD_SOW': lambda self: self.generated_BD_SOW,
|
| 96 |
+
'generated_Tech_SOW': lambda self: self.generated_Tech_SOW,
|
| 97 |
+
'identified_planning_testing_components': lambda self: self.identified_planning_testing_components,
|
| 98 |
+
'identified_development_components': lambda self: self.identified_development_components,
|
| 99 |
+
'identified_mvp_intents': lambda self: self.identified_mvp_intents,
|
| 100 |
+
'identified_priority_components': lambda self: self.identified_priority_components,
|
| 101 |
+
'revised_mandays_estimates': lambda self: self.revised_mandays_estimates,
|
| 102 |
+
'generated_MVP_mandays': lambda self: self.generated_MVP_mandays,
|
| 103 |
}
|
| 104 |
|
| 105 |
#Execute prompt with given input variables
|
app.py
CHANGED
|
@@ -344,7 +344,7 @@ def update_display_mode(mode: str, text_content: str) -> tuple:
|
|
| 344 |
with open("page_main.css", "r") as file:
|
| 345 |
custom_css = file.read()
|
| 346 |
|
| 347 |
-
with gr.Blocks(title="Quotation Chatbot (with SOW)", css=custom_css) as
|
| 348 |
gr.Markdown("# Quotation Chatbot with SOW")
|
| 349 |
|
| 350 |
all_components = {}
|
|
@@ -455,4 +455,4 @@ with gr.Blocks(title="Quotation Chatbot (with SOW)", css=custom_css) as page_int
|
|
| 455 |
setup_event_handlers()
|
| 456 |
|
| 457 |
if __name__ == "__main__":
|
| 458 |
-
|
|
|
|
| 344 |
with open("page_main.css", "r") as file:
|
| 345 |
custom_css = file.read()
|
| 346 |
|
| 347 |
+
with gr.Blocks(title="Quotation Chatbot (with SOW)", css=custom_css) as demo:
|
| 348 |
gr.Markdown("# Quotation Chatbot with SOW")
|
| 349 |
|
| 350 |
all_components = {}
|
|
|
|
| 455 |
setup_event_handlers()
|
| 456 |
|
| 457 |
if __name__ == "__main__":
|
| 458 |
+
demo.launch(share=True)
|
extract_input_mappings.py
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from itertools import chain
|
| 2 |
+
from prompt_configs import PROMPTS
|
| 3 |
+
# For each configuration, combine the "inputs" and "outputs" lists.
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
# 1. For each configuration in PROMPTS, get the list of inputs and outputs.
|
| 7 |
+
all_vars_lists = []
|
| 8 |
+
for prompt in PROMPTS.values():
|
| 9 |
+
# Access the inputs and outputs from the prompt configuration.
|
| 10 |
+
vars_list = prompt.inputs + prompt.outputs
|
| 11 |
+
all_vars_lists.append(vars_list)
|
| 12 |
+
|
| 13 |
+
# 2. Flatten the list of lists into a single sequence.
|
| 14 |
+
flattened_vars = list(chain(*all_vars_lists))
|
| 15 |
+
|
| 16 |
+
# 3. Process each item: if it contains commas, split and strip whitespace.
|
| 17 |
+
processed_vars = []
|
| 18 |
+
for var in flattened_vars:
|
| 19 |
+
# Split if comma exists, otherwise use the original string.
|
| 20 |
+
parts = [item.strip() for item in var.split(",")]
|
| 21 |
+
processed_vars.extend(parts)
|
| 22 |
+
|
| 23 |
+
# 4. Remove duplicates while preserving the order.
|
| 24 |
+
unique_vars = list(dict.fromkeys(processed_vars))
|
| 25 |
+
lines = ["INPUT_MAPPINGS = {\n\t'project_detail': lambda self: self.get_project_detail(),"]
|
| 26 |
+
for var in unique_vars:
|
| 27 |
+
lines.append(f" '{var}': lambda self: self.{var},")
|
| 28 |
+
lines.append("}")
|
| 29 |
+
|
| 30 |
+
output_text = "\n".join(lines)
|
| 31 |
+
|
| 32 |
+
# Write the mapping to a file.
|
| 33 |
+
with open("input_mappings.py", "w") as file:
|
| 34 |
+
file.write(output_text)
|
| 35 |
+
|
| 36 |
+
print("Mappings have been written to input_mappings.py")
|
input_mappings.py
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
INPUT_MAPPINGS = {
|
| 2 |
+
'project_detail': lambda self: self.get_project_detail(),
|
| 3 |
+
'generated_prd': lambda self: self.generated_prd,
|
| 4 |
+
'configuration_type': lambda self: self.configuration_type,
|
| 5 |
+
'project_detail': lambda self: self.project_detail,
|
| 6 |
+
'follow_up_questions': lambda self: self.follow_up_questions,
|
| 7 |
+
'requirements_rubric': lambda self: self.requirements_rubric,
|
| 8 |
+
'generated_engage_follow_up_questions': lambda self: self.generated_engage_follow_up_questions,
|
| 9 |
+
'generated_page_follow_up_questions': lambda self: self.generated_page_follow_up_questions,
|
| 10 |
+
'generated_engage_further_follow_up_questions': lambda self: self.generated_engage_further_follow_up_questions,
|
| 11 |
+
'generated_page_further_follow_up_questions': lambda self: self.generated_page_further_follow_up_questions,
|
| 12 |
+
'generated_intent_list': lambda self: self.generated_intent_list,
|
| 13 |
+
'generated_plan_test_components': lambda self: self.generated_plan_test_components,
|
| 14 |
+
'generated_page_dev_components': lambda self: self.generated_page_dev_components,
|
| 15 |
+
'generated_engage_dev_components': lambda self: self.generated_engage_dev_components,
|
| 16 |
+
'reformatted_page_dev_components': lambda self: self.reformatted_page_dev_components,
|
| 17 |
+
'reformatted_engage_dev_components': lambda self: self.reformatted_engage_dev_components,
|
| 18 |
+
'reformatted_hybrid_dev_components': lambda self: self.reformatted_hybrid_dev_components,
|
| 19 |
+
'generated_intents_csv': lambda self: self.generated_intents_csv,
|
| 20 |
+
'generated_plan_test_mandays': lambda self: self.generated_plan_test_mandays,
|
| 21 |
+
'reformatted_dev_components': lambda self: self.reformatted_dev_components,
|
| 22 |
+
'generated_dev_mandays': lambda self: self.generated_dev_mandays,
|
| 23 |
+
'mvp_components': lambda self: self.mvp_components,
|
| 24 |
+
'generated_mvp_prd': lambda self: self.generated_mvp_prd,
|
| 25 |
+
'quotation_cost': lambda self: self.quotation_cost,
|
| 26 |
+
'generated_BD_SOW': lambda self: self.generated_BD_SOW,
|
| 27 |
+
'generated_Tech_SOW': lambda self: self.generated_Tech_SOW,
|
| 28 |
+
'identified_planning_testing_components': lambda self: self.identified_planning_testing_components,
|
| 29 |
+
'identified_development_components': lambda self: self.identified_development_components,
|
| 30 |
+
'identified_mvp_intents': lambda self: self.identified_mvp_intents,
|
| 31 |
+
'identified_priority_components': lambda self: self.identified_priority_components,
|
| 32 |
+
'revised_mandays_estimates': lambda self: self.revised_mandays_estimates,
|
| 33 |
+
'generated_MVP_mandays': lambda self: self.generated_MVP_mandays,
|
| 34 |
+
}
|
prompt_configs.py
CHANGED
|
@@ -78,8 +78,7 @@ PROMPTS = {
|
|
| 78 |
"selected_functions": [
|
| 79 |
"generate_plan_test_components",
|
| 80 |
"generate_intent_list",
|
| 81 |
-
"generate_engage_dev_components"
|
| 82 |
-
"reformat_engage_dev_components"
|
| 83 |
]
|
| 84 |
}
|
| 85 |
]
|
|
@@ -127,6 +126,12 @@ PROMPTS = {
|
|
| 127 |
|
| 128 |
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.
|
| 129 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 130 |
<Requirements>
|
| 131 |
""",
|
| 132 |
inputs=['generated_prd'],
|
|
|
|
| 78 |
"selected_functions": [
|
| 79 |
"generate_plan_test_components",
|
| 80 |
"generate_intent_list",
|
| 81 |
+
"generate_engage_dev_components"
|
|
|
|
| 82 |
]
|
| 83 |
}
|
| 84 |
]
|
|
|
|
| 126 |
|
| 127 |
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.
|
| 128 |
|
| 129 |
+
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).
|
| 130 |
+
|
| 131 |
+
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.
|
| 132 |
+
|
| 133 |
+
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.
|
| 134 |
+
|
| 135 |
<Requirements>
|
| 136 |
""",
|
| 137 |
inputs=['generated_prd'],
|