sync-generate.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. const { PrismaClient } = require('@prisma/client');
  2. const prisma = new PrismaClient();
  3. async function resetAndSyncGenerate() {
  4. const bookId = 1;
  5. console.log(`重置并同步生成书籍 ${bookId}...\n`);
  6. // 1. 清空章节数据
  7. const deleted = await prisma.bookChapter.deleteMany({
  8. where: { bookId }
  9. });
  10. console.log(`已清空: ${deleted.count} 条`);
  11. // 2. 重置状态
  12. await prisma.book.update({
  13. where: { id: bookId },
  14. data: {
  15. status: 'draft',
  16. progress: 0,
  17. errorMsg: null,
  18. }
  19. });
  20. console.log('状态已重置\n');
  21. // 3. 同步调用生成(不使用队列)
  22. console.log('直接调用生成器(同步模式)...');
  23. const { langGraphGenerator } = require('./src/modules/book-generator');
  24. try {
  25. const book = await prisma.book.findUnique({ where: { id: bookId } });
  26. await langGraphGenerator.generate(
  27. bookId.toString(),
  28. book.description,
  29. book.bookScale || '130000'
  30. );
  31. console.log('\n✅ 生成完成!');
  32. const finalBook = await prisma.book.findUnique({ where: { id: bookId } });
  33. console.log(`最终状态: ${finalBook.status}, 进度: ${finalBook.progress}%`);
  34. } catch (error) {
  35. console.error('\n❌ 生成失败:', error.message);
  36. await prisma.book.update({
  37. where: { id: bookId },
  38. data: {
  39. status: 'failed',
  40. errorMsg: error.message,
  41. }
  42. });
  43. }
  44. await prisma.$disconnect();
  45. }
  46. resetAndSyncGenerate().catch(console.error);