refactor: unify kubernetes_ table prefix, merge CI/CD models, LLM session support
- Rename container_clusters → kubernetes_clusters, container_topology_layouts → kubernetes_topology_layouts - LLM: add session_id to chat history for multi-turn conversation support - CI/CD: add pipeline_id, deploy_type, artifact_url, k8s_cluster_id to AppRelease - Cleanup: remove deprecated playbook handler, simplify automation models - Database: optimize auto-migrate model list - Frontend: AIOps assistant improvements, api.ts updates
This commit is contained in:
1 parent
9365c1e9db
commit
732974d152
14 files changed
+121
-474
No files matched your search
@@ -157,6 +157,8 @@ export function AIOpsAssistant() {
|
||||
const [config, setConfig] = useState<LLMConfigData>(defaultConfig);
|
||||
const [configReady, setConfigReady] = useState(false); // 已配置且启用
|
||||
const [contextLoading, setContextLoading] = useState<string | null>(null); // 快捷操作拉取平台数据中
|
||||
// 会话 ID:前端生成 UUID,用于隔离多轮对话 // Logan.Li
|
||||
const [sessionId, setSessionId] = useState(() => crypto.randomUUID());
|
||||
const messagesEndRef = useRef<HTMLDivElement>(null);
|
||||
|
||||
// 滚动到底部 // Logan.Li
|
||||
@@ -174,10 +176,10 @@ export function AIOpsAssistant() {
|
||||
}
|
||||
};
|
||||
|
||||
// 加载历史对话(按用户隔离,刷新后仍可见) // Logan.Li
|
||||
// 加载历史对话(按 session 隔离) // Logan.Li
|
||||
const loadHistory = async () => {
|
||||
try {
|
||||
const res = await aiApi.getHistory();
|
||||
const res = await aiApi.getHistory(sessionId);
|
||||
const items: ChatHistoryItem[] = (res as any)?.list || [];
|
||||
setMessages(
|
||||
items.map((m) => ({
|
||||
@@ -275,7 +277,7 @@ export function AIOpsAssistant() {
|
||||
m.id === assistantId ? { ...m, content: m.content + delta } : m,
|
||||
),
|
||||
);
|
||||
}, controller.signal);
|
||||
}, controller.signal, sessionId);
|
||||
} catch (e) {
|
||||
// 用户主动中止:保留已生成的部分内容,不当作错误 // Logan.Li
|
||||
if (controller.signal.aborted) {
|
||||
@@ -340,13 +342,15 @@ export function AIOpsAssistant() {
|
||||
await sendMessage(fullPrompt);
|
||||
};
|
||||
|
||||
// 新对话(清空本地 + 后端持久化历史) // Logan.Li
|
||||
// 新对话(生成新 session_id,清空本地 + 后端持久化历史) // Logan.Li
|
||||
const handleNewChat = async () => {
|
||||
try {
|
||||
await aiApi.clearHistory();
|
||||
} catch {
|
||||
// 清除失败不阻塞本地清空
|
||||
}
|
||||
const newSid = crypto.randomUUID();
|
||||
setSessionId(newSid);
|
||||
setMessages([]);
|
||||
setInput('');
|
||||
toast.success('已开始新对话');
|
||||
|
||||
Reference in new issue
Block a user