Fix Lesson 8 Task 1

This commit is contained in:
Stanislav Mykhailenko 2024-08-02 14:09:39 +03:00
parent f6ae234ec9
commit b07f920ebf
GPG key ID: 1E95E66A9C9D6A36
2 changed files with 20 additions and 35 deletions

View file

@ -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,14 +45,13 @@ 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');
@ -62,23 +64,6 @@ void LlmMathQuiz::newAnswer(QNetworkReply *reply)
ui->e_task->setText("Error!");
ui->b_generate->setEnabled(true);
}
} 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);
}
}
}
void LlmMathQuiz::sendPrompt(QString prompt)

View file

@ -74,12 +74,12 @@
<item>
<widget class="QLabel" name="label_6">
<property name="text">
<string>LLM opinion:</string>
<string>Answer match:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="l_opinion">
<widget class="QLabel" name="l_match">
<property name="text">
<string>Not checked</string>
</property>