feat: grade exercise with AI (#296)

* working on the UI of the grading

* working on the grading function of the radio and checkboxes

* ai grading fully implemented with dummy functions for generating scores

* working on the openai response

* working on the openai response

* finished with the ai_grading

* finished with the ai_grading

* creating new migration file

* working on reviews

* updated the translations

* improvements

---------

Co-authored-by: Rotimi Best <best@classroomio.com>
This commit is contained in:
Em_Dev
2024-05-13 19:35:06 +01:00
committed by GitHub
co-authored by Rotimi Best
parent fc8b8e1898
commit e243564113
37 changed files with 688 additions and 150 deletions
@@ -14,7 +14,7 @@ import { STATUS } from '$lib/utils/constants/course';
import type { PostgrestSingleResponse } from '@supabase/supabase-js';
export async function fetchCourse(courseId?: Course['id'], slug?: Course['slug']) {
let match: { slug?: string; id?: string; status?: string } = {};
const match: { slug?: string; id?: string; status?: string } = {};
if (slug) {
match.slug = slug;
@@ -24,6 +24,7 @@ export function fetchSubmissions(course_id: string) {
)
),
status_id,
feedback,
course:course_id(*),
groupmember:submitted_by(
profile(*)
@@ -66,6 +67,7 @@ export async function fetchSubmission({
id,
answers:question_answer(*),
status_id,
feedback,
submitted_by:groupmember!inner(
profile!inner(
id,
@@ -80,14 +82,21 @@ export async function fetchSubmission({
}
export async function updateSubmission(
{ id, status_id, total }: { id?: number; status_id?: number; total?: number },
{
id,
status_id,
total,
feedback
}: { id?: number; status_id?: number; total?: number; feedback?: string },
otherArgs?: any
) {
const toUpdate: {
status_id?: number;
total?: number;
feedback?: string;
} = {
status_id
status_id,
feedback
};
if (typeof total === 'number') {