jess commited on
Commit
b344bb8
·
1 Parent(s): 47258ec

modify config and input_mappings

Browse files
Files changed (5) hide show
  1. Project.py +28 -18
  2. app.py +2 -2
  3. extract_input_mappings.py +36 -0
  4. input_mappings.py +34 -0
  5. 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
- 'component_list': lambda self: self.component_list,
74
- 'plan_test_component_list': lambda self: self.plan_test_component_list,
75
- 'dev_component_list': lambda self: self.dev_component_list,
76
- 'reformatted_dev_components': lambda self: self.reformatted_dev_components,
77
- 'generated_plan_test_components': lambda self: self.generated_plan_test_components,
 
 
 
78
  'generated_intent_list': lambda self: self.generated_intent_list,
79
- 'generated_dev_components': lambda self: self.generated_dev_components,
80
- 'generated_plan_test_mandays': lambda self: self.plan_test_mandays,
81
- 'generated_dev_mandays': lambda self: self.dev_mandays,
82
- 'quotation_cost': lambda self: self.quotation_cost,
 
 
 
 
 
 
83
  'mvp_components': lambda self: self.mvp_components,
84
- 'revised_mandays_estimates': lambda self: self.revised_mandays,
85
- 'formatted_mvp_mandays': lambda self: self.formatted_mvp_mandays,
86
- 'generated_mvp_prd': lambda self: self.mvp_prd,
87
- 'general_sow': lambda self: self.general_sow,
88
- 'detailed_sow_json': lambda self: self.detailed_sow_json,
89
- 'mvp_mandays': lambda self: self.mvp_mandays,
90
- 'mvp_mandays_output_id': lambda self: self.mvp_mandays_output_id,
91
- 'plan_test_mandays_output_id': lambda self: self.plan_test_mandays_output_id,
92
- 'dev_mandays_output_id': lambda self: self.dev_mandays_output_id,
 
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 page_interface:
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
- page_interface.launch(share=True)
 
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'],