From 339270aefd65bbdab179785596243612ca48894d Mon Sep 17 00:00:00 2001 From: Robin COuret Date: Wed, 25 Feb 2026 11:45:04 +0100 Subject: [PATCH] add question evaluation --- .../v1/__pycache__/metrics.cpython-311.pyc | Bin 817 -> 743 bytes server/src/app/api/v1/metrics.py | 5 +- .../src/components/CollectKnowledge.vue | 9 +- .../src/components/EvaluateQuestion.vue | 93 +++++++++++++++++- .../src/components/GenerateQuestion.vue | 38 +++++++ .../src/components/LoadingModel.vue | 13 --- user-interface/src/stores/item.ts | 14 +++ .../src/stores/{steps.ts => step.ts} | 6 +- .../src/types/{types.ts => types.d.ts} | 8 +- user-interface/src/views/ExperimentView.vue | 7 +- 10 files changed, 161 insertions(+), 32 deletions(-) create mode 100644 user-interface/src/components/GenerateQuestion.vue delete mode 100644 user-interface/src/components/LoadingModel.vue create mode 100644 user-interface/src/stores/item.ts rename user-interface/src/stores/{steps.ts => step.ts} (77%) rename user-interface/src/types/{types.ts => types.d.ts} (59%) diff --git a/server/src/app/api/v1/__pycache__/metrics.cpython-311.pyc b/server/src/app/api/v1/__pycache__/metrics.cpython-311.pyc index 0be0f2d65b1aef748b49b9b19743f4d2cfd581db..ac7232bdfe4ffb77186221c94a4bb88e3d177f34 100644 GIT binary patch delta 283 zcmdnU_MDY>IWI340}vQ)o0q9JkynzjZKAqn5)(rzV+u<;;~Lgwj0_B`ffxd!*izXR zu)}!BbP5})$`tlg<}{`hjuw_>KxM1pN~1VZID;89xhC$DnfOePoh>)Dq$o3avMi$$ z2P;sKCQ}jTJxqF&&oEgsnoVY7R%Zbz1^__TIZglo delta 379 zcmaFPx{-}{IWI340}$*L=*x_p$ScV>X`;GjeF{SgOAcEudlWk(0~13kV+w0J;~KVQ zj0_B`ffxd!I8r$laKd=VbP7AF$`p=N)-+se%{1$dYl}EP|jp#Mkfw7kWQu|uF1ZP z@mhR94#+{pqCld7;i;_F3X6-fCRb!l8vJf>OI~1+{0x*}@YCd;e2r0CO1!uzSue4m zKrc5xB{ip54`y%?>*T+T@)qnsrMK9MK<+8J#Zr)8Tv7zGU?oElKaeWo1ronFY=C-8 nb5iY!#DQE;&=k*|9Kxh0pmTu%1x;>XvSy5!yoX7h1*97Q2EbS* diff --git a/server/src/app/api/v1/metrics.py b/server/src/app/api/v1/metrics.py index c4be00d..58c8c02 100644 --- a/server/src/app/api/v1/metrics.py +++ b/server/src/app/api/v1/metrics.py @@ -1,12 +1,11 @@ from fastapi import APIRouter from src.app.models.metric import Metric -from src.app.models.question import Question from src.app.crud.crud_metrics import create_metric router = APIRouter(tags=["metrics"]) @router.post("/metrics/") -def create(question: Question): - created_metric: Metric = create_metric(question) +def create(metric: Metric): + created_metric: Metric = create_metric(metric) return created_metric diff --git a/user-interface/src/components/CollectKnowledge.vue b/user-interface/src/components/CollectKnowledge.vue index 8f53723..7a359bc 100644 --- a/user-interface/src/components/CollectKnowledge.vue +++ b/user-interface/src/components/CollectKnowledge.vue @@ -4,6 +4,11 @@ import { ref } from "vue"; import type { Knowledge } from "@/types/types"; + import { useStepStore } from '@/stores/step' + import { useItemStore } from '@/stores/item' + + const stepStore = useStepStore() + const itemStore = useItemStore() const knowledgeModel = ref("") const uriModel = ref("") @@ -18,8 +23,10 @@ } if(validation(knowledge)){ try { - await apiClient.post("api/v1/knowledges/", knowledge) + const response: Knowledge = await apiClient.post("api/v1/knowledges/", knowledge) Toast.open({message: "Knowledge collected", type: "is-success"}) + itemStore.$patch({ knowledge:response }) + stepStore.nextStep() } catch { Toast.open({message: "Data entry error", type: "is-danger"}) diff --git a/user-interface/src/components/EvaluateQuestion.vue b/user-interface/src/components/EvaluateQuestion.vue index aed82b8..3de3457 100644 --- a/user-interface/src/components/EvaluateQuestion.vue +++ b/user-interface/src/components/EvaluateQuestion.vue @@ -1,13 +1,98 @@ \ No newline at end of file diff --git a/user-interface/src/components/GenerateQuestion.vue b/user-interface/src/components/GenerateQuestion.vue new file mode 100644 index 0000000..e627605 --- /dev/null +++ b/user-interface/src/components/GenerateQuestion.vue @@ -0,0 +1,38 @@ + + + + + \ No newline at end of file diff --git a/user-interface/src/components/LoadingModel.vue b/user-interface/src/components/LoadingModel.vue deleted file mode 100644 index 610916e..0000000 --- a/user-interface/src/components/LoadingModel.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/user-interface/src/stores/item.ts b/user-interface/src/stores/item.ts new file mode 100644 index 0000000..d0c4662 --- /dev/null +++ b/user-interface/src/stores/item.ts @@ -0,0 +1,14 @@ +import { ref, computed } from 'vue' +import { defineStore } from 'pinia' + +import type { Knowledge } from '@/types/types' + +export const useItemStore = defineStore('item', () => { + const knowledge = ref() + //const indexStep = ref(0) + + //const getCurrentComponent = computed(() => steps[indexStep.value]) + + + return { knowledge } +}) \ No newline at end of file diff --git a/user-interface/src/stores/steps.ts b/user-interface/src/stores/step.ts similarity index 77% rename from user-interface/src/stores/steps.ts rename to user-interface/src/stores/step.ts index f3cc41c..503f363 100644 --- a/user-interface/src/stores/steps.ts +++ b/user-interface/src/stores/step.ts @@ -2,16 +2,16 @@ import { ref, computed, type Component } from 'vue' import { defineStore } from 'pinia' import CollectKnowledge from '@/components/CollectKnowledge.vue' -import LoadingModel from '@/components/LoadingModel.vue' import EvaluateQuestion from '@/components/EvaluateQuestion.vue' +import GenerateQuestion from '@/components/GenerateQuestion.vue' const steps: Component = [ CollectKnowledge, - LoadingModel, + GenerateQuestion, EvaluateQuestion ] -export const useStepsStore = defineStore('steps', () => { +export const useStepStore = defineStore('step', () => { const indexStep = ref(0) const getCurrentComponent = computed(() => steps[indexStep.value]) diff --git a/user-interface/src/types/types.ts b/user-interface/src/types/types.d.ts similarity index 59% rename from user-interface/src/types/types.ts rename to user-interface/src/types/types.d.ts index 0e252a1..e84d79f 100644 --- a/user-interface/src/types/types.ts +++ b/user-interface/src/types/types.d.ts @@ -7,14 +7,14 @@ interface Knowledge { interface Question { id: number | null, question: string, - knowledgId: number, + knowledgeId: number, metric: Metric | null } interface Metric { - id: number | null, - questionId: number, - needIndex: number + //id: number | null, + question_id: number, + need_index: number } export type {Knowledge, Question, Metric} \ No newline at end of file diff --git a/user-interface/src/views/ExperimentView.vue b/user-interface/src/views/ExperimentView.vue index 62c5ac9..6d65e5c 100644 --- a/user-interface/src/views/ExperimentView.vue +++ b/user-interface/src/views/ExperimentView.vue @@ -1,9 +1,8 @@