def get_question_by_knowledge(): """ 根据知识点查询试题 --- tags: - 知识点 definitions: - schema: id: Knowledge properties: name: type: string description: 知识点名称 created_at: type: string description: '试题创建时间,字符串格式' updated_at: type: string description: '试题更新时间,字符串格式' parameters: - name: k in: query description: k 知识点名称 responses: '200': description: 试题列表 schema: type: array items: $ref: '#/definitions/Question' """ return response({})
def analysis_knowledge(): """ 学生知识点掌握情况. 在已经做过的试题基础上,统计知识点的掌握情况. 如果做题数目少于设定值,则不进行计算. --- tags: - 错题集 parameters: - name: body in: body schema: required: - sid properties: sid: type: string description: 学生id cid: type: string description: 章节id responses: '200': description: 学生的错题集 """ return response({})
def get_error_book(sid): """ 根据学生查询错题集. --- tags: - 错题集 parameters: - name: sid in: path description: 学生id required: true type: string - name: pageNum in: query description: 分页页码, 当前页码 required: false type: int default: 1 - name: pageSize in: query description: 分页页码, 当前页码 required: false type: int default: 10 responses: '200': description: 学生的错题集 schema: type: array $ref: '#/definitions/Question' """ return response({})
def list_knowledge(): """ 查询知识点列表. --- tags: - 知识点 parameters: - name: pageNum in: query description: 分页页码, 当前页码 required: false type: int default: 1 - name: pageSize in: query description: 分页页码, 当前页码 required: false type: int default: 10 responses: '200': description: 知识点列表 schema: type: array items: $ref: '#/definitions/Knowledge' """ return response({})
def list_questions(): """ 查询试题列表. --- tags: - 试题 parameters: - name: pageNum in: query description: 分页页码, 当前页码 required: false type: int default: 1 - name: pageSize in: query description: 分页页码, 当前页码 required: false type: int default: 10 responses: '200': description: 试题列表 schema: type: array items: $ref: '#/definitions/Question' """ return response({})
def textbooks(): """ 查询教材列表. --- tags: - 章节 definitions: - schema: id: Textbook properties: id: type: string description: 教材id name: type: string description: 教材名称 responses: '200': description: 查询到的试题 schema: type: array items: $ref: '#/definitions/Textbook' """ return response({})
def list_student(): """ 获取学生列表 --- tags: - 学生 parameters: - name: pageNum in: query description: 分页页码, 当前页码 required: false type: int default: 1 - name: pageSize in: query description: 分页页码, 当前页码 required: false type: int default: 50 responses: '200': description: 学生列表 schema: type: array items: $ref: '#/definitions/Student' """ return response({})
def get_student(sid): """ 获取学生信息. --- tags: - 学生 definitions: - schema: id: Student properties: id: type: string description: 学生id question: type: name description: 学生名称 parameters: - name: sid in: path description: 学生id required: true type: string responses: '200': description: 查询到的学生 schema: type: Student $ref: '#/definitions/Student' """ return response({})
def chapter(tid): """ 指定教材的章节. --- tags: - 章节 definitions: - schema: id: Section properties: id: type: string description: 节id name: type: string description: 节名称 - schema: id: Chapter properties: id: type: string description: 章id name: type: string description: 章名称 sections: type: array items: $ref: '#/definitions/Section' description: 节列表 parameters: - name: tid in: path description: 教材id required: true type: string responses: '200': description: 章节列表 schema: type: array items: $ref: '#/definitions/Chapter' """ return response({})
def analysis_all_knowledge(sid): """ 学生知识点掌握情况. 在已经做过的试题基础上,统计知识点的掌握情况. 如果做题数目少于设定值,则不进行计算. --- tags: - 错题集 parameters: - name: sid in: path description: 学生id required: true type: string responses: '200': description: 学生的错题集 """ return response({})
def get_question_knowledge(qid): """ 根据试题id查询试题的知识点. --- tags: - 试题 parameters: - name: qid in: path description: 试题id required: true type: string responses: '200': description: 查询到的知识点列表 schema: type: array items: type: string """ return response({})
def get_question(qid): """ 根据试题id查询试题. --- tags: - 试题 definitions: - schema: id: Option properties: key: type: string description: 选项 value: type: string description: 选项取值 - schema: id: Question properties: id: type: string description: 试题id question: type: string description: 试题题干 type: type: string description: 试题类型 complexity: type: number description: '试题复杂度,浮点型' option: type: array items: $ref: '#/definitions/Option' description: 试题选项 knowledge: type: string description: 试题所属知识点 answer: type: string description: 答案 analysis: type: string description: 试题分析 created_at: type: string description: '试题创建时间,字符串格式' updated_at: type: string description: '试题更新时间,字符串格式' parameters: - name: qid in: path description: 试题id required: true type: string responses: '200': description: 查询到的试题 schema: type: Question $ref: '#/definitions/Question' """ return response({})
def question(): """ 根据试题查询对应相似的试题. --- tags: - 相似题 definitions: - schema: id: QuestionWithReason description: 推荐试题和理由 allOf: - $ref: '#/definitions/Question' - type: object properties: reason: type: string description: 推荐理由 parameters: - name: body in: body schema: required: - id properties: id: type: string description: '试题id,查询该试题的相似id' types: type: array description: 试题选项集合 items: type: string count: type: number description: '推荐题目计数,最多支持20题' no_ids: type: array description: '不加入的试题id' items: type: string responses: '200': description: 相似题目 schema: type: array items: $ref: '#/definitions/QuestionWithReason' """ payload = request.json count = max(payload.get('count', 5), 20) condition = parse_condition(payload) # 向三个方向搜索试题,相同知识点-下位知识点-上位知识点 # 相同知识点上的试题 qs = OrderQuestion() same_cql = "MATCH(q0:Question)-[r0]->(k:Knowledge)<-[r]-(q:Question) " \ "WHERE " + condition + \ "RETURN q, count(r0) as cnt, '相同知识点-' + k.name AS kw ORDER BY count(r0) DESC " cursor = graph.run(same_cql) parse_cursor(cursor, qs, count) if len(qs) >= count: return response(qs.values()) # 下位知识点,向下细化 suf_cql = "MATCH(q0:Question)-[r*2..3]->(k:Knowledge)<-[r2]-(q:Question) " \ "WHERE " + condition + \ "RETURN q, '细化知识点-' + k.name as kw" cursor = graph.run(suf_cql) parse_cursor(cursor, qs, count) if len(qs) >= count: return response(qs.values()) # 上位知识点,向上延伸 pre_cql = "MATCH(q0:Question)-[r0]->(k0)<-[r1]-(k1:Knowledge)<-[r*0..1]-(k:Knowledge)<-[rn]-(q:Question) " \ "WHERE " + condition + \ "RETURN q, '拓展知识点-' + k.name AS kw" cursor = graph.run(pre_cql) parse_cursor(cursor, qs, count) return response(qs.values())