Řešení testových úloh v češtině, matice a cizích jazycích. Srovnání výsledků automatického řešení úloh pomocí AI dokazují, že AI modelů dnes oproti situaci před půl rokem dosahují výrazné zlepšení v matematice, v ostatních předmětech jsou výsledky podobné.
- srovnává se pouze konečný výsledek, né postup řešení
- lze srovnávat pouze úlohy, které mají výsledek v textové (číselné) podobě, resp.nelze srovnávat např. konstrukční úlohy, kde výsledkem je geometrická konstrukce - AI nedostává žádné body
Úspěšnost dle předmětů
Procento vyjadřuje počet bodů z maximálního počtu možných bodů. Vstupem jsou všechny úlohy z databanky.
model o3-mini
model GTP-4o
Jak je to uděláno?
Vstupem jsou data.
//load quiz content
const markdownContent = await loadMarkdown();
//load quiz metadata
const jsonMetadata = await loadJson();
//init api call and expect to return structured output (json schema based on json metadata)
const response = await client.chat.completions.create({
model: modelName,
messages: [
{
role: "system", content: `You are an expert at ${subject === 'math' ? 'math' : subject === 'cz' ? 'czech language' : `${subject} language`}.
You will be given quiz with questions. The quiz format is markdown text.
Each question is identified by markdown headings. Some question can have sub questions.
- # heading is root questions - question id is identified by format # {number}
- ## heading is sub question - question id is identified by format ## {number}.{number}`
},
{
role: "user", content: [
{ type: "text", text: "Solve the quiz questions and return the final answer for each question or sub question. Do not include steps to explain the result." },
{ type: "text", text: markdownContent },
]
},
],
response_format: zodResponseFormat(quizSchema(jsonMetadata), code),
temperature: 1.,
max_tokens: 2000,
top_p: 1.
});
//get the result of api call
const result = response.choices[0].message.content;
//init quiz model
await dispatch.quiz.initAsync({ tree: convertTree(jsonMetadata), assetPath: pathes });
//submit quiz results
dispatch.quiz.submitQuiz(JSON.parse(result));
//log the total points
console.log(pathes, store.getState().quiz.totalPoints)