mirror of
https://github.com/linyqh/NarratoAI.git
synced 2026-07-07 14:48:08 +00:00
- 新增短剧解说全流程四类提示词模板:解说文案生成、片段规划、文案画面匹配、脚本修复 - 重构原有脚本生成提示词至v2.1,改为基于上游规划片段生成合规解说脚本 - 为LLM基础服务层新增流式文本生成接口,完善OpenAI兼容提供商的流式实现,支持流式回调与推理内容提取 - 重构OpenAI兼容文本提供商的生成逻辑,提取公共参数构建方法 - 新增多语言国际化文案,覆盖解说语言、短剧类型、原片占比等配置项与交互提示 - 新增多套单元测试,覆盖脚本校验、适配器流程、工具函数等模块 - 封装SubtitleAnalyzerAdapter,统一短剧解说脚本生成的整套业务接口 - 新增前端交互所需的解说文案审核相关提示文案
28 lines
838 B
Python
28 lines
838 B
Python
import unittest
|
|
|
|
from webui.tools.generate_short_summary import _format_progress_status, parse_and_fix_json
|
|
|
|
|
|
class GenerateShortSummaryJsonTests(unittest.TestCase):
|
|
def test_progress_message_does_not_prefix_fake_percentage(self):
|
|
status = _format_progress_status(60, "正在生成文案...")
|
|
|
|
self.assertEqual("正在生成文案...", status)
|
|
self.assertNotIn("60%", status)
|
|
|
|
def test_invalid_json_does_not_create_default_fake_script(self):
|
|
self.assertIsNone(parse_and_fix_json("not a json response"))
|
|
|
|
def test_json_code_block_is_parsed(self):
|
|
parsed = parse_and_fix_json(
|
|
"""```json
|
|
{"items": [{"_id": 1, "timestamp": "00:00:01,000-00:00:02,000"}]}
|
|
```"""
|
|
)
|
|
|
|
self.assertEqual(1, parsed["items"][0]["_id"])
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|