Use initializer lists instead of append where applicable.

Signed-off-by: Adam Treat <treat.adam@gmail.com>
This commit is contained in:
Adam Treat 2024-03-08 10:32:47 -05:00 committed by AT
parent 9c755d25c4
commit 26cedb83b0
2 changed files with 139 additions and 127 deletions

View File

@ -211,13 +211,14 @@ void Download::removeModel(const QString &modelFile)
} }
if (!shouldRemoveInstalled) { if (!shouldRemoveInstalled) {
QVector<QPair<int, QVariant>> data; QVector<QPair<int, QVariant>> data = {
data.append({ ModelList::InstalledRole, false }); { ModelList::InstalledRole, false },
data.append({ ModelList::BytesReceivedRole, 0 }); { ModelList::BytesReceivedRole, 0 },
data.append({ ModelList::BytesTotalRole, 0 }); { ModelList::BytesTotalRole, 0 },
data.append({ ModelList::TimestampRole, 0 }); { ModelList::TimestampRole, 0 },
data.append({ ModelList::SpeedRole, QString() }); { ModelList::SpeedRole, QString() },
data.append({ ModelList::DownloadErrorRole, QString() }); { ModelList::DownloadErrorRole, QString() }
};
ModelList::globalInstance()->updateDataByFilename(modelFile, data); ModelList::globalInstance()->updateDataByFilename(modelFile, data);
} }
} }
@ -359,11 +360,12 @@ void Download::handleDownloadProgress(qint64 bytesReceived, qint64 bytesTotal)
else else
speedText = QString::number(static_cast<double>(speed / (1024.0 * 1024.0)), 'f', 2) + " MB/s"; speedText = QString::number(static_cast<double>(speed / (1024.0 * 1024.0)), 'f', 2) + " MB/s";
QVector<QPair<int, QVariant>> data; QVector<QPair<int, QVariant>> data = {
data.append({ ModelList::BytesReceivedRole, currentBytesReceived }); { ModelList::BytesReceivedRole, currentBytesReceived },
data.append({ ModelList::BytesTotalRole, bytesTotal }); { ModelList::BytesTotalRole, bytesTotal },
data.append({ ModelList::SpeedRole, speedText }); { ModelList::SpeedRole, speedText },
data.append({ ModelList::TimestampRole, currentUpdate }); { ModelList::TimestampRole, currentUpdate }
};
ModelList::globalInstance()->updateDataByFilename(modelFilename, data); ModelList::globalInstance()->updateDataByFilename(modelFilename, data);
} }
@ -466,9 +468,10 @@ void Download::handleModelDownloadFinished()
modelReply->deleteLater(); modelReply->deleteLater();
tempFile->deleteLater(); tempFile->deleteLater();
if (!hasRetry(modelFilename)) { if (!hasRetry(modelFilename)) {
QVector<QPair<int, QVariant>> data; QVector<QPair<int, QVariant>> data = {
data.append({ ModelList::DownloadingRole, false }); { ModelList::DownloadingRole, false },
data.append({ ModelList::DownloadErrorRole, errorString }); { ModelList::DownloadErrorRole, errorString }
};
ModelList::globalInstance()->updateDataByFilename(modelFilename, data); ModelList::globalInstance()->updateDataByFilename(modelFilename, data);
} }
return; return;
@ -504,9 +507,10 @@ void Download::handleHashAndSaveFinished(bool success, const QString &error,
QString modelFilename = modelReply->request().attribute(QNetworkRequest::User).toString(); QString modelFilename = modelReply->request().attribute(QNetworkRequest::User).toString();
Network::globalInstance()->sendDownloadFinished(modelFilename, success); Network::globalInstance()->sendDownloadFinished(modelFilename, success);
QVector<QPair<int, QVariant>> data; QVector<QPair<int, QVariant>> data = {
data.append({ ModelList::CalcHashRole, false }); { ModelList::CalcHashRole, false },
data.append({ ModelList::DownloadingRole, false }); { ModelList::DownloadingRole, false }
};
modelReply->deleteLater(); modelReply->deleteLater();
tempFile->deleteLater(); tempFile->deleteLater();

View File

@ -980,25 +980,26 @@ QString ModelList::clone(const ModelInfo &model)
const QString id = Network::globalInstance()->generateUniqueId(); const QString id = Network::globalInstance()->generateUniqueId();
addModel(id); addModel(id);
QVector<QPair<int, QVariant>> data; QVector<QPair<int, QVariant>> data = {
data.append({ ModelList::InstalledRole, model.installed }); { ModelList::InstalledRole, model.installed },
data.append({ ModelList::IsCloneRole, true }); { ModelList::IsCloneRole, true },
data.append({ ModelList::NameRole, uniqueModelName(model) }); { ModelList::NameRole, uniqueModelName(model) },
data.append({ ModelList::FilenameRole, model.filename() }); { ModelList::FilenameRole, model.filename() },
data.append({ ModelList::DirpathRole, model.dirpath }); { ModelList::DirpathRole, model.dirpath },
data.append({ ModelList::OnlineRole, model.isOnline }); { ModelList::OnlineRole, model.isOnline },
data.append({ ModelList::TemperatureRole, model.temperature() }); { ModelList::TemperatureRole, model.temperature() },
data.append({ ModelList::TopPRole, model.topP() }); { ModelList::TopPRole, model.topP() },
data.append({ ModelList::MinPRole, model.minP() }); { ModelList::MinPRole, model.minP() },
data.append({ ModelList::TopKRole, model.topK() }); { ModelList::TopKRole, model.topK() },
data.append({ ModelList::MaxLengthRole, model.maxLength() }); { ModelList::MaxLengthRole, model.maxLength() },
data.append({ ModelList::PromptBatchSizeRole, model.promptBatchSize() }); { ModelList::PromptBatchSizeRole, model.promptBatchSize() },
data.append({ ModelList::ContextLengthRole, model.contextLength() }); { ModelList::ContextLengthRole, model.contextLength() },
data.append({ ModelList::GpuLayersRole, model.gpuLayers() }); { ModelList::GpuLayersRole, model.gpuLayers() },
data.append({ ModelList::RepeatPenaltyRole, model.repeatPenalty() }); { ModelList::RepeatPenaltyRole, model.repeatPenalty() },
data.append({ ModelList::RepeatPenaltyTokensRole, model.repeatPenaltyTokens() }); { ModelList::RepeatPenaltyTokensRole, model.repeatPenaltyTokens() },
data.append({ ModelList::PromptTemplateRole, model.promptTemplate() }); { ModelList::PromptTemplateRole, model.promptTemplate() },
data.append({ ModelList::SystemPromptRole, model.systemPrompt() }); { ModelList::SystemPromptRole, model.systemPrompt() }
};
updateData(id, data); updateData(id, data);
return id; return id;
} }
@ -1143,13 +1144,14 @@ void ModelList::updateModelsFromDirectory()
} }
for (const QString &id : modelsById) { for (const QString &id : modelsById) {
QVector<QPair<int, QVariant>> data; QVector<QPair<int, QVariant>> data = {
data.append({ InstalledRole, true }); { InstalledRole, true },
data.append({ FilenameRole, filename }); { FilenameRole, filename },
// FIXME: WE should change this to use a consistent filename for online models // FIXME: WE should change this to use a consistent filename for online models
data.append({ OnlineRole, filename.startsWith("chatgpt-") || filename.startsWith("nomic-") }); { OnlineRole, filename.startsWith("chatgpt-") || filename.startsWith("nomic-") },
data.append({ DirpathRole, info.dir().absolutePath() + "/" }); { DirpathRole, info.dir().absolutePath() + "/" },
data.append({ FilesizeRole, toFileSize(info.size()) }); { FilesizeRole, toFileSize(info.size()) }
};
updateData(id, data); updateData(id, data);
} }
} }
@ -1348,23 +1350,24 @@ void ModelList::parseModelsJsonFile(const QByteArray &jsonData, bool save)
if (!contains(id)) if (!contains(id))
addModel(id); addModel(id);
QVector<QPair<int, QVariant>> data; QVector<QPair<int, QVariant>> data = {
data.append({ ModelList::NameRole, modelName }); { ModelList::NameRole, modelName },
data.append({ ModelList::FilenameRole, modelFilename }); { ModelList::FilenameRole, modelFilename },
data.append({ ModelList::FilesizeRole, modelFilesize }); { ModelList::FilesizeRole, modelFilesize },
data.append({ ModelList::HashRole, modelHash }); { ModelList::HashRole, modelHash },
data.append({ ModelList::HashAlgorithmRole, ModelInfo::Md5 }); { ModelList::HashAlgorithmRole, ModelInfo::Md5 },
data.append({ ModelList::DefaultRole, isDefault }); { ModelList::DefaultRole, isDefault },
data.append({ ModelList::DescriptionRole, description }); { ModelList::DescriptionRole, description },
data.append({ ModelList::RequiresVersionRole, requiresVersion }); { ModelList::RequiresVersionRole, requiresVersion },
data.append({ ModelList::VersionRemovedRole, versionRemoved }); { ModelList::VersionRemovedRole, versionRemoved },
data.append({ ModelList::UrlRole, url }); { ModelList::UrlRole, url },
data.append({ ModelList::DisableGUIRole, disableGUI }); { ModelList::DisableGUIRole, disableGUI },
data.append({ ModelList::OrderRole, order }); { ModelList::OrderRole, order },
data.append({ ModelList::RamrequiredRole, ramrequired }); { ModelList::RamrequiredRole, ramrequired },
data.append({ ModelList::ParametersRole, parameters }); { ModelList::ParametersRole, parameters },
data.append({ ModelList::QuantRole, quant }); { ModelList::QuantRole, quant },
data.append({ ModelList::TypeRole, type }); { ModelList::TypeRole, type },
};
if (obj.contains("temperature")) if (obj.contains("temperature"))
data.append({ ModelList::TemperatureRole, obj["temperature"].toDouble() }); data.append({ ModelList::TemperatureRole, obj["temperature"].toDouble() });
if (obj.contains("topP")) if (obj.contains("topP"))
@ -1405,19 +1408,20 @@ void ModelList::parseModelsJsonFile(const QByteArray &jsonData, bool save)
changeId(modelFilename, id); changeId(modelFilename, id);
if (!contains(id)) if (!contains(id))
addModel(id); addModel(id);
QVector<QPair<int, QVariant>> data; QVector<QPair<int, QVariant>> data = {
data.append({ ModelList::NameRole, modelName }); { ModelList::NameRole, modelName },
data.append({ ModelList::FilenameRole, modelFilename }); { ModelList::FilenameRole, modelFilename },
data.append({ ModelList::FilesizeRole, "minimal" }); { ModelList::FilesizeRole, "minimal" },
data.append({ ModelList::OnlineRole, true }); { ModelList::OnlineRole, true },
data.append({ ModelList::DescriptionRole, { ModelList::DescriptionRole,
tr("<strong>OpenAI's ChatGPT model GPT-3.5 Turbo</strong><br>") + chatGPTDesc }); tr("<strong>OpenAI's ChatGPT model GPT-3.5 Turbo</strong><br>") + chatGPTDesc },
data.append({ ModelList::RequiresVersionRole, "2.4.2" }); { ModelList::RequiresVersionRole, "2.4.2" },
data.append({ ModelList::OrderRole, "ca" }); { ModelList::OrderRole, "ca" },
data.append({ ModelList::RamrequiredRole, 0 }); { ModelList::RamrequiredRole, 0 },
data.append({ ModelList::ParametersRole, "?" }); { ModelList::ParametersRole, "?" },
data.append({ ModelList::QuantRole, "NA" }); { ModelList::QuantRole, "NA" },
data.append({ ModelList::TypeRole, "GPT" }); { ModelList::TypeRole, "GPT" }
};
updateData(id, data); updateData(id, data);
} }
@ -1431,19 +1435,20 @@ void ModelList::parseModelsJsonFile(const QByteArray &jsonData, bool save)
changeId(modelFilename, id); changeId(modelFilename, id);
if (!contains(id)) if (!contains(id))
addModel(id); addModel(id);
QVector<QPair<int, QVariant>> data; QVector<QPair<int, QVariant>> data = {
data.append({ ModelList::NameRole, modelName }); { ModelList::NameRole, modelName },
data.append({ ModelList::FilenameRole, modelFilename }); { ModelList::FilenameRole, modelFilename },
data.append({ ModelList::FilesizeRole, "minimal" }); { ModelList::FilesizeRole, "minimal" },
data.append({ ModelList::OnlineRole, true }); { ModelList::OnlineRole, true },
data.append({ ModelList::DescriptionRole, { ModelList::DescriptionRole,
tr("<strong>OpenAI's ChatGPT model GPT-4</strong><br>") + chatGPTDesc + chatGPT4Warn }); tr("<strong>OpenAI's ChatGPT model GPT-4</strong><br>") + chatGPTDesc + chatGPT4Warn },
data.append({ ModelList::RequiresVersionRole, "2.4.2" }); { ModelList::RequiresVersionRole, "2.4.2" },
data.append({ ModelList::OrderRole, "cb" }); { ModelList::OrderRole, "cb" },
data.append({ ModelList::RamrequiredRole, 0 }); { ModelList::RamrequiredRole, 0 },
data.append({ ModelList::ParametersRole, "?" }); { ModelList::ParametersRole, "?" },
data.append({ ModelList::QuantRole, "NA" }); { ModelList::QuantRole, "NA" },
data.append({ ModelList::TypeRole, "GPT" }); { ModelList::TypeRole, "GPT" }
};
updateData(id, data); updateData(id, data);
} }
@ -1460,38 +1465,40 @@ void ModelList::parseModelsJsonFile(const QByteArray &jsonData, bool save)
changeId(modelFilename, id); changeId(modelFilename, id);
if (!contains(id)) if (!contains(id))
addModel(id); addModel(id);
QVector<QPair<int, QVariant>> data; QVector<QPair<int, QVariant>> data = {
data.append({ ModelList::NameRole, modelName }); { ModelList::NameRole, modelName },
data.append({ ModelList::FilenameRole, modelFilename }); { ModelList::FilenameRole, modelFilename },
data.append({ ModelList::FilesizeRole, "minimal" }); { ModelList::FilesizeRole, "minimal" },
data.append({ ModelList::OnlineRole, true }); { ModelList::OnlineRole, true },
data.append({ ModelList::DisableGUIRole, true }); { ModelList::DisableGUIRole, true },
data.append({ ModelList::DescriptionRole, { ModelList::DescriptionRole,
tr("<strong>LocalDocs Nomic Atlas Embed</strong><br>") + nomicEmbedDesc }); tr("<strong>LocalDocs Nomic Atlas Embed</strong><br>") + nomicEmbedDesc },
data.append({ ModelList::RequiresVersionRole, "2.6.3" }); { ModelList::RequiresVersionRole, "2.6.3" },
data.append({ ModelList::OrderRole, "na" }); { ModelList::OrderRole, "na" },
data.append({ ModelList::RamrequiredRole, 0 }); { ModelList::RamrequiredRole, 0 },
data.append({ ModelList::ParametersRole, "?" }); { ModelList::ParametersRole, "?" },
data.append({ ModelList::QuantRole, "NA" }); { ModelList::QuantRole, "NA" },
data.append({ ModelList::TypeRole, "Bert" }); { ModelList::TypeRole, "Bert" }
};
updateData(id, data); updateData(id, data);
} }
} }
void ModelList::updateDiscoveredInstalled(const ModelInfo &info) void ModelList::updateDiscoveredInstalled(const ModelInfo &info)
{ {
QVector<QPair<int, QVariant>> data; QVector<QPair<int, QVariant>> data = {
data.append({ ModelList::InstalledRole, true }); { ModelList::InstalledRole, true },
data.append({ ModelList::IsDiscoveredRole, true }); { ModelList::IsDiscoveredRole, true },
data.append({ ModelList::NameRole, info.name() }); { ModelList::NameRole, info.name() },
data.append({ ModelList::FilenameRole, info.filename() }); { ModelList::FilenameRole, info.filename() },
data.append({ ModelList::DescriptionRole, info.description() }); { ModelList::DescriptionRole, info.description() },
data.append({ ModelList::UrlRole, info.url() }); { ModelList::UrlRole, info.url() },
data.append({ ModelList::LikesRole, info.likes() }); { ModelList::LikesRole, info.likes() },
data.append({ ModelList::DownloadsRole, info.downloads() }); { ModelList::DownloadsRole, info.downloads() },
data.append({ ModelList::RecencyRole, info.recency() }); { ModelList::RecencyRole, info.recency() },
data.append({ ModelList::QuantRole, info.quant() }); { ModelList::QuantRole, info.quant() },
data.append({ ModelList::TypeRole, info.type() }); { ModelList::TypeRole, info.type() }
};
updateData(info.id(), data); updateData(info.id(), data);
} }
@ -1890,20 +1897,21 @@ void ModelList::handleDiscoveryItemFinished()
if (!contains(id)) if (!contains(id))
addModel(id); addModel(id);
QVector<QPair<int, QVariant>> data; QVector<QPair<int, QVariant>> data = {
data.append({ ModelList::NameRole, modelName }); { ModelList::NameRole, modelName },
data.append({ ModelList::FilenameRole, modelFilename }); { ModelList::FilenameRole, modelFilename },
data.append({ ModelList::FilesizeRole, modelFilesize }); { ModelList::FilesizeRole, modelFilesize },
data.append({ ModelList::DescriptionRole, description }); { ModelList::DescriptionRole, description },
data.append({ ModelList::IsDiscoveredRole, true }); { ModelList::IsDiscoveredRole, true },
data.append({ ModelList::UrlRole, url }); { ModelList::UrlRole, url },
data.append({ ModelList::LikesRole, likes }); { ModelList::LikesRole, likes },
data.append({ ModelList::DownloadsRole, downloads }); { ModelList::DownloadsRole, downloads },
data.append({ ModelList::RecencyRole, lastModified }); { ModelList::RecencyRole, lastModified },
data.append({ ModelList::QuantRole, toQuantString(modelFilename) }); { ModelList::QuantRole, toQuantString(modelFilename) },
data.append({ ModelList::TypeRole, type }); { ModelList::TypeRole, type },
data.append({ ModelList::HashRole, linkedEtagHeader }); { ModelList::HashRole, linkedEtagHeader },
data.append({ ModelList::HashAlgorithmRole, ModelInfo::Sha256 }); { ModelList::HashAlgorithmRole, ModelInfo::Sha256 }
};
updateData(id, data); updateData(id, data);
++m_discoverResultsCompleted; ++m_discoverResultsCompleted;