test-dynamic-prompt.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. /**
  2. * 测试动态提示词组装系统
  3. */
  4. // 模拟测试不同场景
  5. const testCases = [
  6. {
  7. name: '大学教材 - 操作系统',
  8. topic: '操作系统引论',
  9. description: '大学计算机专业教材,适合本科生,要求有案例和习题',
  10. },
  11. {
  12. name: '技术教程 - Python',
  13. topic: 'Python Web开发实战',
  14. description: '适合初学者的入门教程,要有代码示例和项目实战',
  15. },
  16. {
  17. name: '商业书籍',
  18. topic: '创业思维',
  19. description: '面向大众读者的商业书籍,要有真实案例,通俗易懂',
  20. },
  21. {
  22. name: '科普读物',
  23. topic: '量子力学揭秘',
  24. description: '面向大众的科普书,语言要生动有趣,用比喻解释复杂概念',
  25. },
  26. ];
  27. console.log('=== 动态提示词组装系统测试 ===\n');
  28. testCases.forEach((testCase, index) => {
  29. console.log(`\n${'='.repeat(80)}`);
  30. console.log(`测试 ${index + 1}: ${testCase.name}`);
  31. console.log(`${'='.repeat(80)}`);
  32. console.log(`书名: 《${testCase.topic}》`);
  33. console.log(`描述: ${testCase.description}\n`);
  34. // 模拟需求分析
  35. const text = `${testCase.topic} ${testCase.description}`.toLowerCase();
  36. const requirements = {
  37. bookType: '',
  38. audience: '',
  39. depth: '',
  40. industry: '',
  41. specialNeeds: [],
  42. };
  43. // 分析书籍类型
  44. if (/教材|课程|教学|大学|学校/i.test(text)) {
  45. requirements.bookType = '教材';
  46. } else if (/教程|实战|开发|编程|代码/i.test(text)) {
  47. requirements.bookType = '技术教程';
  48. } else if (/小说|故事|文学|传记|散文/i.test(text)) {
  49. requirements.bookType = '小说';
  50. } else if (/商业|管理|营销|创业|投资|经济/i.test(text)) {
  51. requirements.bookType = '商业';
  52. } else if (/科普|百科|科学|探索|揭秘/i.test(text)) {
  53. requirements.bookType = '科普';
  54. }
  55. // 分析目标读者
  56. if (/初学者|入门|新手|零基础|小白/i.test(text)) {
  57. requirements.audience = '初学者';
  58. } else if (/专业|高级|深入|专家|研究/i.test(text)) {
  59. requirements.audience = '专业人士';
  60. } else if (/大众|通俗|普及|广泛/i.test(text)) {
  61. requirements.audience = '大众读者';
  62. }
  63. // 分析内容深度
  64. if (/入门|基础|概论|简介|导论/i.test(text)) {
  65. requirements.depth = '入门';
  66. } else if (/进阶|高级|深入|精通/i.test(text)) {
  67. requirements.depth = '进阶';
  68. } else if (/专家|研究|前沿|底层|原理/i.test(text)) {
  69. requirements.depth = '专家';
  70. }
  71. // 分析行业领域
  72. if (/计算机|IT|编程|软件|互联网|AI|人工智能/i.test(text)) {
  73. requirements.industry = 'IT/计算机';
  74. } else if (/金融|股票|投资|银行|证券/i.test(text)) {
  75. requirements.industry = '金融';
  76. } else if (/医学|医疗|健康|临床|疾病/i.test(text)) {
  77. requirements.industry = '医学';
  78. } else if (/教育|教学|学习|学校|课程/i.test(text)) {
  79. requirements.industry = '教育';
  80. }
  81. // 分析特殊需求
  82. if (/案例|实例/i.test(text)) requirements.specialNeeds.push('有案例');
  83. if (/代码|示例/i.test(text)) requirements.specialNeeds.push('有代码');
  84. if (/习题|练习|作业/i.test(text)) requirements.specialNeeds.push('有习题');
  85. if (/图表|插图|配图/i.test(text)) requirements.specialNeeds.push('有图表');
  86. if (/项目|实战|实践/i.test(text)) requirements.specialNeeds.push('有项目实战');
  87. console.log('📊 需求分析结果:');
  88. console.log(` - 书籍类型: ${requirements.bookType || '未识别'}`);
  89. console.log(` - 目标读者: ${requirements.audience || '未识别'}`);
  90. console.log(` - 内容深度: ${requirements.depth || '未识别'}`);
  91. console.log(` - 行业领域: ${requirements.industry || '未识别'}`);
  92. console.log(` - 特殊需求: ${requirements.specialNeeds.join(', ') || '无'}`);
  93. console.log('');
  94. });
  95. console.log('\n✅ 测试完成!\n');
  96. console.log('说明:');
  97. console.log('1. 系统会根据用户描述自动分析需求');
  98. console.log('2. 根据书籍类型、读者、深度、行业动态组装提示词');
  99. console.log('3. 不同类型的书籍会应用不同的编写要求');
  100. console.log('4. 特殊需求(案例/代码/习题等)会被识别并加入提示词');