ankban commited on
Commit
e29ad92
Β·
verified Β·
1 Parent(s): 4d75bf0

Update written_module.py

Browse files
Files changed (1) hide show
  1. written_module.py +25 -20
written_module.py CHANGED
@@ -21,11 +21,11 @@ You are a writing coach helping a student improve their writing for the followin
21
 
22
  First, return a JSON object with scores (0–10) for each of these:
23
  {focus_str}
24
-
25
  Then write:
26
- - A brief explanation per score
27
  - A summary of strengths and improvements
28
- - One motivational line
29
 
30
  Current text:
31
  {text}
@@ -39,7 +39,16 @@ Current text:
39
  ],
40
  temperature=0.7
41
  )
42
- return response.choices[0].message.content
 
 
 
 
 
 
 
 
 
43
 
44
  def improve_written_text(text, language):
45
  prompt = f"""Improve this writing by refining structure, grammar, and clarity β€” without changing its meaning.
@@ -77,22 +86,18 @@ def written_dashboard(nickname_input):
77
  goal_dropdown = gr.Dropdown(label="🎯 Writing Goal", choices=["Essay for school", "Job application", "Blog post", "Creative writing", "General improvement"], value="General improvement")
78
  focus_checkboxes = gr.CheckboxGroup(label="🧠 Focus Areas", choices=["Clarity", "Organization", "Grammar", "Vocabulary", "Tone", "Creativity"], value=["Clarity", "Organization", "Grammar", "Vocabulary", "Tone", "Creativity"])
79
 
80
- input_text = gr.Textbox(
81
- label="πŸ“ Your Writing",
82
- lines=10,
83
- elem_id="input_text",
84
- elem_classes=["text_area"],
85
- interactive=True
86
- )
87
-
88
  submit_button = gr.Button("πŸš€ Submit", variant="primary", size="sm")
89
 
90
  file_input = gr.File(label="πŸ“„ Upload Text File", file_types=[".txt", ".md"])
91
  feedback_box = gr.Textbox(label="πŸ’‘ Feedback", interactive=False, elem_id="feedback_box")
92
  improved_box = gr.Textbox(label="🎯 Improved Version", interactive=False, elem_id="improved_box")
93
  history_table = gr.Dataframe(headers=["πŸ•’ Timestamp", "🌐 Language", "✍️ Text", "πŸ“‹ Feedback"])
94
- score_chart = gr.Plot(label="πŸ“Š Score Comparison")
95
- trend_chart = gr.Plot(label="πŸ“ˆ Clarity Progress")
 
 
 
96
  milestone_box = gr.Markdown(visible=False)
97
 
98
  def extract_text(file):
@@ -113,23 +118,23 @@ def written_dashboard(nickname_input):
113
  previous_text = sessions[-1].transcript if sessions else None
114
  previous_feedback = sessions[-1].feedback if sessions else None
115
 
116
- feedback = generate_written_feedback(text, language, goal, focus_areas, previous_text)
117
  improved = improve_written_text(text, language)
118
 
119
- save_to_db(nickname, text, feedback, language)
120
  sessions = fetch_user_sessions(nickname)
121
  session_table = [[s.timestamp, s.language, s.transcript[:40], s.feedback[:40]] for s in sessions]
122
 
123
- score_plot = render_score_chart(build_score_comparison_data(feedback, previous_feedback)) if previous_feedback else render_empty_chart("πŸ“Š Score Comparison")
124
  dates, clarity_scores = build_trend_data(sessions, "Clarity")
125
  trend_plot = render_trend_chart(dates, clarity_scores, "Clarity") if clarity_scores else render_empty_chart("πŸ“ˆ Clarity Progress")
126
 
127
  milestone_msg = ""
128
  if len(sessions) in [3, 5, 10]:
129
  milestone_msg = f"πŸŽ‰ You’ve completed **{len(sessions)} writing sessions**!"
130
- feedback += f"\n\n{milestone_msg}"
131
 
132
- return feedback, improved, session_table, score_plot, trend_plot, gr.update(visible=bool(milestone_msg), value=milestone_msg)
133
 
134
  submit_button.click(
135
  fn=tutor_written,
@@ -137,4 +142,4 @@ def written_dashboard(nickname_input):
137
  outputs=[feedback_box, improved_box, history_table, score_chart, trend_chart, milestone_box]
138
  )
139
 
140
- return written_panel
 
21
 
22
  First, return a JSON object with scores (0–10) for each of these:
23
  {focus_str}
24
+ Ensure that it is in a decent formatted style.
25
  Then write:
26
+ - A detailed explanation per score
27
  - A summary of strengths and improvements
28
+ - One motivational line, do not add the motivational keyword, just add it
29
 
30
  Current text:
31
  {text}
 
39
  ],
40
  temperature=0.7
41
  )
42
+ feedback = response.choices[0].message.content
43
+
44
+ # Strip the JSON block from the feedback before returning to user
45
+ try:
46
+ split_idx = feedback.index('}') + 1
47
+ feedback_clean = feedback[split_idx:].strip()
48
+ except:
49
+ feedback_clean = feedback
50
+
51
+ return feedback, feedback_clean
52
 
53
  def improve_written_text(text, language):
54
  prompt = f"""Improve this writing by refining structure, grammar, and clarity β€” without changing its meaning.
 
86
  goal_dropdown = gr.Dropdown(label="🎯 Writing Goal", choices=["Essay for school", "Job application", "Blog post", "Creative writing", "General improvement"], value="General improvement")
87
  focus_checkboxes = gr.CheckboxGroup(label="🧠 Focus Areas", choices=["Clarity", "Organization", "Grammar", "Vocabulary", "Tone", "Creativity"], value=["Clarity", "Organization", "Grammar", "Vocabulary", "Tone", "Creativity"])
88
 
89
+ input_text = gr.Textbox(label="πŸ“ Your Writing", lines=10, elem_id="input_text", elem_classes=["text_area"], interactive=True)
 
 
 
 
 
 
 
90
  submit_button = gr.Button("πŸš€ Submit", variant="primary", size="sm")
91
 
92
  file_input = gr.File(label="πŸ“„ Upload Text File", file_types=[".txt", ".md"])
93
  feedback_box = gr.Textbox(label="πŸ’‘ Feedback", interactive=False, elem_id="feedback_box")
94
  improved_box = gr.Textbox(label="🎯 Improved Version", interactive=False, elem_id="improved_box")
95
  history_table = gr.Dataframe(headers=["πŸ•’ Timestamp", "🌐 Language", "✍️ Text", "πŸ“‹ Feedback"])
96
+
97
+ with gr.Row():
98
+ score_chart = gr.Plot(label="πŸ“Š Score Comparison")
99
+ trend_chart = gr.Plot(label="πŸ“ˆ Clarity Progress")
100
+
101
  milestone_box = gr.Markdown(visible=False)
102
 
103
  def extract_text(file):
 
118
  previous_text = sessions[-1].transcript if sessions else None
119
  previous_feedback = sessions[-1].feedback if sessions else None
120
 
121
+ full_feedback, feedback_clean = generate_written_feedback(text, language, goal, focus_areas, previous_text)
122
  improved = improve_written_text(text, language)
123
 
124
+ save_to_db(nickname, text, full_feedback, language)
125
  sessions = fetch_user_sessions(nickname)
126
  session_table = [[s.timestamp, s.language, s.transcript[:40], s.feedback[:40]] for s in sessions]
127
 
128
+ score_plot = render_score_chart(build_score_comparison_data(full_feedback, previous_feedback)) if previous_feedback else render_empty_chart("πŸ“Š Score Comparison")
129
  dates, clarity_scores = build_trend_data(sessions, "Clarity")
130
  trend_plot = render_trend_chart(dates, clarity_scores, "Clarity") if clarity_scores else render_empty_chart("πŸ“ˆ Clarity Progress")
131
 
132
  milestone_msg = ""
133
  if len(sessions) in [3, 5, 10]:
134
  milestone_msg = f"πŸŽ‰ You’ve completed **{len(sessions)} writing sessions**!"
135
+ feedback_clean += f"\n\n{milestone_msg}"
136
 
137
+ return feedback_clean, improved, session_table, score_plot, trend_plot, gr.update(visible=bool(milestone_msg), value=milestone_msg)
138
 
139
  submit_button.click(
140
  fn=tutor_written,
 
142
  outputs=[feedback_box, improved_box, history_table, score_chart, trend_chart, milestone_box]
143
  )
144
 
145
+ return written_panel