Spaces:
Sleeping
Sleeping
_AssignmentService, _SubmissionService)
Browse files
app.py
CHANGED
@@ -50,6 +50,9 @@ OPEN_AI_MODERATION_CLIENT = OpenAI(api_key=OPEN_AI_MODERATION_BOT1)
|
|
50 |
GCS_SERVICE = GoogleCloudStorage(GCS_KEY)
|
51 |
GCS_CLIENT = GCS_SERVICE.client
|
52 |
|
|
|
|
|
|
|
53 |
def update_scenario_input(scenario_radio):
|
54 |
return scenario_radio
|
55 |
|
@@ -971,55 +974,22 @@ def generate_chinese_paragraph_practice_history(
|
|
971 |
|
972 |
def submit_assignment(user_data, user_nickname, assignment_id, submission_content, file_name):
|
973 |
try:
|
974 |
-
# 生成唯一的提交ID
|
975 |
-
submission_id = generate_unique_submission_id()
|
976 |
-
timestamp_now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
977 |
-
|
978 |
-
# 创建提交数据
|
979 |
-
submission_data = {
|
980 |
-
"submission_id": submission_id,
|
981 |
-
"assignment_id": assignment_id,
|
982 |
-
"student_id": user_data,
|
983 |
-
"student_name": user_nickname,
|
984 |
-
"submission_data": {
|
985 |
-
"file_name": file_name,
|
986 |
-
"bucket_name": "jutor_logs",
|
987 |
-
"content": submission_content
|
988 |
-
},
|
989 |
-
"timestamp": timestamp_now
|
990 |
-
}
|
991 |
-
|
992 |
-
# 上传提交数据
|
993 |
-
submission_file_name = f"submissions/{submission_id}.json"
|
994 |
-
GCS_SERVICE.upload_json_string("ai_assignment_submission", submission_file_name, json.dumps(submission_data))
|
995 |
-
|
996 |
-
# 更新作业数据
|
997 |
-
assignment_file_name = f"assignments/{assignment_id}.json"
|
998 |
-
assignment_content = GCS_SERVICE.download_as_string("ai_assignment_submission", assignment_file_name)
|
999 |
-
assignment_data = json.loads(assignment_content)
|
1000 |
-
|
1001 |
-
if "submission_ids" not in assignment_data:
|
1002 |
-
assignment_data["submission_ids"] = []
|
1003 |
-
assignment_data["submission_ids"].append(submission_id)
|
1004 |
-
GCS_SERVICE.upload_json_string("ai_assignment_submission", assignment_file_name, json.dumps(assignment_data))
|
1005 |
-
|
1006 |
-
# 更新用户的提交列表
|
1007 |
-
user_submissions_file = f"users/{user_data}/submissions.json"
|
1008 |
try:
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
1014 |
-
|
1015 |
-
"
|
1016 |
-
|
1017 |
-
"timestamp": timestamp_now
|
1018 |
-
}
|
1019 |
-
GCS_SERVICE.upload_json_string("ai_assignment_submission", user_submissions_file, json.dumps(user_submissions))
|
1020 |
|
1021 |
-
|
1022 |
-
|
|
|
|
|
|
|
|
|
1023 |
|
1024 |
except Exception as e:
|
1025 |
print(f"Error submitting assignment {assignment_id}: {str(e)}")
|
@@ -3359,9 +3329,7 @@ with gr.Blocks(theme=THEME, css=CSS) as demo:
|
|
3359 |
with gr.Row():
|
3360 |
gr.Markdown("# 📝 作業管理")
|
3361 |
with gr.Row():
|
3362 |
-
|
3363 |
-
submission_service = SubmissionService(GCS_SERVICE)
|
3364 |
-
assignment_interface = create_assignment_ui(user_data, assignment_service, submission_service)
|
3365 |
|
3366 |
demo.load(
|
3367 |
init_params,
|
|
|
50 |
GCS_SERVICE = GoogleCloudStorage(GCS_KEY)
|
51 |
GCS_CLIENT = GCS_SERVICE.client
|
52 |
|
53 |
+
_AssignmentService = AssignmentService(GCS_SERVICE)
|
54 |
+
_SubmissionService = SubmissionService(GCS_SERVICE)
|
55 |
+
|
56 |
def update_scenario_input(scenario_radio):
|
57 |
return scenario_radio
|
58 |
|
|
|
974 |
|
975 |
def submit_assignment(user_data, user_nickname, assignment_id, submission_content, file_name):
|
976 |
try:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
977 |
try:
|
978 |
+
submission_id = _SubmissionService.submit_assignment(
|
979 |
+
assignment_id=assignment_id,
|
980 |
+
student_id=user_data,
|
981 |
+
student_name=user_nickname,
|
982 |
+
submission_content=submission_content,
|
983 |
+
file_name=file_name,
|
984 |
+
bucket_name="jutor_logs"
|
985 |
+
)
|
|
|
|
|
|
|
986 |
|
987 |
+
if submission_id:
|
988 |
+
print(f"Updated assignment {assignment_id} with new submission: {submission_id}")
|
989 |
+
return submission_id
|
990 |
+
else:
|
991 |
+
print(f"Failed to submit assignment {assignment_id}")
|
992 |
+
return None
|
993 |
|
994 |
except Exception as e:
|
995 |
print(f"Error submitting assignment {assignment_id}: {str(e)}")
|
|
|
3329 |
with gr.Row():
|
3330 |
gr.Markdown("# 📝 作業管理")
|
3331 |
with gr.Row():
|
3332 |
+
assignment_interface = create_assignment_ui(user_data, _AssignmentService, _SubmissionService)
|
|
|
|
|
3333 |
|
3334 |
demo.load(
|
3335 |
init_params,
|