MCPcopy Create free account
hub / github.com/Palm1r/QodeAssist / prepareMessagesForRequest

Method prepareMessagesForRequest

ChatView/ChatModel.cpp:280–319  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

278}
279
280QJsonArray ChatModel::prepareMessagesForRequest(const QString &systemPrompt) const
281{
282 QJsonArray messages;
283 messages.append(QJsonObject{{"role", "system"}, {"content", systemPrompt}});
284
285 for (const auto &message : m_messages) {
286 QString role;
287 switch (message.role) {
288 case ChatRole::User:
289 role = "user";
290 break;
291 case ChatRole::Assistant:
292 role = "assistant";
293 break;
294 case ChatRole::Tool:
295 case ChatRole::FileEdit:
296 continue;
297 default:
298 continue;
299 }
300
301 QString content
302 = message.attachments.isEmpty()
303 ? message.content
304 : message.content + "\n\nAttached files list:"
305 + std::accumulate(
306 message.attachments.begin(),
307 message.attachments.end(),
308 QString(),
309 [](QString acc, const Context::ContentFile &attachment) {
310 return acc
311 + QString("\nname: %1\nfile content:\n%2")
312 .arg(attachment.filename, attachment.content);
313 });
314
315 messages.append(QJsonObject{{"role", role}, {"content", content}});
316 }
317
318 return messages;
319}
320
321QString ChatModel::lastMessageId() const
322{

Callers

nothing calls this directly

Calls 2

appendMethod · 0.80
isEmptyMethod · 0.45

Tested by

no test coverage detected