| 52 | } |
| 53 | |
| 54 | AbstractLLM *AiManager::getLLM(const LLMInfo &info) |
| 55 | { |
| 56 | if (d->models.contains(info)) { |
| 57 | if (info.type == LLMType::OPENAI) { |
| 58 | auto llm = new OpenAiCompatibleLLM(this); |
| 59 | llm->setModelName(info.modelName); |
| 60 | llm->setModelPath(info.modelPath); |
| 61 | if (!info.apikey.isEmpty()) |
| 62 | llm->setApiKey(info.apikey); |
| 63 | return llm; |
| 64 | } else if (info.type == LLMType::ZHIPU_CODEGEEX) { |
| 65 | auto llm = new CodeGeeXLLM(this); |
| 66 | llm->setModelName(info.modelName); |
| 67 | llm->setModelPath(info.modelPath); |
| 68 | return llm; |
| 69 | } |
| 70 | } |
| 71 | |
| 72 | return nullptr; |
| 73 | } |
| 74 | |
| 75 | bool AiManager::checkModelValid(const LLMInfo &info, QString *errStr) |
| 76 | { |
no test coverage detected