# data_analysis_visualization_practice **Repository Path**: xenogene/data_analysis_visualization_practice ## Basic Information - **Project Name**: data_analysis_visualization_practice - **Description**: 数据分析与可视化实践——基于大模型的数据视频生成 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-10-13 - **Last Updated**: 2025-10-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据分析与可视化实践 ## key需要自己按参考文档里面注册 ## 项目介绍 数据分析与可视化实践——基于大模型的数据视频生成 本项目为天津大学数据分析与可视化实践课程的小组项目,旨在通过大模型技术实现数据的智能分析和视频生成。 ## 课程安排 ### 3.1 整体安排 - **小组形式**:每组4-5人,共同完成代码复现与改进、项目报告撰写、PPT制作与汇报 - **PPT汇报**: - 时间:2025年11月23日 8:30-12:00 - 地点:45楼A108(暂定) - **材料提交**:每组上传一份课程材料到智慧树,截止时间2025年11月30日 ### 3.2 结课材料要求 1. **项目源码** - 包含完整源码和详细注释 - 提供环境配置说明 - 包含运行说明文档 2. **项目报告** - 使用指定模板 - 内容详实、图文并茂、写作规范 - 不少于12页 3. **汇报PPT** - 项目背景与目标 - 技术路线介绍 - 实现效果展示 ## 软件架构 基于大模型的数据分析与视频生成系统架构: - 数据预处理模块 - 大模型分析引擎 - 视频生成模块 - 可视化展示组件 ## 安装教程 1. 克隆项目到本地 2. 安装Python环境依赖 3. 配置大模型API接口 ## 使用说明 1. 准备数据文件 2. 运行数据分析脚本 3. 生成可视化视频 ### 功能裁剪:去除背景音乐与音效 依据《代码复现指导书》的要求,本仓库已默认移除“背景音乐(BGM)”与“音效(SFX)”模块: - 仅保留图像与配音(speech)生成; - 视频合成阶段不再混入 BGM 与音效; - 配置文件 `configs/mm_story_agent.yaml` 中已禁用相关生成与混音: - 注释掉 `sound_generation` 与 `music_generation` 段; - 在 `video_compose.params` 下新增 `enable_music: false` 与 `enable_sound: false`。 如需重新启用: 1) 在 `configs/mm_story_agent.yaml` 里取消注释 `sound_generation` 与/或 `music_generation` 段; 2) 在 `video_compose.params` 中将对应开关改为 `true`: ``` enable_music: true enable_sound: true ``` 3) 确保已安装相应依赖(如 `moviepy`, `librosa`, `diffusers` 等)并正确配置所需 API Key。 ### DashScope API Key 配置提示 本项目涉及大模型调用,需要配置 DashScope 的 API Key。请在命令行运行前设置环境变量: - Windows 系统: ``` set DASHSCOPE_API_KEY=你的API密钥 python run.py -c configs/mm_story_agent.yaml ``` - Linux/Mac 系统: ``` export DASHSCOPE_API_KEY=你的API密钥 python run.py -c configs/mm_story_agent.yaml ``` 请将 `你的API密钥` 替换为你实际申请到的 DashScope API Key。 ## 修改生图模块为api调用方式 本次在不改变外部调用方式的前提下,完成了以下两点: 1) 修改生图模块为 API 调用方式 - 将本地 Stable Diffusion XL 推理替换为阿里云 DashScope 图片生成 API。 - 具体改动:`mm_story_agent/modality_agents/image_agent.py` - 新增 `ImageAPISynthesizer`,通过 `dashscope.ImageSynthesis.call` 生成图片; - 保持 `@register_tool("story_diffusion_t2i")` 的工具接口不变; - 仍对提示词应用风格模板(如 Storybook、Anime 等),并支持负向提示词; - 下载返回的图片 URL 并保存到 `generated_stories//image/` 中。 - 配置项更新:`configs/mm_story_agent.yaml` 中 `image_generation.cfg.model_name` 改为 `wanx-v1`(可按需替换为其他已开通的图生图/文生图模型标识)。 - 模型选择优先级:`image_generation.params.model_name` > `image_generation.cfg.model_name` > 环境变量 `DASHSCOPE_IMAGE_MODEL` > 默认 `wanx-v1`。 - Windows 临时覆盖示例: ```cmd set DASHSCOPE_IMAGE_MODEL=wanx-v1 python run.py -c configs\mm_story_agent.yaml ``` 2) 加入长文本处理扩展模块 - 新增工具:`mm_story_agent/utils/long_text.py` 中的 `LongTextProcessor`; - 作用:当故事文本总长度过长时,自动分块摘要,减少 LLM 调用的上下文长度,避免超限; - 接入点:`image_agent.py` 的 `StoryDiffusionAgent.call` 中,对 `pages` 先进行 `compact_pages_if_needed` 处理,再调用人物抽取与图像提示词生成链路。 ## 长文本处理扩展模块:数据驱动故事生成(data -> story pages) 为适配“真实数据驱动”的数据叙事,新增了从“数据长文本 -> 故事页面”的链路,避免主题扩写带来的幻觉: - 入口类:`mm_story_agent/modality_agents/story_agent.py`(`QAOutlineStoryWriter`) - 新增提示:`data_story_writer_system` / `data_story_writer_prompt`(见 `mm_story_agent/prompts_en.py`) - 长文本压缩:复用 `LongTextProcessor`,先压缩 data 再生成页面,降低超长上下文风险 - 使用方式:编辑 `configs/mm_story_agent.yaml` 中 `story_writer.params` - 自动模式(推荐):提供 `data` 字段即可触发 data 模式 - 或显式 `mode: data` 示例(片段): ```yaml story_writer: tool: qa_outline_story_writer cfg: temperature: 0.5 params: mode: data data: | 2024年天津市中小学生每日阅读时长平均为23分钟,比2023年提升12%。 前三类最受欢迎的读物为:科普、童话、漫画。 学校开展的阅读打卡活动覆盖率达到78%。 max_pages: 10 ``` 注意:输出严格为 Python 列表(每页一条字符串),后续会用于配音与生图模块。 ### 使用步骤(Windows CMD 示例) 1. 准备 API Key(请勿使用示例仓库中的 Key,自行在阿里云控制台申请) ```cmd set DASHSCOPE_API_KEY=你的API密钥 set ALIYUN_ACCESS_KEY_ID=你的阿里云AK set ALIYUN_ACCESS_KEY_SECRET=你的阿里云SK set ALIYUN_APP_KEY=你的实时语音TTS AppKey ``` 2. 安装依赖 ```cmd pip install -r requirements.txt ``` 3. 运行示例 ```cmd python run.py -c configs\mm_story_agent.yaml ``` 4. 结果产物 - 故事与多模态文件输出到 `generated_stories/example/` 下: - `image/`:每页一张 `pX.png` - `speech/`:每页一段配音 `pX.wav` - `script_data.json`:包含每页故事文本、图像提示词等元数据 - `final_video.mp4`(由视频合成模块生成) ### 常见问题 - 提示 `Unauthorized` 或 `Quota exceeded`:检查 `DASHSCOPE_API_KEY` 是否正确、是否开通信额度。 - 图片风格与质量:可在 `configs/mm_story_agent.yaml` 的 `image_generation.params.style_name` 和 `guidance_scale` 上做调整(API 不一定使用 guidance_scale,但接口兼容保留)。 - SD 本地推理相关依赖仍在 `requirements.txt`:为了与课程材料一致保留,如完全使用 API 可自行移除 `diffusers/torch` 等。 ## 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request ## 项目特色 1. 集成大模型技术进行智能数据分析 2. 自动生成数据可视化视频 3. 支持多种数据格式输入 4. 提供友好的用户交互界面