完善 AI 会话和配置隔离

This commit is contained in:
2026-05-29 11:28:41 +08:00
parent f4c7e4a08b
commit cc517e149d
10 changed files with 561 additions and 90 deletions
+34
View File
@@ -0,0 +1,34 @@
#pragma once
#include "LLMProvider.h"
#include <QString>
#include <QVector>
#include <memory>
class ConversationManager
{
public:
using ResponseCallback = LLMProvider::ResponseCallback;
ConversationManager();
~ConversationManager();
bool isBusy() const;
bool hasHistory() const;
bool setProvider(std::unique_ptr<LLMProvider> provider);
void sendUserMessage(const QString &message, ResponseCallback callback);
void cancel();
void clear();
private:
ChatRequest buildRequest(const ChatMessage &userMessage) const;
void appendExchange(const ChatMessage &userMessage, const ChatMessage &assistantMessage);
void trimHistory();
std::unique_ptr<LLMProvider> m_provider;
QVector<ChatMessage> m_history;
QString m_systemPrompt;
int m_maxHistoryMessages = 12;
};