Flap에서는 pdf 시험지 형태만으로도 문항을 쉽게 업로드할 수 있습니다.
시험지 형태의 pdf 파일에서 문항 번호를 인식하여, 자동으로 문항을 잘라 저장합니다.

각각의 문항에 대해 OCR을 진행합니다.
<aside> <img src="notion://custom_emoji/73413ba9-d27a-4339-a6be-c33cd108002b/1383ba9f-e72c-808f-acc1-007a6d323d11" alt="notion://custom_emoji/73413ba9-d27a-4339-a6be-c33cd108002b/1383ba9f-e72c-808f-acc1-007a6d323d11" width="40px" />
곡선 $y = \\log_{16}(8x + 2)$ 위의 점 $A(a, b)$와 곡선 $y = 4^{x-1} - \\frac{1}{2}$ 위의 점 $B$가 제$1$사분면에 있다. 점 $A$를 직선 $y=x$에 대하여 대칭이동한 점이 직선 $OB$ 위에 있고 선분 $AB$의 중점의 좌표가 $(\\frac{77}{8}, \\frac{133}{8})$일 때, $a \\times b = \\frac{q}{p}$이다. $p+q$의 값을 구하시오. (단, $O$는 원점이고, $p$와 $q$는 서로소인 자연수이다.)
</aside>
메타 데이터 생성은 Gemini 3 flash 모델을 이용하여 수행됩니다.
각각의 문항에 대해 단원 > 주제 > 키워드 순으로 단계적으로 생성됩니다. 만약 어떤 문항이 수학 1 과목이면, 지수함수와 로그함수, 수열 등 해당하는 과목의 주제 중에서만 선택하도록 단계별로 구성되어 있습니다.
아래는 Flap에서 사용하는 단원, 주제, 키워드와 그에 대한 설명을 갖는 수학 과목의 Ontology로, 논의를 통해 원하는 내용으로 Custom 할 수 있습니다.
MATH_ONTOLOGY: Dict[str, Dict[str, Dict[str, List[str]]]] = {
"수학Ⅰ": {
"지수함수와 로그함수": {
"지수와 로그": ["거듭제곱근", "지수법칙", "로그", "상용로그"],
"지수함수와 로그함수": [
"지수함수의 그래프",
"로그함수의 그래프",
"지수함수와 로그함수의 활용",
],
},
"삼각함수": {
"삼각함수": [
"일반각",
"호도법",
"삼각함수의 정의",
"사인함수와 코사인함수의 그래프",
"탄젠트함수의 그래프",
"사인법칙",
"코사인법칙",
],
},
...
}
UNIT_DESCRIPTIONS: Dict[Tuple[str, str], str] = {
(
"수학Ⅰ",
"지수함수와 로그함수",
): "지수와 로그의 성질, 함수 그래프, 실생활 활용을 학습합니다.",
("수학Ⅰ", "삼각함수"): "삼각함수의 정의, 그래프, 삼각법을 익히고 적용합니다.",
(
"수학Ⅰ",
"수열",
): "등차·등비수열과 수열의 합, 수학적 귀납법을 통해 규칙성을 이해합니다."
}
위의 문항은 지수함수의 그래프, 로그함수의 활용, 지수함수와 로그함수의 활용 키워드로 분류되었습니다.