llm-content-creator 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (438) hide show
  1. package/README.md +309 -0
  2. package/dist/application/workflow/SyncExecutor.d.ts +75 -0
  3. package/dist/application/workflow/SyncExecutor.d.ts.map +1 -0
  4. package/dist/application/workflow/SyncExecutor.js +370 -0
  5. package/dist/application/workflow/SyncExecutor.js.map +1 -0
  6. package/dist/application/workflow/types.d.ts +46 -0
  7. package/dist/application/workflow/types.d.ts.map +1 -0
  8. package/dist/application/workflow/types.js +7 -0
  9. package/dist/application/workflow/types.js.map +1 -0
  10. package/dist/config/index.d.ts +173 -0
  11. package/dist/config/index.d.ts.map +1 -0
  12. package/dist/config/index.js +288 -0
  13. package/dist/config/index.js.map +1 -0
  14. package/dist/domain/entities/QualityCheck.d.ts +181 -0
  15. package/dist/domain/entities/QualityCheck.d.ts.map +1 -0
  16. package/dist/domain/entities/QualityCheck.js +39 -0
  17. package/dist/domain/entities/QualityCheck.js.map +1 -0
  18. package/dist/domain/entities/Result.d.ts +103 -0
  19. package/dist/domain/entities/Result.d.ts.map +1 -0
  20. package/dist/domain/entities/Result.js +15 -0
  21. package/dist/domain/entities/Result.js.map +1 -0
  22. package/dist/domain/entities/Task.d.ts +130 -0
  23. package/dist/domain/entities/Task.d.ts.map +1 -0
  24. package/dist/domain/entities/Task.js +64 -0
  25. package/dist/domain/entities/Task.js.map +1 -0
  26. package/dist/domain/entities/TaskStep.d.ts +160 -0
  27. package/dist/domain/entities/TaskStep.d.ts.map +1 -0
  28. package/dist/domain/entities/TaskStep.js +30 -0
  29. package/dist/domain/entities/TaskStep.js.map +1 -0
  30. package/dist/domain/entities/TokenUsage.d.ts +70 -0
  31. package/dist/domain/entities/TokenUsage.d.ts.map +1 -0
  32. package/dist/domain/entities/TokenUsage.js +42 -0
  33. package/dist/domain/entities/TokenUsage.js.map +1 -0
  34. package/dist/domain/entities/index.d.ts +11 -0
  35. package/dist/domain/entities/index.d.ts.map +1 -0
  36. package/dist/domain/entities/index.js +16 -0
  37. package/dist/domain/entities/index.js.map +1 -0
  38. package/dist/domain/repositories/QualityCheckRepository.d.ts +49 -0
  39. package/dist/domain/repositories/QualityCheckRepository.d.ts.map +1 -0
  40. package/dist/domain/repositories/QualityCheckRepository.js +5 -0
  41. package/dist/domain/repositories/QualityCheckRepository.js.map +1 -0
  42. package/dist/domain/repositories/ResultRepository.d.ts +43 -0
  43. package/dist/domain/repositories/ResultRepository.d.ts.map +1 -0
  44. package/dist/domain/repositories/ResultRepository.js +5 -0
  45. package/dist/domain/repositories/ResultRepository.js.map +1 -0
  46. package/dist/domain/repositories/TaskRepository.d.ts +240 -0
  47. package/dist/domain/repositories/TaskRepository.d.ts.map +1 -0
  48. package/dist/domain/repositories/TaskRepository.js +7 -0
  49. package/dist/domain/repositories/TaskRepository.js.map +1 -0
  50. package/dist/domain/workflow/CheckpointManager.d.ts +94 -0
  51. package/dist/domain/workflow/CheckpointManager.d.ts.map +1 -0
  52. package/dist/domain/workflow/CheckpointManager.js +224 -0
  53. package/dist/domain/workflow/CheckpointManager.js.map +1 -0
  54. package/dist/domain/workflow/ContentCreatorGraph.d.ts +17 -0
  55. package/dist/domain/workflow/ContentCreatorGraph.d.ts.map +1 -0
  56. package/dist/domain/workflow/ContentCreatorGraph.js +381 -0
  57. package/dist/domain/workflow/ContentCreatorGraph.js.map +1 -0
  58. package/dist/domain/workflow/State.d.ts +172 -0
  59. package/dist/domain/workflow/State.d.ts.map +1 -0
  60. package/dist/domain/workflow/State.js +184 -0
  61. package/dist/domain/workflow/State.js.map +1 -0
  62. package/dist/domain/workflow/index.d.ts +11 -0
  63. package/dist/domain/workflow/index.d.ts.map +1 -0
  64. package/dist/domain/workflow/index.js +15 -0
  65. package/dist/domain/workflow/index.js.map +1 -0
  66. package/dist/domain/workflow/nodes/BaseNode.d.ts +134 -0
  67. package/dist/domain/workflow/nodes/BaseNode.d.ts.map +1 -0
  68. package/dist/domain/workflow/nodes/BaseNode.js +253 -0
  69. package/dist/domain/workflow/nodes/BaseNode.js.map +1 -0
  70. package/dist/domain/workflow/nodes/CheckImageNode.d.ts +43 -0
  71. package/dist/domain/workflow/nodes/CheckImageNode.d.ts.map +1 -0
  72. package/dist/domain/workflow/nodes/CheckImageNode.js +254 -0
  73. package/dist/domain/workflow/nodes/CheckImageNode.js.map +1 -0
  74. package/dist/domain/workflow/nodes/CheckTextNode.d.ts +66 -0
  75. package/dist/domain/workflow/nodes/CheckTextNode.d.ts.map +1 -0
  76. package/dist/domain/workflow/nodes/CheckTextNode.js +530 -0
  77. package/dist/domain/workflow/nodes/CheckTextNode.js.map +1 -0
  78. package/dist/domain/workflow/nodes/GenerateImageNode.d.ts +44 -0
  79. package/dist/domain/workflow/nodes/GenerateImageNode.d.ts.map +1 -0
  80. package/dist/domain/workflow/nodes/GenerateImageNode.js +272 -0
  81. package/dist/domain/workflow/nodes/GenerateImageNode.js.map +1 -0
  82. package/dist/domain/workflow/nodes/OrganizeNode.d.ts +49 -0
  83. package/dist/domain/workflow/nodes/OrganizeNode.d.ts.map +1 -0
  84. package/dist/domain/workflow/nodes/OrganizeNode.js +241 -0
  85. package/dist/domain/workflow/nodes/OrganizeNode.js.map +1 -0
  86. package/dist/domain/workflow/nodes/SearchNode.d.ts +48 -0
  87. package/dist/domain/workflow/nodes/SearchNode.d.ts.map +1 -0
  88. package/dist/domain/workflow/nodes/SearchNode.js +151 -0
  89. package/dist/domain/workflow/nodes/SearchNode.js.map +1 -0
  90. package/dist/domain/workflow/nodes/WriteNode.d.ts +68 -0
  91. package/dist/domain/workflow/nodes/WriteNode.d.ts.map +1 -0
  92. package/dist/domain/workflow/nodes/WriteNode.js +431 -0
  93. package/dist/domain/workflow/nodes/WriteNode.js.map +1 -0
  94. package/dist/domain/workflow/nodes/config/index.js +287 -0
  95. package/dist/domain/workflow/nodes/domain/entities/Task.js +68 -0
  96. package/dist/domain/workflow/nodes/domain/workflow/State.js +200 -0
  97. package/dist/domain/workflow/nodes/domain/workflow/nodes/BaseNode.js +328 -0
  98. package/dist/domain/workflow/nodes/domain/workflow/nodes/CheckTextNode.js +500 -0
  99. package/dist/domain/workflow/nodes/index.d.ts +13 -0
  100. package/dist/domain/workflow/nodes/index.d.ts.map +1 -0
  101. package/dist/domain/workflow/nodes/index.js +13 -0
  102. package/dist/domain/workflow/nodes/index.js.map +1 -0
  103. package/dist/domain/workflow/nodes/infrastructure/logging/logger.js +275 -0
  104. package/dist/domain/workflow/nodes/services/llm/EnhancedLLMService.js +559 -0
  105. package/dist/index.d.ts +24 -0
  106. package/dist/index.d.ts.map +1 -0
  107. package/dist/index.js +34 -0
  108. package/dist/index.js.map +1 -0
  109. package/dist/infrastructure/cache/CacheService.d.ts +139 -0
  110. package/dist/infrastructure/cache/CacheService.d.ts.map +1 -0
  111. package/dist/infrastructure/cache/CacheService.js +419 -0
  112. package/dist/infrastructure/cache/CacheService.js.map +1 -0
  113. package/dist/infrastructure/cache/index.d.ts +5 -0
  114. package/dist/infrastructure/cache/index.d.ts.map +1 -0
  115. package/dist/infrastructure/cache/index.js +6 -0
  116. package/dist/infrastructure/cache/index.js.map +1 -0
  117. package/dist/infrastructure/database/BaseRepository.d.ts +98 -0
  118. package/dist/infrastructure/database/BaseRepository.d.ts.map +1 -0
  119. package/dist/infrastructure/database/BaseRepository.js +178 -0
  120. package/dist/infrastructure/database/BaseRepository.js.map +1 -0
  121. package/dist/infrastructure/database/MemoryTaskRepository.d.ts +77 -0
  122. package/dist/infrastructure/database/MemoryTaskRepository.d.ts.map +1 -0
  123. package/dist/infrastructure/database/MemoryTaskRepository.js +309 -0
  124. package/dist/infrastructure/database/MemoryTaskRepository.js.map +1 -0
  125. package/dist/infrastructure/database/PostgresQualityCheckRepository.d.ts +36 -0
  126. package/dist/infrastructure/database/PostgresQualityCheckRepository.d.ts.map +1 -0
  127. package/dist/infrastructure/database/PostgresQualityCheckRepository.js +89 -0
  128. package/dist/infrastructure/database/PostgresQualityCheckRepository.js.map +1 -0
  129. package/dist/infrastructure/database/PostgresTaskRepository.d.ts +94 -0
  130. package/dist/infrastructure/database/PostgresTaskRepository.d.ts.map +1 -0
  131. package/dist/infrastructure/database/PostgresTaskRepository.js +364 -0
  132. package/dist/infrastructure/database/PostgresTaskRepository.js.map +1 -0
  133. package/dist/infrastructure/database/ResultRepository.d.ts +41 -0
  134. package/dist/infrastructure/database/ResultRepository.d.ts.map +1 -0
  135. package/dist/infrastructure/database/ResultRepository.js +86 -0
  136. package/dist/infrastructure/database/ResultRepository.js.map +1 -0
  137. package/dist/infrastructure/database/SQLiteTaskRepository.d.ts +101 -0
  138. package/dist/infrastructure/database/SQLiteTaskRepository.d.ts.map +1 -0
  139. package/dist/infrastructure/database/SQLiteTaskRepository.js +548 -0
  140. package/dist/infrastructure/database/SQLiteTaskRepository.js.map +1 -0
  141. package/dist/infrastructure/database/index.d.ts +32 -0
  142. package/dist/infrastructure/database/index.d.ts.map +1 -0
  143. package/dist/infrastructure/database/index.js +72 -0
  144. package/dist/infrastructure/database/index.js.map +1 -0
  145. package/dist/infrastructure/logging/logger.d.ts +69 -0
  146. package/dist/infrastructure/logging/logger.d.ts.map +1 -0
  147. package/dist/infrastructure/logging/logger.js +169 -0
  148. package/dist/infrastructure/logging/logger.js.map +1 -0
  149. package/dist/infrastructure/monitoring/LoggingService.d.ts +109 -0
  150. package/dist/infrastructure/monitoring/LoggingService.d.ts.map +1 -0
  151. package/dist/infrastructure/monitoring/LoggingService.js +198 -0
  152. package/dist/infrastructure/monitoring/LoggingService.js.map +1 -0
  153. package/dist/infrastructure/monitoring/MetricsService.d.ts +112 -0
  154. package/dist/infrastructure/monitoring/MetricsService.d.ts.map +1 -0
  155. package/dist/infrastructure/monitoring/MetricsService.js +362 -0
  156. package/dist/infrastructure/monitoring/MetricsService.js.map +1 -0
  157. package/dist/infrastructure/monitoring/SentryService.d.ts +108 -0
  158. package/dist/infrastructure/monitoring/SentryService.d.ts.map +1 -0
  159. package/dist/infrastructure/monitoring/SentryService.js +282 -0
  160. package/dist/infrastructure/monitoring/SentryService.js.map +1 -0
  161. package/dist/infrastructure/monitoring/index.d.ts +7 -0
  162. package/dist/infrastructure/monitoring/index.d.ts.map +1 -0
  163. package/dist/infrastructure/monitoring/index.js +10 -0
  164. package/dist/infrastructure/monitoring/index.js.map +1 -0
  165. package/dist/infrastructure/queue/TaskQueue.d.ts +110 -0
  166. package/dist/infrastructure/queue/TaskQueue.d.ts.map +1 -0
  167. package/dist/infrastructure/queue/TaskQueue.js +363 -0
  168. package/dist/infrastructure/queue/TaskQueue.js.map +1 -0
  169. package/dist/infrastructure/queue/index.d.ts +5 -0
  170. package/dist/infrastructure/queue/index.d.ts.map +1 -0
  171. package/dist/infrastructure/queue/index.js +5 -0
  172. package/dist/infrastructure/queue/index.js.map +1 -0
  173. package/dist/infrastructure/redis/connection.d.ts +61 -0
  174. package/dist/infrastructure/redis/connection.d.ts.map +1 -0
  175. package/dist/infrastructure/redis/connection.js +184 -0
  176. package/dist/infrastructure/redis/connection.js.map +1 -0
  177. package/dist/infrastructure/redis/index.d.ts +5 -0
  178. package/dist/infrastructure/redis/index.d.ts.map +1 -0
  179. package/dist/infrastructure/redis/index.js +5 -0
  180. package/dist/infrastructure/redis/index.js.map +1 -0
  181. package/dist/infrastructure/security/ApiKeyService.d.ts +103 -0
  182. package/dist/infrastructure/security/ApiKeyService.d.ts.map +1 -0
  183. package/dist/infrastructure/security/ApiKeyService.js +250 -0
  184. package/dist/infrastructure/security/ApiKeyService.js.map +1 -0
  185. package/dist/infrastructure/security/QuotaService.d.ts +87 -0
  186. package/dist/infrastructure/security/QuotaService.d.ts.map +1 -0
  187. package/dist/infrastructure/security/QuotaService.js +303 -0
  188. package/dist/infrastructure/security/QuotaService.js.map +1 -0
  189. package/dist/infrastructure/security/RateLimiter.d.ts +104 -0
  190. package/dist/infrastructure/security/RateLimiter.d.ts.map +1 -0
  191. package/dist/infrastructure/security/RateLimiter.js +331 -0
  192. package/dist/infrastructure/security/RateLimiter.js.map +1 -0
  193. package/dist/infrastructure/security/index.d.ts +7 -0
  194. package/dist/infrastructure/security/index.d.ts.map +1 -0
  195. package/dist/infrastructure/security/index.js +10 -0
  196. package/dist/infrastructure/security/index.js.map +1 -0
  197. package/dist/monitoring/index.d.ts +5 -0
  198. package/dist/monitoring/index.d.ts.map +1 -0
  199. package/dist/monitoring/index.js +5 -0
  200. package/dist/monitoring/index.js.map +1 -0
  201. package/dist/monitoring/server.d.ts +14 -0
  202. package/dist/monitoring/server.d.ts.map +1 -0
  203. package/dist/monitoring/server.js +99 -0
  204. package/dist/monitoring/server.js.map +1 -0
  205. package/dist/presentation/cli/commands/cancel.d.ts +8 -0
  206. package/dist/presentation/cli/commands/cancel.d.ts.map +1 -0
  207. package/dist/presentation/cli/commands/cancel.js +57 -0
  208. package/dist/presentation/cli/commands/cancel.js.map +1 -0
  209. package/dist/presentation/cli/commands/create.d.ts +8 -0
  210. package/dist/presentation/cli/commands/create.d.ts.map +1 -0
  211. package/dist/presentation/cli/commands/create.js +368 -0
  212. package/dist/presentation/cli/commands/create.js.map +1 -0
  213. package/dist/presentation/cli/commands/result.d.ts +8 -0
  214. package/dist/presentation/cli/commands/result.d.ts.map +1 -0
  215. package/dist/presentation/cli/commands/result.js +121 -0
  216. package/dist/presentation/cli/commands/result.js.map +1 -0
  217. package/dist/presentation/cli/commands/status.d.ts +8 -0
  218. package/dist/presentation/cli/commands/status.d.ts.map +1 -0
  219. package/dist/presentation/cli/commands/status.js +92 -0
  220. package/dist/presentation/cli/commands/status.js.map +1 -0
  221. package/dist/presentation/cli/index.d.ts +8 -0
  222. package/dist/presentation/cli/index.d.ts.map +1 -0
  223. package/dist/presentation/cli/index.js +32 -0
  224. package/dist/presentation/cli/index.js.map +1 -0
  225. package/dist/presentation/cli/utils/cleanup.d.ts +14 -0
  226. package/dist/presentation/cli/utils/cleanup.d.ts.map +1 -0
  227. package/dist/presentation/cli/utils/cleanup.js +62 -0
  228. package/dist/presentation/cli/utils/cleanup.js.map +1 -0
  229. package/dist/presentation/cli/utils/formatter.d.ts +28 -0
  230. package/dist/presentation/cli/utils/formatter.d.ts.map +1 -0
  231. package/dist/presentation/cli/utils/formatter.js +68 -0
  232. package/dist/presentation/cli/utils/formatter.js.map +1 -0
  233. package/dist/presentation/cli.d.ts +7 -0
  234. package/dist/presentation/cli.d.ts.map +1 -0
  235. package/dist/presentation/cli.js +8 -0
  236. package/dist/presentation/cli.js.map +1 -0
  237. package/dist/presentation/monitor-cli.d.ts +8 -0
  238. package/dist/presentation/monitor-cli.d.ts.map +1 -0
  239. package/dist/presentation/monitor-cli.js +44 -0
  240. package/dist/presentation/monitor-cli.js.map +1 -0
  241. package/dist/presentation/worker-cli.d.ts +8 -0
  242. package/dist/presentation/worker-cli.d.ts.map +1 -0
  243. package/dist/presentation/worker-cli.js +51 -0
  244. package/dist/presentation/worker-cli.js.map +1 -0
  245. package/dist/schedulers/TaskScheduler.d.ts +99 -0
  246. package/dist/schedulers/TaskScheduler.d.ts.map +1 -0
  247. package/dist/schedulers/TaskScheduler.js +233 -0
  248. package/dist/schedulers/TaskScheduler.js.map +1 -0
  249. package/dist/schedulers/index.d.ts +5 -0
  250. package/dist/schedulers/index.d.ts.map +1 -0
  251. package/dist/schedulers/index.js +5 -0
  252. package/dist/schedulers/index.js.map +1 -0
  253. package/dist/services/image/ImageService.d.ts +68 -0
  254. package/dist/services/image/ImageService.d.ts.map +1 -0
  255. package/dist/services/image/ImageService.js +166 -0
  256. package/dist/services/image/ImageService.js.map +1 -0
  257. package/dist/services/index.d.ts +8 -0
  258. package/dist/services/index.d.ts.map +1 -0
  259. package/dist/services/index.js +12 -0
  260. package/dist/services/index.js.map +1 -0
  261. package/dist/services/llm/EnhancedLLMService.d.ts +148 -0
  262. package/dist/services/llm/EnhancedLLMService.d.ts.map +1 -0
  263. package/dist/services/llm/EnhancedLLMService.js +425 -0
  264. package/dist/services/llm/EnhancedLLMService.js.map +1 -0
  265. package/dist/services/llm/LLMService.d.ts +103 -0
  266. package/dist/services/llm/LLMService.d.ts.map +1 -0
  267. package/dist/services/llm/LLMService.js +212 -0
  268. package/dist/services/llm/LLMService.js.map +1 -0
  269. package/dist/services/quality/HardRuleChecker.d.ts +143 -0
  270. package/dist/services/quality/HardRuleChecker.d.ts.map +1 -0
  271. package/dist/services/quality/HardRuleChecker.js +353 -0
  272. package/dist/services/quality/HardRuleChecker.js.map +1 -0
  273. package/dist/services/quality/LLMEvaluator.d.ts +105 -0
  274. package/dist/services/quality/LLMEvaluator.d.ts.map +1 -0
  275. package/dist/services/quality/LLMEvaluator.js +312 -0
  276. package/dist/services/quality/LLMEvaluator.js.map +1 -0
  277. package/dist/services/quality/QualityCheckService.d.ts +112 -0
  278. package/dist/services/quality/QualityCheckService.d.ts.map +1 -0
  279. package/dist/services/quality/QualityCheckService.js +342 -0
  280. package/dist/services/quality/QualityCheckService.js.map +1 -0
  281. package/dist/services/quality/QualityService.d.ts +75 -0
  282. package/dist/services/quality/QualityService.d.ts.map +1 -0
  283. package/dist/services/quality/QualityService.js +360 -0
  284. package/dist/services/quality/QualityService.js.map +1 -0
  285. package/dist/services/quality/index.d.ts +7 -0
  286. package/dist/services/quality/index.d.ts.map +1 -0
  287. package/dist/services/quality/index.js +10 -0
  288. package/dist/services/quality/index.js.map +1 -0
  289. package/dist/services/search/SearchService.d.ts +79 -0
  290. package/dist/services/search/SearchService.d.ts.map +1 -0
  291. package/dist/services/search/SearchService.js +193 -0
  292. package/dist/services/search/SearchService.js.map +1 -0
  293. package/dist/workers/TaskWorker.d.ts +61 -0
  294. package/dist/workers/TaskWorker.d.ts.map +1 -0
  295. package/dist/workers/TaskWorker.js +256 -0
  296. package/dist/workers/TaskWorker.js.map +1 -0
  297. package/dist/workers/index.d.ts +5 -0
  298. package/dist/workers/index.d.ts.map +1 -0
  299. package/dist/workers/index.js +5 -0
  300. package/dist/workers/index.js.map +1 -0
  301. package/docs/DOCUMENTATION-ANALYSIS.md +190 -0
  302. package/docs/README.md +145 -0
  303. package/docs/SOURCE-CODE-ANALYSIS.md +1107 -0
  304. package/docs/architecture-complete.md +5524 -0
  305. package/docs/archive/implementation/implementation-analysis/README.md +244 -0
  306. package/docs/archive/implementation/implementation-analysis/implementation-analysis-context.md +483 -0
  307. package/docs/archive/implementation/implementation-analysis/implementation-analysis-plan.md +1242 -0
  308. package/docs/archive/implementation/implementation-analysis/implementation-analysis-tasks.md +777 -0
  309. package/docs/archive/phases/phase-1/phase-1-completion-summary.md +284 -0
  310. package/docs/archive/phases/phase-1/phase-1-implementation-guide.md +1380 -0
  311. package/docs/archive/phases/phase-2/phase-2a/phase-2a-completion-summary.md +443 -0
  312. package/docs/archive/phases/phase-2/phase-2b/phase-2b-completion-report.md +430 -0
  313. package/docs/archive/phases/phase-2/phase-2b/phase-2b-completion-summary.md +592 -0
  314. package/docs/archive/phases/phase-2/phase-2b/phase-2b-final-summary.md +371 -0
  315. package/docs/archive/phases/phase-2/phase-2b/phase-2b-preparation-complete.md +343 -0
  316. package/docs/archive/phases/phase-2/phase-2b/phase-2b-preparation.md +945 -0
  317. package/docs/archive/phases/phase-2/phase-2b/phase-2b-progress-update.md +366 -0
  318. package/docs/archive/phases/phase-3/phase-3-completion-summary.md +354 -0
  319. package/docs/archive/phases/phase-3/phase-3-development-plan.md +878 -0
  320. package/docs/archive/phases/phase-3/phase-3-quick-start.md +324 -0
  321. package/docs/archive/phases/phase-4/phase-4-completion-summary.md +708 -0
  322. package/docs/archive/phases/phase-4/phase-4-development-plan.md +740 -0
  323. package/docs/archive/phases/phase-4/phase-4-quick-start.md +632 -0
  324. package/docs/archive/phases/phase-4/phase-4-session-3-security-testing.md +484 -0
  325. package/docs/archive/phases/phase-4/phase-4-session-4-unit-tests.md +550 -0
  326. package/docs/archive/phases/phase-4/phase-4-session-5-security-tests.md +564 -0
  327. package/docs/archive/phases/phase-4/phase-4-session-6-cache-integration.md +456 -0
  328. package/docs/archive/phases/phase-4/phase-4-session-7-test-fixes.md +348 -0
  329. package/docs/archive/phases/phase-4/phase-4-session-8-taskqueue-fixes.md +323 -0
  330. package/docs/archive/phases/phase-4/phase-4-session-summary-continued.md +373 -0
  331. package/docs/archive/phases/phase-4/phase-4-session-summary.md +595 -0
  332. package/docs/archive/reports/progress-reports/PHASE_0_PROGRESS.md +242 -0
  333. package/docs/archive/reports/progress-reports/PHASE_0_SUMMARY.md +262 -0
  334. package/docs/archive/reports/progress-reports/PHASE_1_2_ISSUES.md +399 -0
  335. package/docs/archive/reports/progress-reports/PHASE_1_PROGRESS.md +388 -0
  336. package/docs/archive/reports/progress-reports/PHASE_3_PREPARATION.md +574 -0
  337. package/docs/archive/reports/progress-reports/current-progress-update.md +294 -0
  338. package/docs/archive/reports/progress-reports/final-summary.md +215 -0
  339. package/docs/archive/reports/progress-reports/implementation-summary.md +287 -0
  340. package/docs/archive/reports/progress-reports/project-progress-report.md +440 -0
  341. package/docs/archive/reports/progress-reports/project-progress.md +386 -0
  342. package/docs/archive/reports/test-reports/TEST-COVERAGE-REPORT.md +441 -0
  343. package/docs/archive/reports/test-reports/e2e-test-report.md +293 -0
  344. package/docs/archive/reports/test-reports/final-test-report.md +367 -0
  345. package/docs/archive/reports/test-reports/real-env-test-report.md +391 -0
  346. package/docs/archive/reports/test-reports/test-completion-summary.md +356 -0
  347. package/docs/archive/reports/test-reports/test-report.md +371 -0
  348. package/docs/archive/sessions/session-2-summary.md +429 -0
  349. package/docs/archive/sessions/session-3-summary.md +395 -0
  350. package/docs/archive/sessions/session-summary.md +370 -0
  351. package/docs/config-system-update.md +239 -0
  352. package/docs/database-refactoring-PLAN.md +199 -0
  353. package/docs/database-refactoring-SUMMARY.md +384 -0
  354. package/docs/quality-check-architecture.md +1030 -0
  355. package/docs/quick-start.md +388 -0
  356. package/docs/references/bullmq-quick-reference.md +525 -0
  357. package/docs/references/monitoring-optimization-guide.md +871 -0
  358. package/docs/references/performance-optimization-guide.md +933 -0
  359. package/docs/storage-guide.md +612 -0
  360. package/docs/test-implementation-PLAN.md +223 -0
  361. package/docs/test-implementation-SUMMARY.md +194 -0
  362. package/docs/user-guide.md +719 -0
  363. package/docs/workflow-architecture.md +549 -0
  364. package/package.json +126 -0
  365. package/src/application/workflow/SyncExecutor.ts +444 -0
  366. package/src/application/workflow/types.ts +57 -0
  367. package/src/config/index.ts +352 -0
  368. package/src/domain/entities/QualityCheck.ts +202 -0
  369. package/src/domain/entities/Result.ts +130 -0
  370. package/src/domain/entities/Task.ts +178 -0
  371. package/src/domain/entities/TaskStep.ts +188 -0
  372. package/src/domain/entities/TokenUsage.ts +119 -0
  373. package/src/domain/entities/index.ts +20 -0
  374. package/src/domain/repositories/QualityCheckRepository.ts +52 -0
  375. package/src/domain/repositories/ResultRepository.ts +47 -0
  376. package/src/domain/repositories/TaskRepository.ts +271 -0
  377. package/src/domain/workflow/CheckpointManager.ts +283 -0
  378. package/src/domain/workflow/ContentCreatorGraph.ts +446 -0
  379. package/src/domain/workflow/State.ts +321 -0
  380. package/src/domain/workflow/index.ts +18 -0
  381. package/src/domain/workflow/nodes/BaseNode.ts +325 -0
  382. package/src/domain/workflow/nodes/CheckImageNode.ts +325 -0
  383. package/src/domain/workflow/nodes/CheckTextNode.ts +709 -0
  384. package/src/domain/workflow/nodes/GenerateImageNode.ts +342 -0
  385. package/src/domain/workflow/nodes/OrganizeNode.ts +304 -0
  386. package/src/domain/workflow/nodes/SearchNode.ts +192 -0
  387. package/src/domain/workflow/nodes/WriteNode.ts +505 -0
  388. package/src/domain/workflow/nodes/index.ts +13 -0
  389. package/src/index.ts +43 -0
  390. package/src/infrastructure/cache/CacheService.ts +483 -0
  391. package/src/infrastructure/cache/index.ts +6 -0
  392. package/src/infrastructure/database/BaseRepository.ts +214 -0
  393. package/src/infrastructure/database/MemoryTaskRepository.ts +377 -0
  394. package/src/infrastructure/database/PostgresQualityCheckRepository.ts +115 -0
  395. package/src/infrastructure/database/PostgresTaskRepository.ts +424 -0
  396. package/src/infrastructure/database/ResultRepository.ts +113 -0
  397. package/src/infrastructure/database/SQLiteTaskRepository.ts +651 -0
  398. package/src/infrastructure/database/index.ts +83 -0
  399. package/src/infrastructure/logging/logger.ts +231 -0
  400. package/src/infrastructure/monitoring/LoggingService.ts +292 -0
  401. package/src/infrastructure/monitoring/MetricsService.ts +468 -0
  402. package/src/infrastructure/monitoring/SentryService.ts +345 -0
  403. package/src/infrastructure/monitoring/index.ts +12 -0
  404. package/src/infrastructure/queue/TaskQueue.ts +429 -0
  405. package/src/infrastructure/queue/index.ts +5 -0
  406. package/src/infrastructure/redis/connection.ts +215 -0
  407. package/src/infrastructure/redis/index.ts +5 -0
  408. package/src/infrastructure/security/ApiKeyService.ts +340 -0
  409. package/src/infrastructure/security/QuotaService.ts +411 -0
  410. package/src/infrastructure/security/RateLimiter.ts +417 -0
  411. package/src/infrastructure/security/index.ts +12 -0
  412. package/src/monitoring/index.ts +5 -0
  413. package/src/monitoring/server.ts +109 -0
  414. package/src/presentation/cli/commands/cancel.ts +64 -0
  415. package/src/presentation/cli/commands/create.ts +400 -0
  416. package/src/presentation/cli/commands/result.ts +136 -0
  417. package/src/presentation/cli/commands/status.ts +102 -0
  418. package/src/presentation/cli/index.ts +39 -0
  419. package/src/presentation/cli/utils/cleanup.ts +65 -0
  420. package/src/presentation/cli/utils/formatter.ts +74 -0
  421. package/src/presentation/cli.ts +8 -0
  422. package/src/presentation/monitor-cli.ts +52 -0
  423. package/src/presentation/worker-cli.ts +62 -0
  424. package/src/schedulers/TaskScheduler.ts +314 -0
  425. package/src/schedulers/index.ts +11 -0
  426. package/src/services/image/ImageService.ts +221 -0
  427. package/src/services/index.ts +15 -0
  428. package/src/services/llm/EnhancedLLMService.ts +596 -0
  429. package/src/services/llm/LLMService.ts +310 -0
  430. package/src/services/quality/HardRuleChecker.ts +509 -0
  431. package/src/services/quality/LLMEvaluator.ts +400 -0
  432. package/src/services/quality/QualityCheckService.ts +473 -0
  433. package/src/services/quality/QualityService.ts +445 -0
  434. package/src/services/quality/index.ts +12 -0
  435. package/src/services/search/SearchService.ts +266 -0
  436. package/src/types/global.d.ts +17 -0
  437. package/src/workers/TaskWorker.ts +320 -0
  438. package/src/workers/index.ts +5 -0
@@ -0,0 +1,719 @@
1
+ # Content Creator - 用户操作手册
2
+
3
+ **项目版本**: 0.1.0
4
+ **更新日期**: 2026-01-20
5
+ **适用对象**: 开发者、运维人员、用户
6
+
7
+ ---
8
+
9
+ ## 📖 目录
10
+
11
+ 1. [项目简介](#项目简介)
12
+ 2. [快速开始](#快速开始)
13
+ 3. [环境配置](#环境配置)
14
+ 4. [安装部署](#安装部署)
15
+ 5. [使用指南](#使用指南)
16
+ 6. [CLI 命令详解](#cli-命令详解)
17
+ 7. [API 接口](#api-接口)
18
+ 8. [常见问题](#常见问题)
19
+ 9. [故障排除](#故障排除)
20
+ 10. [最佳实践](#最佳实践)
21
+
22
+ ---
23
+
24
+ ## 📋 项目简介
25
+
26
+ Content Creator 是一个基于 LLM 的智能内容创作系统,支持:
27
+
28
+ - ✅ **多语言文章生成** - 支持中英文内容创作
29
+ - ✅ **智能搜索集成** - Tavily API 实时搜索
30
+ - ✅ **质量自动检查** - AI 质量评估和改进建议
31
+ - ✅ **配图自动生成** - Doubao API 智能配图
32
+ - ✅ **任务队列管理** - BullMQ 异步任务处理
33
+ - ✅ **完整监控体系** - Prometheus + Sentry
34
+ - ✅ **缓存优化** - Redis 三层缓存策略
35
+
36
+ ### 技术栈
37
+
38
+ - **后端框架**: Node.js + TypeScript
39
+ - **工作流引擎**: LangGraph
40
+ - **数据库**: PostgreSQL 18.1
41
+ - **缓存**: Redis 3.2.12
42
+ - **LLM 服务**: DeepSeek API
43
+ - **搜索服务**: Tavily API
44
+ - **图片服务**: Doubao API
45
+
46
+ ---
47
+
48
+ ## 🚀 快速开始
49
+
50
+ ### 5 分钟快速体验
51
+
52
+ ```bash
53
+ # 1. 克隆项目
54
+ git clone <repository-url>
55
+ cd content-creator
56
+
57
+ # 2. 安装依赖
58
+ pnpm install
59
+
60
+ # 3. 配置环境变量
61
+ cp .env.example .env
62
+ # 编辑 .env 文件,填入你的 API keys
63
+
64
+ # 4. 运行数据库迁移
65
+ pnpm run db:migrate
66
+
67
+ # 5. 创建第一个任务
68
+ pnpm run cli:create \
69
+ --topic "人工智能的未来" \
70
+ --requirements "写一篇关于 AI 未来发展的文章" \
71
+ --audience "技术爱好者" \
72
+ --sync
73
+ ```
74
+
75
+ ### Docker 快速启动
76
+
77
+ ```bash
78
+ # 启动 PostgreSQL 和 Redis
79
+ docker-compose up -d
80
+
81
+ # 运行项目
82
+ pnpm run dev
83
+ ```
84
+
85
+ ---
86
+
87
+ ## ⚙️ 环境配置
88
+
89
+ ### 必需的环境变量
90
+
91
+ 创建 `.env` 文件并配置以下变量:
92
+
93
+ ```bash
94
+ # ==========================================
95
+ # PostgreSQL 数据库配置
96
+ # ==========================================
97
+ POSTGRES_USER=postgres
98
+ POSTGRES_PASSWORD=your_password
99
+ POSTGRES_DB=postgres
100
+ POSTGRES_HOST=localhost
101
+ POSTGRES_PORT=5432
102
+
103
+ # ==========================================
104
+ # Redis 配置
105
+ # ==========================================
106
+ REDIS_URL=redis://:password@localhost:6379
107
+
108
+ # ==========================================
109
+ # LLM 服务 (DeepSeek)
110
+ # ==========================================
111
+ LLM_API_KEY=sk-xxxxxxxxxxxx
112
+ LLM_BASE_URL=https://api.deepseek.com
113
+ LLM_MODEL_NAME=deepseek-chat
114
+ LLM_MAX_TOKENS=4000
115
+ LLM_TEMPERATURE=0.7
116
+
117
+ # ==========================================
118
+ # 搜索服务 (Tavily)
119
+ # ==========================================
120
+ TAVILY_API_KEY=tvly-xxxxxxxxxxxx
121
+
122
+ # ==========================================
123
+ # 图片服务 (Doubao/字节跳动)
124
+ # ==========================================
125
+ ARK_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
126
+
127
+ # ==========================================
128
+ # 数据库类型
129
+ # ==========================================
130
+ DATABASE_TYPE=postgres # 可选: memory | postgres | sqlite
131
+
132
+ # ==========================================
133
+ # 日志配置
134
+ # ==========================================
135
+ LOG_LEVEL=info # 可选: error | warn | info | debug
136
+ LOG_FILE=./logs/app.log
137
+
138
+ # ==========================================
139
+ # 可选监控配置
140
+ # ==========================================
141
+ SENTRY_DSN=https://xxxxx@xxxx.ingest.sentry.io/xxxxx
142
+ SENTRY_ENVIRONMENT=production
143
+ ```
144
+
145
+ ### 获取 API Keys
146
+
147
+ #### 1. DeepSeek API Key
148
+ - 访问: https://platform.deepseek.com
149
+ - 注册/登录账号
150
+ - 进入 "API Keys" 页面
151
+ - 创建新 API Key
152
+ - 复制到 `.env` 文件的 `LLM_API_KEY`
153
+
154
+ #### 2. Tavily API Key
155
+ - 访问: https://tavily.com
156
+ - 注册/登录账号
157
+ - 进入 "API Keys" 页面
158
+ - 创建免费 Developer Key
159
+ - 复制到 `.env` 文件的 `TAVILY_API_KEY`
160
+
161
+ #### 3. Doubao API Key
162
+ - 访问: https://ark.cn.volcengine.com
163
+ - 注册/登录字节云账号
164
+ - 进入 "API 密钥管理"
165
+ - 创建 API Key
166
+ - 复制到 `.env` 文件的 `ARK_API_KEY`
167
+
168
+ ---
169
+
170
+ ## 📦 安装部署
171
+
172
+ ### 系统要求
173
+
174
+ - **Node.js**: v18.0 或更高
175
+ - **pnpm**: v8.0 或更高
176
+ - **PostgreSQL**: v14 或更高
177
+ - **Redis**: v6 或更高
178
+
179
+ ### 安装步骤
180
+
181
+ #### 1. 安装 Node.js 和 pnpm
182
+
183
+ ```bash
184
+ # macOS
185
+ brew install node
186
+ npm install -g pnpm
187
+
188
+ # Ubuntu/Debian
189
+ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
190
+ sudo apt-get install -y nodejs
191
+ npm install -g pnpm
192
+
193
+ # Windows
194
+ # 下载并安装 Node.js: https://nodejs.org/
195
+ npm install -g pnpm
196
+ ```
197
+
198
+ #### 2. 安装项目依赖
199
+
200
+ ```bash
201
+ cd content-creator
202
+ pnpm install
203
+ ```
204
+
205
+ #### 3. 配置环境变量
206
+
207
+ ```bash
208
+ # 复制示例配置
209
+ cp .env.example .env
210
+
211
+ # 编辑配置文件
212
+ nano .env # 或使用其他编辑器
213
+ ```
214
+
215
+ #### 4. 安装数据库
216
+
217
+ ##### PostgreSQL
218
+
219
+ ```bash
220
+ # 使用 Docker
221
+ docker run --name postgres-db \
222
+ -e POSTGRES_PASSWORD=your_password \
223
+ -p 5432:5432 \
224
+ -v /data/postgres:/var/lib/postgresql/data \
225
+ -d postgres:16
226
+
227
+ # 或使用本地安装
228
+ # macOS
229
+ brew install postgresql
230
+ brew services start postgresql
231
+
232
+ # Ubuntu
233
+ sudo apt-get install postgresql
234
+ sudo systemctl start postgresql
235
+ ```
236
+
237
+ ##### Redis
238
+
239
+ ```bash
240
+ # 使用 Docker
241
+ docker run --name redis \
242
+ -p 6379:6379 \
243
+ -d redis:7-alpine
244
+
245
+ # 或使用本地安装
246
+ # macOS
247
+ brew install redis
248
+ brew services start redis
249
+
250
+ # Ubuntu
251
+ sudo apt-get install redis-server
252
+ sudo systemctl start redis
253
+ ```
254
+
255
+ #### 5. 运行数据库迁移
256
+
257
+ ```bash
258
+ pnpm run db:migrate
259
+ ```
260
+
261
+ #### 6. 验证环境
262
+
263
+ ```bash
264
+ # 检查所有环境变量和服务连接
265
+ pnpm run verify-env
266
+ ```
267
+
268
+ ### 开发模式启动
269
+
270
+ ```bash
271
+ # 启动开发服务器(带热重载)
272
+ pnpm run dev
273
+
274
+ # 启动监控面板
275
+ pnpm run monitor
276
+ ```
277
+
278
+ ### 生产模式启动
279
+
280
+ ```bash
281
+ # 构建项目
282
+ pnpm run build
283
+
284
+ # 启动生产服务
285
+ pnpm run start
286
+ ```
287
+
288
+ ---
289
+
290
+ ## 📖 使用指南
291
+
292
+ ### 方式一:CLI 命令行(推荐)
293
+
294
+ #### 创建内容创作任务
295
+
296
+ ```bash
297
+ pnpm run cli:create \
298
+ --topic "文章主题" \
299
+ --requirements "创作要求" \
300
+ --audience "目标受众" \
301
+ --tone "语气风格" \
302
+ --keywords "关键词1,关键词2" \
303
+ --min-words 500 \
304
+ --max-words 2000 \
305
+ --sync
306
+ ```
307
+
308
+ #### 参数说明
309
+
310
+ | 参数 | 说明 | 必填 | 默认值 |
311
+ |------|------|------|---------|
312
+ | `--topic` | 文章主题 | ✅ | - |
313
+ | `--requirements` | 创作要求 | ✅ | - |
314
+ | `--audience` | 目标受众 | ❌ | 普通读者 |
315
+ | `--tone` | 语气风格 | ❌ | 专业 |
316
+ | `--keywords` | 关键词(逗号分隔) | ❌ | - |
317
+ | `--min-words` | 最小字数 | ❌ | 500 |
318
+ | `--max-words` | 最大字数 | ❌ | 2000 |
319
+ | `--mode` | 执行模式 (sync\|async) | ❌ | sync |
320
+ | `--sync` | 同步执行(等待结果) | ❌ | false |
321
+
322
+ #### 示例
323
+
324
+ ##### 示例 1:技术博客文章
325
+
326
+ ```bash
327
+ pnpm run cli:create \
328
+ --topic "TypeScript 5.0 新特性解析" \
329
+ --requirements "详细介绍 TypeScript 5.0 的新特性、改进和迁移指南" \
330
+ --audience "前端开发者" \
331
+ --tone "技术专业" \
332
+ --keywords "TypeScript,JavaScript,前端开发" \
333
+ --min-words 1000 \
334
+ --max-words 2000 \
335
+ --sync
336
+ ```
337
+
338
+ ##### 示例 2:生活类文章
339
+
340
+ ```bash
341
+ pnpm run cli:create \
342
+ --topic "健康生活方式建议" \
343
+ --requirements "提供实用的健康生活建议,包括饮食、运动和睡眠" \
344
+ --audience "普通读者" \
345
+ --tone "亲切友好" \
346
+ --keywords "健康,生活,养生" \
347
+ --min-words 800 \
348
+ --max-words 1200 \
349
+ --sync
350
+ ```
351
+
352
+ ### 方式二:程序化调用
353
+
354
+ #### 使用 SyncExecutor
355
+
356
+ ```typescript
357
+ import { createSyncExecutor } from './application/workflow/SyncExecutor.js';
358
+ import { PostgresTaskRepository } from './infrastructure/database/PostgresTaskRepository.js';
359
+
360
+ // 创建执行器
361
+ const taskRepo = new PostgresTaskRepository();
362
+ const executor = createSyncExecutor(taskRepo, {
363
+ databaseType: 'postgres',
364
+ enableLogging: true,
365
+ logLevel: 'info',
366
+ });
367
+
368
+ // 执行任务
369
+ const result = await executor.execute({
370
+ id: 'task-001',
371
+ mode: 'sync',
372
+ topic: '人工智能发展趋势',
373
+ requirements: '写一篇关于 AI 发展趋势的文章',
374
+ targetAudience: '技术爱好者',
375
+ keywords: ['AI', '人工智能', '技术发展'],
376
+ tone: '专业',
377
+ hardConstraints: {
378
+ minWords: 800,
379
+ maxWords: 1500,
380
+ },
381
+ priority: 'normal',
382
+ idempotencyKey: 'unique-key-001',
383
+ });
384
+
385
+ console.log('任务完成:', result);
386
+ console.log('文章内容:', result.finalState.articleContent);
387
+ console.log('配图 URL:', result.finalState.imageUrl);
388
+ ```
389
+
390
+ ---
391
+
392
+ ## 💻 CLI 命令详解
393
+
394
+ ### create - 创建任务
395
+
396
+ ```bash
397
+ pnpm run cli:create [options]
398
+ ```
399
+
400
+ **示例**:
401
+
402
+ ```bash
403
+ # 同步执行(推荐用于测试)
404
+ pnpm run cli:create \
405
+ --topic "主题" \
406
+ --requirements "要求" \
407
+ --sync
408
+
409
+ # 异步执行(推荐用于生产)
410
+ pnpm run cli:create \
411
+ --topic "主题" \
412
+ --requirements "要求" \
413
+ --mode async
414
+ ```
415
+
416
+ ### 其他 CLI 命令
417
+
418
+ #### 查看任务状态
419
+
420
+ ```bash
421
+ pnpm run cli:status <task-id>
422
+ ```
423
+
424
+ #### 取消任务
425
+
426
+ ```bash
427
+ pnpm run cli:cancel <task-id>
428
+ ```
429
+
430
+ #### 监控面板
431
+
432
+ ```bash
433
+ # 启动 BullMQ 监控面板
434
+ pnpm run monitor
435
+
436
+ # 访问 http://localhost:3000/admin/queues
437
+ ```
438
+
439
+ ---
440
+
441
+ ## 🔌 API 接口
442
+
443
+ ### HTTP API(待实现)
444
+
445
+ 项目支持 HTTP API 接口(开发中),可提供 RESTful API 调用。
446
+
447
+ ### Webhook 集成
448
+
449
+ 支持任务状态变更的 Webhook 通知(配置 `SENTRY_DSN`)。
450
+
451
+ ---
452
+
453
+ ## ❓ 常见问题
454
+
455
+ ### Q1: 如何批量创建任务?
456
+
457
+ 使用程序化调用或编写脚本:
458
+
459
+ ```bash
460
+ # 创建批量脚本
461
+ for topic in "AI发展" "区块链应用" "云计算趋势"; do
462
+ pnpm run cli:create \
463
+ --topic "$topic" \
464
+ --requirements "详细介绍 $topic" \
465
+ --sync
466
+ done
467
+ ```
468
+
469
+ ### Q2: 如何自定义 LLM 模型?
470
+
471
+ 修改 `.env` 文件:
472
+
473
+ ```bash
474
+ LLM_MODEL_NAME=deepseek-chat # 或其他模型
475
+ LLM_MAX_TOKENS=8000 # 增加 Token 限制
476
+ LLM_TEMPERATURE=0.3 # 降低创造性(更确定性)
477
+ ```
478
+
479
+ ### Q3: 如何禁用搜索功能?
480
+
481
+ 创建任务时设置:
482
+
483
+ ```bash
484
+ pnpm run cli:create \
485
+ --topic "主题" \
486
+ --requirements "要求" \
487
+ --no-search # 如果支持
488
+ ```
489
+
490
+ 或在代码中设置 `useCache: true` 强制使用缓存。
491
+
492
+ ### Q4: 如何查看任务历史?
493
+
494
+ 查询数据库:
495
+
496
+ ```bash
497
+ # 使用 psql
498
+ psql -h localhost -U postgres -d postgres
499
+
500
+ # 查询任务
501
+ SELECT * FROM tasks ORDER BY created_at DESC LIMIT 10;
502
+ ```
503
+
504
+ ### Q5: 如何导出生成的内容?
505
+
506
+ 从 CLI 输出复制内容,或使用:
507
+
508
+ ```typescript
509
+ // 保存到文件
510
+ import fs from 'fs';
511
+ fs.writeFileSync('article.md', result.finalState.articleContent);
512
+ ```
513
+
514
+ ---
515
+
516
+ ## 🔧 故障排除
517
+
518
+ ### 问题 1: 环境变量未找到
519
+
520
+ **错误**:
521
+ ```
522
+ Environment variable validation failed: POSTGRES_HOST is not set
523
+ ```
524
+
525
+ **解决**:
526
+ 1. 检查 `.env` 文件是否存在
527
+ 2. 确认变量名拼写正确
528
+ 3. 运行 `pnpm run verify-env` 检查
529
+
530
+ ### 问题 2: 数据库连接失败
531
+
532
+ **错误**:
533
+ ```
534
+ Error: connect ECONNREFUSED 127.0.0.1:5432
535
+ ```
536
+
537
+ **解决**:
538
+ 1. 确认 PostgreSQL 正在运行
539
+ 2. 检查端口配置(`POSTGRES_PORT`)
540
+ 3. 验证用户名和密码
541
+ 4. 检查防火墙设置
542
+
543
+ ### 问题 3: Redis 连接失败
544
+
545
+ **错误**:
546
+ ```
547
+ Error: Redis connection to 150.158.88.23:6379 failed
548
+ ```
549
+
550
+ **解决**:
551
+ 1. 确认 Redis 正在运行
552
+ 2. 检查 `REDIS_URL` 格式
553
+ 3. 验证密码(如果有)
554
+ 4. 测试连接: `redis-cli -h 150.158.88.23 -p 6379`
555
+
556
+ ### 问题 4: API 调用失败
557
+
558
+ **错误**:
559
+ ```
560
+ Error: Search API error: 401 - Unauthorized
561
+ ```
562
+
563
+ **解决**:
564
+ 1. 验证 API Key 是否正确
565
+ 2. 检查 API Key 是否过期
566
+ 3. 确认账户配额未用完
567
+ 4. 查看服务商状态页
568
+
569
+ ### 问题 5: 字数超限
570
+
571
+ **错误**:
572
+ ```
573
+ Error: Word count exceeded: 2500 > 2000
574
+ ```
575
+
576
+ **解决**:
577
+ 1. 增加 `--max-words` 限制
578
+ 2. 在要求中明确字数范围
579
+ 3. 调整 `LLM_TEMPERATURE`(更低更保守)
580
+
581
+ ### 问题 6: 内容质量不达标
582
+
583
+ **现象**: 文本质检未通过
584
+
585
+ **解决**:
586
+ 1. 优化创作要求,提供更多细节
587
+ 2. 调整目标受众描述
588
+ 3. 使用 `--tone` 明确语气风格
589
+ 4. 重新运行任务(系统会自动改进)
590
+
591
+ ### 问题 7: 图片生成失败
592
+
593
+ **错误**:
594
+ ```
595
+ Error: Image generation failed: insufficient quota
596
+ ```
597
+
598
+ **解决**:
599
+ 1. 检查 Doubao API 配额
600
+ 2. 更新 `ARK_API_KEY`
601
+ 3. 使用备用图片源(如配置)
602
+
603
+ ---
604
+
605
+ ## 🎯 最佳实践
606
+
607
+ ### 1. 任务创建
608
+
609
+ ✅ **推荐做法**:
610
+ - 提供详细的创作要求
611
+ - 明确目标受众和语气
612
+ - 设置合理的字数范围
613
+ - 使用相关关键词
614
+
615
+ ❌ **避免**:
616
+ - 要求过于模糊
617
+ - 字数限制过于严格
618
+ - 目标受众不明确
619
+
620
+ ### 2. 性能优化
621
+
622
+ - ✅ 启用 Redis 缓存
623
+ - ✅ 使用异步模式批量处理
624
+ - ✅ 合理设置并发数(`WORKER_CONCURRENCY`)
625
+ - ✅ 定期清理过期数据
626
+
627
+ ### 3. 成本控制
628
+
629
+ - ✅ 设置 `LLM_MAX_TOKENS` 限制
630
+ - ✅ 启用缓存减少 API 调用
631
+ - ✅ 监控 Token 使用量
632
+ - ✅ 定期检查 API 账单
633
+
634
+ ### 4. 安全建议
635
+
636
+ - ✅ 不要提交 `.env` 文件到 Git
637
+ - ✅ 定期轮换 API Keys
638
+ - ✅ 使用环境变量管理密钥
639
+ - ✅ 启用日志脱敏
640
+ - ✅ 配置 Sentry 监控安全事件
641
+
642
+ ### 5. 生产部署
643
+
644
+ - ✅ 使用 `DATABASE_TYPE=postgres`
645
+ - ✅ 启用 Sentry 错误追踪
646
+ - ✅ 配置 Prometheus 监控
647
+ - ✅ 使用 Docker 容器化部署
648
+ - ✅ 设置负载均衡
649
+ - ✅ 配置自动重启
650
+
651
+ ---
652
+
653
+ ## 📊 监控和维护
654
+
655
+ ### 查看系统状态
656
+
657
+ ```bash
658
+ # 环境检查
659
+ pnpm run verify-env
660
+
661
+ # 数据库状态
662
+ pnpm run db:status
663
+
664
+ # 监控面板
665
+ pnpm run monitor
666
+ ```
667
+
668
+ ### 日志查看
669
+
670
+ ```bash
671
+ # 查看应用日志
672
+ tail -f ./logs/app.log
673
+
674
+ # 搜索错误日志
675
+ grep "error" ./logs/app.log
676
+ ```
677
+
678
+ ### 性能指标
679
+
680
+ 访问 Prometheus 监控(如果配置):
681
+ - 任务执行时间
682
+ - API 调用频率
683
+ - 缓存命中率
684
+ - 错误率
685
+
686
+ ---
687
+
688
+ ## 📞 技术支持
689
+
690
+ ### 问题反馈
691
+
692
+ 如遇到问题,请提供以下信息:
693
+
694
+ 1. 操作系统和版本
695
+ 2. Node.js 版本
696
+ 3. 错误信息完整日志
697
+ 4. 复现步骤
698
+ 5. `.env` 配置(脱敏)
699
+
700
+ ### 获取帮助
701
+
702
+ - 查看项目文档: `docs/` 目录
703
+ - 查看 API 文档: `docs/api/` 目录
704
+ - 查看测试示例: `examples/` 目录
705
+
706
+ ---
707
+
708
+ ## 📚 相关文档
709
+
710
+ - [架构设计文档](./架构设计文档.md)
711
+ - [API 接口文档](./API接口文档.md)
712
+ - [部署指南](./部署指南.md)
713
+ - [测试报告](./test-report.md)
714
+
715
+ ---
716
+
717
+ **文档版本**: 1.0
718
+ **最后更新**: 2026-01-20
719
+ **维护者**: Content Creator Team