/** * 测试优化后的提示词对 MiniMax M2.7 的效果 */ const axios = require('axios'); const fs = require('fs'); const path = require('path'); require('dotenv').config(); // 使用 MiniMax 官方 API const MINI_MAX_CONFIG = { baseUrl: 'https://api.minimax.chat/v1', apiKey: process.env.MINIMAX_API_KEY || '', model: 'MiniMax-M2.7', }; const OPTIMIZED_SYSTEM_PROMPT = `你是一位专业的图书策划编辑,擅长为各类主题设计清晰、严谨、有逻辑递进的书籍大纲。 ## 你的职责 根据用户提供的书名、规模和主题,设计一份完整的书籍大纲。 ## 工作要求 1. 分析主题复杂度,在允许的章节范围内决定最合适的章节数 2. 章节之间必须有清晰的逻辑递进关系(由浅入深、由理论到实践等) 3. 每章的知识点要具体,不能泛泛而谈 4. 预估字数要符合章节内容量 5. 核心知识点应独立成章,不要过度合并 ## 输出格式要求(非常重要) 1. 必须且只能返回纯 JSON,不要任何解释、思考过程或其他文字 2. 不要使用 markdown 代码块标记 3. 不要包含任何标签(如details、think等) 4. 直接从 { 开始,到 } 结束 5. JSON 必须合法,可以被 JSON.parse 解析 ## JSON 格式 { "mainTheme": "主题一句话描述", "structureLogic": "章节组织逻辑说明", "chapters": [ { "number": 1, "title": "章节标题", "summary": "章节摘要(2-3句话)", "keyPoints": ["知识点1", "知识点2"], "estimatedWords": 2000 } ] }`; async function callMiniMaxAPI(messages) { const response = await axios.post( `${MINI_MAX_CONFIG.baseUrl}/chat/completions`, { model: MINI_MAX_CONFIG.model, messages: messages, temperature: 0.7, max_tokens: 4000, }, { headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${MINI_MAX_CONFIG.apiKey}`, }, timeout: 120000, } ); return response.data.choices?.[0]?.message?.content; } function cleanAndParseJSON(response) { if (!response) return null; let cleaned = response.trim(); cleaned = cleaned.replace(/[\u003C]details[\u003E][\s\S]*?[\u003C]\/details[\u003E]/g, ''); cleaned = cleaned.replace(/[\u003C]think[\u003E][\s\S]*?[\u003C]\/think[\u003E]/g, ''); cleaned = cleaned.replace(/```[\s\S]*?```/g, ''); const jsonMatch = cleaned.match(/\{[\s\S]*\}/); if (!jsonMatch) return null; try { return JSON.parse(jsonMatch[0]); } catch { return null; } } async function main() { console.log('=== 测试优化后的提示词 ===\n'); console.log('模型: MiniMax-M2.7'); console.log('主题: 操作系统引论\n'); const startTime = Date.now(); try { const content = await callMiniMaxAPI([ { role: 'system', content: OPTIMIZED_SYSTEM_PROMPT }, { role: 'user', content: '书名:《操作系统引论》\n规模:大学专业教材\n章节范围:10-12章' }, ]); if (!content) { console.log('❌ API返回内容为空'); return; } const elapsed = ((Date.now() - startTime) / 1000).toFixed(1); console.log(`⏱️ 耗时: ${elapsed}秒\n`); console.log('=== 原始输出(前500字符)==='); console.log(content.substring(0, 500)); console.log('...\n'); const parsed = cleanAndParseJSON(content); if (parsed) { console.log('✅ JSON解析成功!\n'); console.log(`📊 章节数: ${parsed.chapters?.length || 0}章`); console.log(`📖 主题: ${parsed.mainTheme}\n`); console.log('=== 章节结构 ==='); parsed.chapters.forEach((ch) => { console.log(`第${ch.number}章 ${ch.title} (${ch.estimatedWords}字)`); }); const resultDir = path.join(__dirname, 'test-results'); if (!fs.existsSync(resultDir)) { fs.mkdirSync(resultDir, { recursive: true }); } fs.writeFileSync( path.join(resultDir, 'minimax-optimized.json'), JSON.stringify({ time: elapsed, chapters: parsed.chapters.length, data: parsed }, null, 2) ); console.log('\n✅ 结果已保存到 test-results/minimax-optimized.json'); } else { console.log('❌ JSON解析失败'); console.log('\n=== 完整输出 ==='); console.log(content); } } catch (error) { console.error('❌ 测试失败:', error.message); } } main();