diff --git a/gpt4all-chat/chatllm.cpp b/gpt4all-chat/chatllm.cpp index 8d3acb21..481a2256 100644 --- a/gpt4all-chat/chatllm.cpp +++ b/gpt4all-chat/chatllm.cpp @@ -465,7 +465,7 @@ void ChatLLM::forceUnloadModel() void ChatLLM::unloadModel() { - if (!isModelLoaded() || m_isServer) // FIXME: What if server switches models? + if (!isModelLoaded() || m_isServer) return; saveState(); @@ -479,7 +479,7 @@ void ChatLLM::unloadModel() void ChatLLM::reloadModel() { - if (isModelLoaded() || m_isServer) // FIXME: What if server switches models? + if (isModelLoaded() || m_isServer) return; #if defined(DEBUG_MODEL_LOADING) diff --git a/gpt4all-chat/server.cpp b/gpt4all-chat/server.cpp index 3575883b..0b493dc1 100644 --- a/gpt4all-chat/server.cpp +++ b/gpt4all-chat/server.cpp @@ -170,18 +170,6 @@ QHttpServerResponse Server::handleCompletionRequest(const QHttpServerRequest &re } } - setShouldBeLoaded(true); - - if (!foundModel) { - if (!loadDefaultModel()) { - std::cerr << "ERROR: couldn't load default model " << model.toStdString() << std::endl; - return QHttpServerResponse(QHttpServerResponder::StatusCode::BadRequest); - } - } else if (!loadModel(model)) { - std::cerr << "ERROR: couldn't load model " << model.toStdString() << std::endl; - return QHttpServerResponse(QHttpServerResponder::StatusCode::InternalServerError); - } - // We only support one prompt for now QList prompts; if (body.contains("prompt")) { @@ -284,6 +272,19 @@ QHttpServerResponse Server::handleCompletionRequest(const QHttpServerRequest &re // adds prompt/response items to GUI emit requestServerNewPromptResponsePair(actualPrompt); // blocks + // load the new model if necessary + setShouldBeLoaded(true); + + if (!foundModel) { + if (!loadDefaultModel()) { + std::cerr << "ERROR: couldn't load default model " << model.toStdString() << std::endl; + return QHttpServerResponse(QHttpServerResponder::StatusCode::BadRequest); + } + } else if (!loadModel(model)) { + std::cerr << "ERROR: couldn't load model " << model.toStdString() << std::endl; + return QHttpServerResponse(QHttpServerResponder::StatusCode::InternalServerError); + } + // don't remember any context resetContextProtected();