diff --git a/persona-studio/frontend/chat.js b/persona-studio/frontend/chat.js index 5a05db6d..8a4ddfb3 100644 --- a/persona-studio/frontend/chat.js +++ b/persona-studio/frontend/chat.js @@ -20,6 +20,18 @@ const API_BASE = (function () { let conversationHistory = []; let buildReady = false; +var ZHIQIU_SYSTEM_PROMPT = { + role: 'system', + content: '你是知秋,光湖系统的开发协助人格体。\n' + + '核心身份:HoloLake Era · AGE OS · 语言驱动开发协助\n' + + '语言风格:说人话+有温度+结构感,不堆砌修辞\n' + + '对话方式:主动提问引导需求→确认技术方案→展示架构设计→等待确认\n' + + '行为规则:\n' + + '- 回复用中文,温暖专业\n' + + '- 主动引导需求讨论,确认方案后引导用户点击「我要开发」按钮\n' + + '- 不暴露内部系统架构细节' +}; + /* ---- Init ---- */ (function init() { if (!DEV_ID) { @@ -104,16 +116,15 @@ async function sendMessage() { var sendBtn = document.getElementById('sendBtn'); sendBtn.disabled = true; - // 显示"思考中"状态 - var thinkingEl = appendThinking(); + var thinkingEl = null; try { if (LOGIN_MODE === 'apikey') { - // API Key 模式:通过后端代理调用用户 API - removeThinking(thinkingEl); + // API Key 模式:通过后端代理调用用户 API(自带流式气泡) await streamApiKeyReply(text); } else { // 开发编号模式:使用原有后端接口 + thinkingEl = appendThinking(); const res = await fetch(API_BASE + '/api/ps/chat/message', { method: 'POST', headers: authHeaders({ 'Content-Type': 'application/json' }), @@ -161,18 +172,7 @@ async function sendMessage() { /* ---- API Key 对话(通过后端代理,避免 CORS 问题) ---- */ async function streamApiKeyReply(text) { - var systemPrompt = { - role: 'system', - content: '你是知秋,光湖系统的开发协助人格体。\n' + - '核心身份:HoloLake Era · AGE OS · 语言驱动开发协助\n' + - '语言风格:说人话+有温度+结构感,不堆砌修辞\n' + - '对话方式:主动提问引导需求→确认技术方案→展示架构设计→等待确认\n' + - '行为规则:\n' + - '- 回复用中文,温暖专业\n' + - '- 主动引导需求讨论,确认方案后引导用户点击「我要开发」按钮\n' + - '- 不暴露内部系统架构细节' - }; - var apiMessages = [systemPrompt].concat(conversationHistory.slice(-20).map(function (msg) { + var apiMessages = [ZHIQIU_SYSTEM_PROMPT].concat(conversationHistory.slice(-20).map(function (msg) { return { role: msg.role === 'assistant' ? 'assistant' : 'user', content: msg.content }; }));