# 🔧 InteRecipe:交互式数据处理配方生成流程 ## 概述 本演示展示了使用 Data-Juicer 算子池(Operator Pool)进行**交互式、渐进式的数据处理配方生成工作流**。该系统支持用户和智能体协同构建、编辑和验证数据处理配方,具有高度的灵活性与透明性。 InteRecipe 系统架构图 --- ## 使用方法 在运行前,请设置以下环境变量: ```bash export DASHSCOPE_API_KEY=your_dashscope_key ``` 安装依赖项: ```bash uv pip install -r requirements.txt ``` 【可选】启动copilot服务器(将`../qa-copilot/setup_server.sh`中的`DATA_JUICER_PATH`变量替换为您的data-juicer仓库的绝对路径): ```bash cd ../qa-copilot bash setup_server.sh ``` 通过 Streamlit 启动演示: ```bash streamlit run app.py ``` > InteRecipe 主体功能与 Q&A Copilot (Ask AI组件) 相互独立,后者需单独部署但不影响前者运行。 > 关于 Q&A Copilot 的详细配置,请参考 [qa-copilot/README_ZH.md](../qa-copilot/README_ZH.md)。 ### 算子池使用示例 查看 `./playground.ipynb` 文件。 --- ## ✨ 核心功能:算子池(Operator Pool) 算子池是一个类似有序字典的专用结构,用于存储所有候选的 Data-Juicer 算子(Operators),用于数据处理任务。 每个算子包含以下信息: - **基本信息**:名称和描述 - **状态**:是否启用 - **参数**:名称、描述、类型及当前值 - **统计信息**(基于数据集快照):最小值、最大值、均值、标准差、分位数等 - **排序位置**:算子在当前工作流中的位置 📊 **可视化与交互** - 整个算子池的状态会被可视化展示,提供清晰且可编辑的概览。 - LLM 智能体会利用这些状态信息,建议对数据配方的修改或优化。 🛠️ **支持的操作** 用户和 LLM 智能体可以执行以下操作: - 启用或禁用某个算子 - 修改算子的参数值 - 调整算子的执行顺序 每种不同的算子池配置都对应一个独特的数据处理配方。 ❓ **为什么要使用算子池?** ✅ **渐进式 & 交互式配方生成** 数据配方的构建通常是多阶段的,例如:模态对齐、目标设定、数据分析、属性归因等。算子池允许在每个阶段进行精细控制和编辑,从而实现增量式、迭代式的开发过程。 ✅ **鲁棒性 & 有效性** 直接让 LLM 一次性生成完整的数据处理配方,往往会导致无效输出。而借助算子池,每次修改都会经过严格校验,确保配方的完整性,并在出现问题时提供反馈。 --- ## 模块说明 - **LLM 助手模块** 用户可以向 LLM 助手咨询当前算子池状态及相关辅助信息。用户只需点击即可应用由 LLM 生成的建议。 - **数据分析模块** 利用 `dj.analyzer` 工具包进行全面的数据分析。相关统计结果会以图表形式展示,帮助用户编辑算子池。 - **[开发中] 数据归因模块** 该模块旨在衡量每个算子对验证任务的贡献。对应的工具包正在开发中,命名为 `dj.attributor`。 - **[开发中] 沙箱模块** 利用 `dj.sandbox` 工具包,通过小规模实验实现反馈驱动的算子选择和编辑。 --- ## 开发路线图 InteRecipe 将在未来版本中集成到 Data-Juicer Agents 体系中,实现更智能化的自动数据处理配方生成与优化。 ### ✅ LLM 助手模块 - [x] 基础提示模板与对话框设计 - [x] 建议响应格式化、解析与应用 - [ ] 高级查询功能(结合统计数据、归因结果、沙箱反馈) ### ✅ 数据分析模块 - [x] 基础可视化功能 - [x] 算子池中的分位数图 - [x] 词云展示 - [ ] 逐算子的序列洞察可视化 ### ✅ 数据归因模块 - [x] 基础归因器:基于文本嵌入相似度与皮尔逊相关系数的归因器 - [ ] 高级归因器:梯度相似度、上下文困惑度、LLM 归因等 ### ✅ 沙箱模块 - [ ] 基础沙箱部署 - [ ] 监控功能 ### ✅ 其他 - [x] 配方画廊(Recipe Gallery) - [ ] 纯代理工作流评估 - [ ] 基准测试 - [ ] 最佳实践文档