mirror of
				https://github.com/Palm1r/QodeAssist.git
				synced 2025-10-30 15:54:37 -04:00 
			
		
		
		
	Add stopping chat requests and button
This commit is contained in:
		| @ -187,4 +187,9 @@ int ChatModel::tokensThreshold() const | ||||
|     return settings.chatTokensThreshold(); | ||||
| } | ||||
|  | ||||
| QString ChatModel::lastMessageId() const | ||||
| { | ||||
|     return !m_messages.isEmpty() ? m_messages.last().id : ""; | ||||
| } | ||||
|  | ||||
| } // namespace QodeAssist::Chat | ||||
|  | ||||
| @ -66,6 +66,7 @@ public: | ||||
|     int tokensThreshold() const; | ||||
|  | ||||
|     QString currentModel() const; | ||||
|     QString lastMessageId() const; | ||||
|  | ||||
| signals: | ||||
|     void totalTokensChanged(); | ||||
|  | ||||
| @ -60,6 +60,11 @@ void ChatRootView::copyToClipboard(const QString &text) | ||||
|     QGuiApplication::clipboard()->setText(text); | ||||
| } | ||||
|  | ||||
| void ChatRootView::cancelRequest() | ||||
| { | ||||
|     m_clientInterface->cancelRequest(); | ||||
| } | ||||
|  | ||||
| void ChatRootView::generateColors() | ||||
| { | ||||
|     QColor baseColor = backgroundColor(); | ||||
|  | ||||
| @ -52,6 +52,7 @@ public: | ||||
| public slots: | ||||
|     void sendMessage(const QString &message) const; | ||||
|     void copyToClipboard(const QString &text); | ||||
|     void cancelRequest(); | ||||
|  | ||||
| signals: | ||||
|     void chatModelChanged(); | ||||
|  | ||||
| @ -56,6 +56,8 @@ ClientInterface::~ClientInterface() = default; | ||||
|  | ||||
| void ClientInterface::sendMessage(const QString &message) | ||||
| { | ||||
|     cancelRequest(); | ||||
|  | ||||
|     LOG_MESSAGE("Sending message: " + message); | ||||
|     LOG_MESSAGE("chatProvider " + Settings::generalSettings().chatLlmProviders.stringValue()); | ||||
|     LOG_MESSAGE("chatTemplate " + Settings::generalSettings().chatPrompts.stringValue()); | ||||
| @ -74,6 +76,9 @@ void ClientInterface::sendMessage(const QString &message) | ||||
|     providerRequest["stream"] = true; | ||||
|     providerRequest["messages"] = m_chatModel->prepareMessagesForRequest(context); | ||||
|  | ||||
|     if (!chatTemplate || !chatProvider) { | ||||
|         LOG_MESSAGE("Check settings, provider or template are not set"); | ||||
|     } | ||||
|     chatTemplate->prepareRequest(providerRequest, context); | ||||
|     chatProvider->prepareRequest(providerRequest, LLMCore::RequestType::Chat); | ||||
|  | ||||
| @ -89,7 +94,6 @@ void ClientInterface::sendMessage(const QString &message) | ||||
|     QJsonObject request; | ||||
|     request["id"] = QUuid::createUuid().toString(); | ||||
|  | ||||
|     m_accumulatedResponse.clear(); | ||||
|     m_chatModel->addMessage(message, ChatModel::ChatRole::User, ""); | ||||
|     m_requestHandler->sendLLMRequest(config, request); | ||||
| } | ||||
| @ -97,10 +101,15 @@ void ClientInterface::sendMessage(const QString &message) | ||||
| void ClientInterface::clearMessages() | ||||
| { | ||||
|     m_chatModel->clear(); | ||||
|     m_accumulatedResponse.clear(); | ||||
|     LOG_MESSAGE("Chat history cleared"); | ||||
| } | ||||
|  | ||||
| void ClientInterface::cancelRequest() | ||||
| { | ||||
|     auto id = m_chatModel->lastMessageId(); | ||||
|     m_requestHandler->cancelRequest(id); | ||||
| } | ||||
|  | ||||
| void ClientInterface::handleLLMResponse(const QString &response, | ||||
|                                         const QJsonObject &request, | ||||
|                                         bool isComplete) | ||||
|  | ||||
| @ -38,6 +38,7 @@ public: | ||||
|  | ||||
|     void sendMessage(const QString &message); | ||||
|     void clearMessages(); | ||||
|     void cancelRequest(); | ||||
|  | ||||
| signals: | ||||
|     void errorOccurred(const QString &error); | ||||
| @ -46,7 +47,6 @@ private: | ||||
|     void handleLLMResponse(const QString &response, const QJsonObject &request, bool isComplete); | ||||
|  | ||||
|     LLMCore::RequestHandler *m_requestHandler; | ||||
|     QString m_accumulatedResponse; | ||||
|     ChatModel *m_chatModel; | ||||
| }; | ||||
|  | ||||
|  | ||||
| @ -121,6 +121,15 @@ ChatRootView { | ||||
|                 text: qsTr("Send") | ||||
|                 onClicked: sendChatMessage() | ||||
|             } | ||||
|  | ||||
|             Button { | ||||
|                 id: stopButton | ||||
|  | ||||
|                 Layout.alignment: Qt.AlignBottom | ||||
|                 text: qsTr("Stop") | ||||
|                 onClicked: root.cancelRequest() | ||||
|             } | ||||
|  | ||||
|             Button { | ||||
|                 id: clearButton | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user