| 34 | } |
| 35 | |
| 36 | void UTTaskPool::addGenerateTask(const Task &task) |
| 37 | { |
| 38 | if (!idleModels.contains(task.model)) |
| 39 | createModels(task.model); |
| 40 | |
| 41 | if (idleModels.value(task.model).isEmpty()) { |
| 42 | taskQueue.enqueue(task); |
| 43 | } else { |
| 44 | auto llm = idleModels[task.model].takeFirst(); |
| 45 | busyModels[task.model].append(llm); |
| 46 | llmItemMap.insert(llm, task.item); |
| 47 | auto handler = std::bind(&UTTaskPool::handleReceiveResult, this, task.item, _1, _2); |
| 48 | Q_EMIT started(task.item); |
| 49 | |
| 50 | const QString &tstFW = SmartUTManager::instance()->utSetting()->value(kActiveGroup, kActiveTestFramework).toString(); |
| 51 | if (Utils::isCMakeFile(task.item->itemNode->filePath())) { |
| 52 | const auto &cmakePrompt = Utils::createCMakePrompt(tstFW); |
| 53 | llm->request(Utils::createRequestPrompt(task.item->itemNode->asFileNode(), "", cmakePrompt), handler); |
| 54 | } else { |
| 55 | const auto &userPrompt = SmartUTManager::instance()->userPrompt(tstFW); |
| 56 | llm->request(Utils::createRequestPrompt(task.item->itemNode->asFileNode(), "", userPrompt), handler); |
| 57 | } |
| 58 | } |
| 59 | } |
| 60 | |
| 61 | void UTTaskPool::stop(bool notify) |
| 62 | { |
no test coverage detected