InfoFlow AI 的核心不仅仅是一个脚本,而是一个基于 DAG (有向无环图) 的自动化媒体工厂。系统采用模块化微服务设计,确保任何一个环节(如 TTS 引擎升级)都可以独立替换而不影响整体流程。

1. 系统架构全景图 (System Overview)

Topic HunterTavily API
Jina Reader
Script WriterGPT-4o
LangChain
Audio StudioElevenLabs
Pydub
Video EngineMoviePy
FFmpeg

2. 核心技术栈 (Tech Stack)

3. 模块详解 (Pipeline Details)

3.1 The Hunter (信息猎手)

任务: 解决“不知道今天要讲什么”的问题。

逻辑: 系统内置了一个 Cron Job(定时任务),每天早晨 8:00 触发。它会向 Tavily 发送查询请求(例如:"top AI news today"),并获取前 5 个结果的 URL。随后,利用 Jina Reader 抓取这些 URL 的正文内容,剔除广告和导航栏。

3.2 The Writer (王牌编剧)

任务: 解决“新闻太枯燥”的问题。

技术难点: LLM 通常喜欢输出一大段废话。我们需要它输出机器可读的 JSON

Prompt 策略: 我们使用 Few-Shot Prompting,强制模型返回如下 JSON 结构:

[ { "speaker": "Alex", "voice_id": "EXAV", "emotion": "excited", "text": "Hey Bob! Did you see the new release from OpenAI?" }, { "speaker": "Bob", "voice_id": "TX99", "emotion": "calm", "text": "Yes I did. It's quite a game changer." } ]

3.3 The Studio (音频工作室)

任务: 解决“声音听起来像机器人”的问题。

实现逻辑: Python 脚本解析上述 JSON。系统维护一个 Voice_Map 字典,将角色 Alex 映射到 ElevenLabs 的特定 Voice ID。脚本并行调用 API 生成音频片段(Chunk),然后使用 Pydub 库将这些碎片按顺序拼接,并在对话切换处插入 300ms - 500ms 的静音(Silence),模拟真实呼吸感。

3.4 The Visualizer (视觉引擎)

任务: 将音频“可视化”以便在视频平台发布。

MVP 方案: 1. 封面生成: 调用 DALL-E 3 生成一张与新闻关键词匹配的 16:9 图片。 2. 波形动画: 使用 Python `matplotlib` 或 `numpy` 生成对应音频的动态波形视频流(可选)。 3. 合成: 使用 `MoviePy` 将封面图(静态)+ 音频(MP3)+ 字幕(SRT)压制为最终的 MP4 文件。

4. 数据流与存储 (Data Flow)

5. 部署方案 (Deployment)

为了实现 7x24 小时无人值守,我们推荐以下部署方式: