feat: Add Claude extended thinking (#254)

* feat: Add Claude extended thinking
* fix: Set 1.0 temperature for thinking mode
This commit is contained in:
Petr Mironychev
2025-11-12 18:33:15 +01:00
committed by GitHub
parent 89797639cf
commit 161d77ac04
23 changed files with 745 additions and 40 deletions

View File

@ -119,7 +119,15 @@ void ClientInterface::sendMessage(
if (msg.role == ChatModel::ChatRole::Tool || msg.role == ChatModel::ChatRole::FileEdit) {
continue;
}
messages.append({msg.role == ChatModel::ChatRole::User ? "user" : "assistant", msg.content});
LLMCore::Message apiMessage;
apiMessage.role = msg.role == ChatModel::ChatRole::User ? "user" : "assistant";
apiMessage.content = msg.content;
apiMessage.isThinking = (msg.role == ChatModel::ChatRole::Thinking);
apiMessage.isRedacted = msg.isRedacted;
apiMessage.signature = msg.signature;
messages.append(apiMessage);
}
context.history = messages;
@ -189,6 +197,18 @@ void ClientInterface::sendMessage(
this,
&ClientInterface::handleCleanAccumulatedData,
Qt::UniqueConnection);
connect(
provider,
&LLMCore::Provider::thinkingBlockReceived,
m_chatModel,
&ChatModel::addThinkingBlock,
Qt::UniqueConnection);
connect(
provider,
&LLMCore::Provider::redactedThinkingBlockReceived,
m_chatModel,
&ChatModel::addRedactedThinkingBlock,
Qt::UniqueConnection);
provider->sendRequest(requestId, config.url, config.providerRequest);
}