Call large model to generate podcast dialogue script
(content, language="zh")
| 229 | |
| 230 | |
| 231 | def generate_podcast_script(content, language="zh"): |
| 232 | """Call large model to generate podcast dialogue script""" |
| 233 | from openai import OpenAI |
| 234 | |
| 235 | client = OpenAI( |
| 236 | api_key=os.getenv("OPENAI_API_KEY", "YOUR_API_KEY"), |
| 237 | base_url=os.getenv("OPENAI_API_BASE", "YOUR_API_BASE_URL"), |
| 238 | ) |
| 239 | |
| 240 | if language == "zh": |
| 241 | role_play = "两位中文播客主持人" |
| 242 | instruction = f"""你是一位专业的中文播客文字脚本撰稿人。现在请你根据提供的有关最新AI及大模型相关进展的原始资料,生成一段模拟{role_play}之间的自然对话脚本。该脚本应符合以下具体要求: |
| 243 | 一、语言风格 |
| 244 | - 使用较为自然、随意、轻松的日常中文表达; |
| 245 | - 优先采用简单易懂的词汇,避免书面用语,将书面表达转换为符合口语表达的形式,但不改变专业词汇的内容; |
| 246 | - 可适度加入网络流行语、俗语、俚语,增强真实感; |
| 247 | - 符合{role_play}对话的感觉。 |
| 248 | |
| 249 | 二、句式结构 |
| 250 | - 使用松散、自然的句式,允许存在口语特征如重复、停顿、语气词等; |
| 251 | - 鼓励使用叠词(如"特别特别"、"慢慢来")和填充词(如"这个"、"其实"、"然后"、"就是"、"呃"等); |
| 252 | - 可适度插入模糊表达、略带情绪的语调,增强亲和力。 |
| 253 | |
| 254 | 三、对话结构 |
| 255 | - 两个说话人交替发言,并使用[S1]和[S2]标记两位说话人轮次,[S1]和[S2]中间不加入换行; |
| 256 | - 每当一方讲话时,另一方可以适当插入自然、简短的反馈或承接语(如"嗯。""对。""是的。""确实。""原来是这样。"等),展现倾听状态; |
| 257 | - 对话应有开头引入、核心讨论与自然结尾,语气上有节奏起伏,避免平铺直叙; |
| 258 | - 总长度控制在10分钟以内的语音朗读时长(不超过1500字),禁止超时。 |
| 259 | - **特别强调听话方的积极反馈:当一位说话人正在讲述或解释某个观点时,另一位说话人应频繁地插入简短的承接或反馈词语(例如:「嗯。」、「是。」、「对。」、「哦。」、「是的。」、「哦,原来是这样。」、「明白。」、「没错。」、「有道理。」、「确实」),以表明其正在积极倾听、理解和互动。这些反馈应自然地穿插在说话者语句的间歇或段落转换处,而不是生硬地打断。例如:[S2]我本人其实不太相信星座诶,[S1]嗯。[S2]在一开始的时候,我就跟大部分不相信星座的一样,觉得,呃,你总能把人就分成十二种,[S1]是的。[S2]然后呢就它讲的就是对的。这种反馈要尽可能多,不要吝啬。** |
| 260 | |
| 261 | 四、标点与格式 |
| 262 | - 仅使用中文标点:逗号、句号、问号; |
| 263 | - 禁止使用叹号。禁止使用省略号('...')、括号、引号(包括''""'")或波折号等特殊符号; |
| 264 | - 所有数字转换为中文表达,如"1000000"修改为"一百万"; |
| 265 | - 请根据上下文,智慧地判断数字的读音,所有带数字的英文缩写要意译,如"a2b"输出为"a到b"、"gpt-4o"输出为"GPT四O"、"3:4"输出为"3比4","2021"如果表达年份,应当转换为"二零二一",但如果表示数字,应当转换为"两千零二十一"。请保证不要简单转换为中文数字,而是根据上下文,将其翻译成合适的中文。 |
| 266 | |
| 267 | 五、内容要求 |
| 268 | - 所有内容都基于原始资料改写,不得照搬其书面表达,原始资料中所有的内容都要完整的提到,不能丢失或者省略信息; |
| 269 | - 可加入适当的背景说明、吐槽、对比、联想、提问等方式,增强对话的节奏和趣味性; |
| 270 | - 确保信息密度较高,引用需确保上下文完整,确保听众能理解; |
| 271 | - 在对话内不要输出"我是谁","我是S1","我是S2"等相关内容; |
| 272 | - 如有专业术语则需要提供解释的解释,如果涉及抽象技术点,可以使用比喻类比等方式解释,避免听起来晦涩难懂。 |
| 273 | |
| 274 | ## 原始资料 |
| 275 | {content} |
| 276 | |
| 277 | 请根据以上要求和提供的原始资料,将其转化为符合以上所有要求的播客对话脚本。一定要用[S1]和[S2]标记两位说话人,绝对不能使用任何其它符号标记说话人。 |
| 278 | 注意:直接输出结果,不要包含任何额外信息。 |
| 279 | """ |
| 280 | else: # Default to English |
| 281 | role_play = "two English podcast hosts" |
| 282 | instruction = f"""You are a professional English podcast scriptwriter. Based on the provided source material about the latest developments in AI and large models, generate a natural conversational script simulating a dialogue between {role_play}. The script should meet the following specific requirements: |
| 283 | I. Language Style |
| 284 | - Use natural, casual, and relaxed everyday English expressions. |
| 285 | - Prioritize simple and easy-to-understand vocabulary, avoiding formal language. Convert written expressions into spoken language forms without changing the content of professional terms. |
| 286 | - Appropriately include internet slang, colloquialisms, and idioms to enhance authenticity. |
| 287 | - The dialogue should feel like a conversation between {role_play}. |
| 288 |
no outgoing calls
no test coverage detected