microservices/item_response_theory/api_spec.yaml (516 lines of code) (raw):
tags:
- name: Train IRT Model
description: Routes for training IRT Models
- name: Fake Data
description: Creates fake data for training IRT
- name: User Ability
description: Fetches User Ability at different levels
- name: Next Item
description: Returns next Assessment Item
- name: Job Status Check
description: Checks and returns status of long running jobs
paths:
/item_response_theory/api/v1/train/level:
post:
tags:
- Student Mastery - Item Response Theory
summary: Train IRT Model
description: This route start batch job for training IRT model at a given level.
parameters: []
operationId: ItemResponseTheoryApiV1TrainLevel_POST
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/trainIRT"
responses:
"200":
description: Starting training of IRT Model at particular level
content:
application/json:
schema:
$ref: "#/components/schemas/trainIRTResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
security:
- api_key: []
/item_response_theory/api/v1/fake_data:
post:
tags:
- Student Mastery - Item Response Theory
summary: Fake Data
description: This route creates fake data at a Learning Unit level.
parameters: []
operationId: ItemResponseTheoryApiV1FakeData_POST
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/fakeData"
responses:
"200":
description: Creates Fake data at a Learning Unit
content:
application/json:
schema:
$ref: "#/components/schemas/fakeDataResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
security:
- api_key: []
/item_response_theory/api/v1/fake_data/course:
post:
tags:
- Student Mastery - Item Response Theory
summary: Fake Data
description: This route creates fake data at a Course level.
parameters: []
operationId: ItemResponseTheoryApiV1FakeDataCourse_POST
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/fakeDataCourse"
responses:
"200":
description: Creates Fake data at a Course Level
content:
application/json:
schema:
$ref: "#/components/schemas/fakeDataCourseResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
security:
- api_key: []
/item_response_theory/api/v1/ability:
get:
tags:
- Student Mastery - Item Response Theory
summary: User Ability
parameters:
- in: query
name: user_id
schema:
type: string
required: true
description: User Id
- in: query
name: level
schema:
type: string
required: true
description: Available values are course, competency, sub_competency, learning_objective, learning_unit
- in: query
name: doc_id
schema:
type: string
required: true
description: Firestore document ID
operationId: ItemResponseTheoryApiV1Ability_GET
description: This route fetches User Ability tree from a given level.
responses:
"200":
description: Returns ability of a user at a particular level
content:
application/json:
schema:
$ref: "#/components/schemas/abilityResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
security:
- api_key: []
/item_response_theory/api/v1/item:
get:
parameters:
- in: query
name: user_id
schema:
type: string
required: true
description: User Id
- in: query
name: learning_unit_id
schema:
type: string
required: true
description: Learning Unit ID
- in: query
name: activity_type
schema:
type: string
required: true
description: Available values are - choose_the_fact, answer_a_question, paraphrasing_practiccreate_knowledge_notes
- in: query
name: session_id
schema:
type: string
required: true
description: Current session ID
- in: query
name: prev_context_count
schema:
type: number
required: true
description: No of previous context to consider
tags:
- Student Mastery - Item Response Theory
summary: Next Item
description: This route fetches the next Assessment Id.
operationId: ItemResponseTheoryApiV1Item_GET
responses:
"200":
description: Returns aId of next Assessment as per IRT Model
content:
application/json:
schema:
$ref: "#/components/schemas/nextItemResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
security:
- api_key: []
/item_response_theory/api/v1/jobs/:
get:
tags:
- Job Status Check
description: This route fetches status of all jobs.
operationId: ItemResponseTheoryApiV1Jobs_GET
responses:
"200":
description: Returns the status of all jobs
content:
application/json:
schema:
$ref: "#/components/schemas/irtJobStatusCheck"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
security:
- api_key: []
/item_response_theory/api/v1/jobs/{job_name}:
get:
tags:
- Job Status Check
description: This route fetches status of given job name.
operationId: ItemResponseTheoryApiV1JobsJobname_GET
parameters:
- in: path
name: job_name
schema:
type: string
required: true
description: Job name
responses:
"200":
description: Returns the status a single job given job_name or all jobs
content:
application/json:
schema:
$ref: "#/components/schemas/irtJobStatusCheck"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
security:
- api_key: []
put:
tags:
- Job Status Check
description: This route removes the job from the namespace and updates the stauts.
parameters:
- in: path
name: job_name
schema:
type: string
required: true
description: Job name
operationId: ItemResponseTheoryApiV1JobsJobname_PUT
responses:
"200":
description: Removes the job from cluster and updates the status accordingly.
content:
application/json:
schema:
$ref: "#/components/schemas/JobPutResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
security:
- api_key: []
delete:
tags:
- Job Status Check
description: This route removes the the particular job document from firestore.
parameters:
- in: path
name: job_name
schema:
type: string
required: true
description: Job name
operationId: ItemResponseTheoryApiV1JobsJobname_DELETE
responses:
"200":
description: Deletes the job document from the firestore.
content:
application/json:
schema:
$ref: "#/components/schemas/JobDeleteResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
security:
- api_key: []
components:
securitySchemes:
api_key:
type: "apiKey"
name: "key"
in: "query"
schemas:
defaultResponseSchema:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "All good"
data:
type: object
irtJobStatusCheck:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched the job status"
data:
type: object
properties:
job_name:
type: string
example: "abcd-ajdf-sdfk-sdff"
created_by:
type: string
example: "Sample User"
created_time:
type: string
example: "2021-09-03 11:56:25.370711+00:00"
last_modified_by:
type: string
example: "Sample User"
last_modified_time:
type: string
example: "2021-09-03 11:56:25.370711+00:00"
input_data:
type: object
properties:
activity:
type: string
example: "paraphrasing_practice"
course_id:
type: string
example: "gjKlJ7cG72zEimRGQl0P"
learning_unit:
type: string
example: "0EMYZEw8g5v5Dqei7P6a"
save_csv:
type: boolean
example: true
status:
type: string
example: "succeeded"
type:
type: string
example: "assessment-items"
output_gcs_path:
type: string
example: gs://sample-bucket/assessment-items/paraphrasing_practice_2021-09-03 11:56:25.370711+00:00.csv
JobPutResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully updated the status and removed the job from namespace"
data:
type: object
JobDeleteResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "A job with name 1234-5678 has been deleted"
data:
type: object
trainIRTResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully started IRT training"
data:
type: object
trainIRT:
type: object
properties:
level:
type: string
example: "course"
update_collections:
type: boolean
example: true
id:
type: string
example: "djfaksdfasdfa"
fakeDataResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully generated fake data"
data:
type: object
properties:
lu_id:
type: string
example: "dsjakfdasfka"
fakeData:
type: object
properties:
num_users:
type: number
example: 20
num_items:
type: number
example: 20
item_type:
type: string
example: "choose_the_fact"
fakeDataCourseResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully generated fake data"
data:
type: object
fakeDataCourse:
type: object
properties:
num_users:
type: number
example: 20
course_id:
type: string
example: "fkdsajga495q4ks"
nextItemResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched next item ID"
data:
type: object
properties:
item_id:
type: string
example: "fdsajf45ajlsdfja"
abilityResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched Ability tree"
data:
type: object
properties:
id:
type: string
example : "dksafkjafsld"
title:
type: string
example: "Sample Level title"
ability:
type: number
example: 0.3
errorResponse:
type: object
properties:
success:
type: boolean
example: false
message:
type: string
example: Something went wrong
data:
type: object
nullable: true
example: null
badRequestResponse:
type: object
properties:
success:
type: boolean
example: false
message:
type: string
example: Validation failed
data:
type: object
nullable: true
example: null