default.yaml 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. # Pipeline default configuration
  2. #
  3. # Priority: CLI flags > this file > .env (for secrets/endpoints)
  4. branding:
  5. channelName: "知势·科技洞察"
  6. llm:
  7. # baseURL: set via OPENAI_BASE_URL in .env
  8. # apiKey: set via OPENAI_API_KEY in .env
  9. model: "glm-5.1"
  10. tts:
  11. provider: "openai-tts"
  12. speed: 1.0
  13. format: "mp3"
  14. # alignment:
  15. # provider: "whisper"
  16. # whisperModel: "base"
  17. # language: "zh"
  18. openai-tts:
  19. # apiKey: set via OPENAI_TTS_API_KEY in .env
  20. # baseURL: set via OPENAI_TTS_BASE_URL in .env
  21. model: "seed-tts-1.1"
  22. defaultVoice: "zh_female_vv_uranus_bigtts"
  23. fish-audio:
  24. # apiKey: set via FISH_AUDIO_API_KEY in .env
  25. model: "s2-pro"
  26. defaultVoice: ""
  27. minimax:
  28. # apiKey: set via MINIMAX_API_KEY in .env
  29. # groupId: set via MINIMAX_GROUP_ID in .env
  30. model: "speech-02-hd"
  31. defaultVoice: ""
  32. elevenlabs:
  33. # apiKey: set via ELEVENLABS_API_KEY in .env
  34. model: "eleven_multilingual_v2"
  35. defaultVoice: "21m00Tcm4TlvDq8ikWAM"
  36. render:
  37. fps: 30
  38. codec: "h264"
  39. output:
  40. dir: "./output"
  41. format: "mp4"
  42. # Auto-clean cached outputs older than this many days (0 disables). Default 30.
  43. # Override with the OUTPUT_RETENTION_DAYS env var.
  44. retentionDays: 30
  45. # Alibaba Cloud OSS — rendered videos are uploaded here and a resource URL is
  46. # returned. Non-sensitive values may live in this file; secrets (access keys)
  47. # belong in .env. Every field can be overridden by an OSS_* env var.
  48. oss:
  49. region: "oss-cn-hangzhou" # OSS_REGION
  50. bucket: "" # OSS_BUCKET
  51. accessKeyId: "" # OSS_ACCESS_KEY_ID (use .env)
  52. accessKeySecret: "" # OSS_ACCESS_KEY_SECRET (use .env)
  53. # endpoint: "" # custom endpoint, e.g. https://oss-cn-hangzhou.aliyuncs.com — OSS_ENDPOINT
  54. # path: "videos/" # object key prefix — OSS_PATH
  55. # publicDomain: "" # base URL for resource links (e.g. a CDN) — OSS_PUBLIC_DOMAIN
  56. # secure: true # use HTTPS — OSS_SECURE
  57. # Feishu (Lark) custom-bot webhook — push results / failures after each job.
  58. feishu:
  59. webhook: "" # FEISHU_WEBHOOK_URL (use .env)
  60. # secret: "" # signing secret — FEISHU_WEBHOOK_SECRET
  61. # Publish manifest — written as {video}.yaml next to each rendered MP4 with the
  62. # title/description/tags (LLM-produced for github-trending) plus the
  63. # platform-specific 分区/category defined here. Lookup: publishMeta[platform][template].
  64. # Only fill the combos you publish; missing combos just omit those keys.
  65. publishMeta:
  66. bilibili:
  67. github-trending:
  68. tid: 122 # 分区 id (122 = 科技→科普). Adjust to your target board.
  69. tags: ["GitHub", "开源", "热榜"]
  70. github-weekly:
  71. tid: 122
  72. tags: ["GitHub", "开源", "周榜"]
  73. douyin-long:
  74. github-trending:
  75. category: "科技"
  76. tags: ["GitHub", "开源"]
  77. github-weekly:
  78. category: "科技"
  79. tags: ["GitHub", "开源", "周榜"]
  80. douyin-short:
  81. github-trending:
  82. category: "科技"
  83. tags: ["GitHub", "开源"]
  84. github-weekly:
  85. category: "科技"
  86. tags: ["GitHub", "开源", "周榜"]
  87. templates:
  88. news:
  89. primaryColor: "#1a56db"
  90. accentColor: "#dc2626"
  91. knowledge:
  92. primaryColor: "#0d9488"
  93. accentColor: "#6b7280"
  94. opinion:
  95. primaryColor: "#ea580c"
  96. accentColor: "#374151"
  97. marketing:
  98. primaryColor: "#9333ea"
  99. accentColor: "#ec4899"
  100. github-trending:
  101. primaryColor: "#22c55e"
  102. accentColor: "#3b82f6"
  103. github-weekly:
  104. primaryColor: "#d97706"
  105. accentColor: "#1e3a5f"
  106. collect:
  107. github-trending:
  108. url: "https://github.crawler.corp.shuidi.tech/api/trending"
  109. # Repo-detail endpoint used to fetch each top repo's README (per-repo
  110. # description grounding). Optional — without it, only trending metadata is used.
  111. repoUrl: "https://github.crawler.corp.shuidi.tech/api/repos/:owner/:repo"
  112. # Weekly board — same endpoints; the collector appends ?since=weekly.
  113. github-weekly:
  114. url: "https://github.crawler.corp.shuidi.tech/api/trending"
  115. repoUrl: "https://github.crawler.corp.shuidi.tech/api/repos/:owner/:repo"
  116. github-repo:
  117. url: "https://github.crawler.corp.shuidi.tech/api/repos/:owner/:repo"
  118. github-daily:
  119. trendingUrl: "https://github.crawler.corp.shuidi.tech/api/trending"
  120. repoUrl: "https://github.crawler.corp.shuidi.tech/api/repos/:owner/:repo"
  121. maxRepos: 5
  122. # 定时生成(容器内进程内调度)。Next.js 服务启动时(instrumentation 钩子)注册
  123. # 一个进程内调度器,到点 spawn CLI 渲染——复用与 WebUI/HTTP 完全相同的链路,
  124. # 任务同样进 jobs 列表、走 OSS/飞书发布。改配置后需重启容器生效。
  125. # cron — 5 字段 cron(分 时 日 月 周),按 TZ(默认 Asia/Shanghai=北京时间)
  126. # template — 渲染模板(news|knowledge|opinion|marketing|github-trending|github-weekly)
  127. # platform — 平台规格(bilibili|douyin-long|douyin-short|...),默认 bilibili
  128. # source — 采集源(如 github-trending);定时场景一般用 source 自动取数
  129. # sourceArgs — 采集器附加参数(如 github-repo 的 owner/repo),可选
  130. # publish — 是否上传 OSS + 推送飞书,默认 true
  131. # enabled — 是否启用该条,默认 true
  132. # 环境变量 SCHEDULES(JSON 数组,同结构)可整体覆盖(部署期改无需重建镜像);
  133. # SCHEDULER_ENABLED=false 关闭整个调度器。
  134. schedules:
  135. - cron: "50 7 * * *" # 北京时间每天 07:50
  136. template: "github-trending"
  137. platform: "bilibili"
  138. source: "github-trending" # 先采集当日 trending,再解析→渲染→发布
  139. publish: true
  140. enabled: true
  141. - cron: "50 8 * * 6" # 北京时间每周六 08:50
  142. template: "github-weekly"
  143. platform: "bilibili"
  144. source: "github-weekly" # 采集本周 trending(since=weekly),再解析→渲染→发布
  145. publish: true
  146. enabled: true