From b07f920ebfbe72b77dbc9e1ae3d337003b9c2403 Mon Sep 17 00:00:00 2001 From: Stanislav Mykhailenko Date: Fri, 2 Aug 2024 14:09:39 +0300 Subject: [PATCH] Fix Lesson 8 Task 1 --- Lesson_8/Task_1/llmmathquiz.cpp | 51 ++++++++++++--------------------- Lesson_8/Task_1/llmmathquiz.ui | 4 +-- 2 files changed, 20 insertions(+), 35 deletions(-) diff --git a/Lesson_8/Task_1/llmmathquiz.cpp b/Lesson_8/Task_1/llmmathquiz.cpp index de47f06..49fa3b1 100644 --- a/Lesson_8/Task_1/llmmathquiz.cpp +++ b/Lesson_8/Task_1/llmmathquiz.cpp @@ -24,11 +24,14 @@ void LlmMathQuiz::submit() ui->e_llm->setText(m_llmAnswer); ui->b_submit->setEnabled(false); ui->e_user->setReadOnly(true); - ui->l_opinion->setText("Generating…"); - sendPrompt("The two following lines will contain two answers for a mathematical task. The first value is the expected answer, and the second one is the answer provided. Respond with \"true\" if the provided answer matches the expected answer, and \"false\" if it is not. Always use lowercase." - + QString("\n") + m_llmAnswer - + QString("\n") + ui->e_user->text()); + if (m_llmAnswer.contains(ui->e_user->text())) { + ui->l_matched->setText(QString::number(ui->l_matched->text().toInt() + 1)); + ui->l_match->setText("True"); + } else + ui->l_match->setText("False"); + + ui->b_generate->setEnabled(true); } void LlmMathQuiz::generate() @@ -42,42 +45,24 @@ void LlmMathQuiz::generate() ui->e_task->setText("Generating…"); ui->e_user->clear(); ui->e_llm->clear(); - ui->l_opinion->setText("Not checked"); + ui->l_match->setText("Not checked"); sendPrompt("Generate a math task and a correct answer for it. The task can be anything from simple equations, to logical tasks. Both the task and the answer need to take only one line. Provide the task on the first line, and the answer on the second line. Never use equation 2x + 5 = 11."); } void LlmMathQuiz::newAnswer(QNetworkReply *reply) { - if (!m_taskReceived) { - if (reply->error() == QNetworkReply::NoError) { - QByteArray textReply = reply->readAll(); - QStringList data = QJsonDocument::fromJson(textReply).object().value("response").toString().split('\n'); - ui->e_task->setText(data[0]); - m_llmAnswer = data[1].isEmpty() ? data[2] : data[1]; - m_taskReceived = true; - ui->b_submit->setEnabled(true); - ui->e_user->setReadOnly(false); - } else { - ui->e_task->setText("Error!"); - ui->b_generate->setEnabled(true); - } + if (reply->error() == QNetworkReply::NoError) { + QByteArray textReply = reply->readAll(); + QStringList data = QJsonDocument::fromJson(textReply).object().value("response").toString().split('\n'); + ui->e_task->setText(data[0]); + m_llmAnswer = data[1].isEmpty() ? data[2] : data[1]; + m_taskReceived = true; + ui->b_submit->setEnabled(true); + ui->e_user->setReadOnly(false); } else { - if (reply->error() == QNetworkReply::NoError) { - QByteArray textReply = reply->readAll(); - QString data = QJsonDocument::fromJson(textReply).object().value("response").toString(); - if (data == "true") { - ui->l_matched->setText(QString::number(ui->l_matched->text().toInt() + 1)); - ui->l_opinion->setText("Match"); - } else if (data == "false") - ui->l_opinion->setText("Mismatch"); - else - ui->l_opinion->setText("Not match nor mismatch"); - ui->b_generate->setEnabled(true); - } else { - ui->e_llm->setText("Error!"); - ui->b_submit->setEnabled(true); - } + ui->e_task->setText("Error!"); + ui->b_generate->setEnabled(true); } } diff --git a/Lesson_8/Task_1/llmmathquiz.ui b/Lesson_8/Task_1/llmmathquiz.ui index eb4e943..b63b715 100644 --- a/Lesson_8/Task_1/llmmathquiz.ui +++ b/Lesson_8/Task_1/llmmathquiz.ui @@ -74,12 +74,12 @@ - LLM opinion: + Answer match: - + Not checked