@advjs/ai
Version:
AI module for AdvJS
50 lines (45 loc) • 1.08 kB
text/typescript
import path from 'node:path'
import { consola } from 'consola'
import fs from 'fs-extra'
import { generateAdvDramaJSON } from './chat'
export * from './hunyuan'
export interface AdvWriterWorkflowParams {
/**
* 主人公
*/
protagonist?: string
/**
* 故事背景
*/
storyBackground: string
/**
* 是否覆盖
* @default false
*/
overwrite?: boolean
/**
* 目标文件夹
*/
outputDir?: string
}
/**
* 剧本工作流
*/
export async function writerWorkflow(params: AdvWriterWorkflowParams) {
const aiStr = await generateAdvDramaJSON(params)
try {
const aiData = JSON.parse(aiStr || '{}')
if (params.outputDir) {
await fs.ensureDir(params.outputDir)
const fileName = params.overwrite ? 'adv.ai.json' : `adv.ai.${Date.now()}.json`
await fs.writeJSON(path.resolve(params.outputDir, fileName), aiData, {
spaces: 2,
EOL: '\n',
})
}
consola.success('🔀 [ADV Writer] completed successfully.')
}
catch (error) {
consola.error('🔀 [ADV Writer] failed:', error)
}
}