check-generation-status.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. const { PrismaClient } = require('@prisma/client');
  2. const prisma = new PrismaClient();
  3. async function checkAndTriggerGeneration() {
  4. try {
  5. const book = await prisma.book.findUnique({
  6. where: { id: 1 }
  7. });
  8. console.log('📖 书籍信息:');
  9. console.log(` ID: ${book.id}`);
  10. console.log(` 标题: ${book.title}`);
  11. console.log(` 状态: ${book.status}`);
  12. console.log(` 进度: ${book.progress}%`);
  13. console.log('');
  14. // 检查大纲是否完整
  15. const chapters = await prisma.bookChapter.findMany({
  16. where: { bookId: 1 },
  17. orderBy: [
  18. { level: 'asc' },
  19. { number: 'asc' }
  20. ]
  21. });
  22. const level1 = chapters.filter(c => c.level === 1);
  23. const level2 = chapters.filter(c => c.level === 2);
  24. const level3 = chapters.filter(c => c.level === 3);
  25. console.log('📊 大纲结构:');
  26. console.log(` 章: ${level1.length}`);
  27. console.log(` 节: ${level2.length}`);
  28. console.log(` 小节: ${level3.length}`);
  29. console.log('');
  30. // 检查内容生成状态
  31. const contentCompleted = level3.filter(c => c.contentStatus === 'completed').length;
  32. const contentPending = level3.filter(c => c.contentStatus !== 'completed').length;
  33. console.log('📝 内容生成状态:');
  34. console.log(` 已完成: ${contentCompleted}`);
  35. console.log(` 待生成: ${contentPending}`);
  36. console.log('');
  37. if (contentPending > 0) {
  38. console.log('💡 建议操作:');
  39. console.log(' 需要通过API重新触发生成任务');
  40. console.log(' 由于大纲已完成,会跳过大钢生成阶段,直接进入内容生成');
  41. console.log('');
  42. console.log(' 触发方式:');
  43. console.log(' POST /api/book-generator/langgraph/books/1/generate');
  44. } else {
  45. console.log('✅ 所有内容已生成完成');
  46. }
  47. } catch (error) {
  48. console.error('错误:', error);
  49. } finally {
  50. await prisma.$disconnect();
  51. }
  52. }
  53. checkAndTriggerGeneration();