init.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { Command } from "commander";
  2. import { writeFileSync, existsSync } from "node:fs";
  3. import { resolve } from "node:path";
  4. const DEFAULT_CONFIG = `# Pipeline default configuration
  5. llm:
  6. baseURL: "https://api.openai.com/v1"
  7. model: "gpt-4o"
  8. tts:
  9. provider: "openai-tts"
  10. openai-tts:
  11. model: "seed-tts-1.1"
  12. defaultVoice: "zh_female_vv_uranus_bigtts"
  13. fish-audio:
  14. model: "s2-pro"
  15. minimax:
  16. model: "speech-02-hd"
  17. elevenlabs:
  18. model: "eleven_multilingual_v2"
  19. output:
  20. dir: "./output"
  21. format: "mp4"
  22. `;
  23. export const initCommand = new Command("init")
  24. .description("Create default config file")
  25. .option("-o, --output <path>", "Config file path", "pipeline.config.yaml")
  26. .action((opts) => {
  27. const configPath = resolve(opts.output);
  28. if (existsSync(configPath)) {
  29. console.error(`Config file already exists: ${configPath}`);
  30. process.exit(1);
  31. }
  32. writeFileSync(configPath, DEFAULT_CONFIG, "utf-8");
  33. console.log(`Created config file: ${configPath}`);
  34. console.log("\nNext steps:");
  35. console.log(" 1. Edit the config file with your API keys");
  36. console.log(" 2. Set environment variables (see .env.example)");
  37. console.log(" 3. Run: pipeline render article.md -t news -p bilibili");
  38. });