Skip to content

Commit aeb4392

Browse files
committed
feat: 更新生成脚本功能,增加对话长度预算提示及单元测试验证
1 parent 4505304 commit aeb4392

2 files changed

Lines changed: 5 additions & 1 deletion

File tree

apps/worker/src/minimax.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,13 @@ async function minimaxFetch(env: Env, path: string, init: RequestInit): Promise<
6060
}
6161

6262
export async function generateScript(env: Env, source: string, title: string, language: string, duration: number, style: string): Promise<PodcastScript> {
63+
const lengthGuide = language.startsWith("zh")
64+
? `总对话控制在约 ${duration * 320} 个中文字符(允许上下浮动 15%)`
65+
: `Keep the total dialogue near ${duration * 145} spoken words (within 15%)`;
6366
const response = await minimaxFetch(env, "/chat/completions", { method: "POST", body: JSON.stringify({
6467
model: env.MINIMAX_TEXT_MODEL,
6568
messages: [{ role: "system", content: PODCAST_SYSTEM_PROMPT },
66-
{ role: "user", content: `Title: ${title}\nLanguage: ${language}\nTarget minutes: ${duration}\nStyle: ${style}\nSource:\n${source.slice(0, 120000)}` }],
69+
{ role: "user", content: `Title: ${title}\nLanguage: ${language}\nTarget minutes: ${duration}\nLength budget: ${lengthGuide}\nStyle: ${style}\nSource:\n${source.slice(0, 120000)}` }],
6770
temperature: 1,
6871
max_completion_tokens: 8192,
6972
reasoning_split: true

apps/worker/test/minimax.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ describe("MiniMax script generation", () => {
3333
const request = JSON.parse(String(init?.body)) as { messages: Array<{ content: string }> };
3434
expect(request.messages[0].content).toContain("不是把摘要轮流分配给两个人朗读");
3535
expect(request.messages[0].content).toContain("至少安排两次真实的澄清");
36+
expect(request.messages[1].content).toContain("约 2560 个中文字符");
3637
});
3738

3839
it("surfaces provider business errors returned with HTTP 200", async () => {

0 commit comments

Comments
 (0)