基于CoDA框架(Understanding→Planning→Generation→Self Reflection循环)的可视化数据分析多智能体系统。
CoDA(Code-based Data Analysis)框架是一个基于代码的数据分析可视化系统,通过四个智能体模块的迭代循环实现高质量的可视化结果生成:
- Understanding模块:理解用户需求和数据特征
- Planning模块:制定可视化方案和执行计划
- Generation模块:生成和执行可视化代码
- Self Reflection模块:检查结果并优化方案
- ✅ 基于CoDA框架的四步迭代循环
- ✅ 支持多种可视化类型(折线图、柱状图、散点图等)
- ✅ 安全的代码执行环境(沙箱机制)
- ✅ 自动优化和重试机制
- ✅ 支持API调用和本地模型部署
- ✅ 详细的执行日志和结果评估
- Python 3.8+
- 支持的模型:OpenAI API、本地部署模型
pip install -r requirements.txt- 编辑
config/config.yaml文件,配置模型参数:
model:
api_type: "openai" # 或 "local"
api_key: "your-api-key"
base_url: "https://api.openai.com/v1"
model_name: "gpt-3.5-turbo"
# 本地模型配置
local_model:
model_path: "path/to/local/model"
device: "cuda" # 或 "cpu"- 设置环境变量(可选):
export OPENAI_API_KEY="your-api-key"
export CODA_MODEL_TYPE="openai"# 交互式模式
python main.py
# 直接指定查询
python main.py --query "请生成一个正弦函数图表" --result-dir results
# 使用输入文件
python main.py --input-file input.json
# 详细输出模式
python main.py --query "生成柱状图" --verbose
# 运行示例
python main.py --example创建 input.json 文件:
{
"query": "请生成一个展示正弦函数的折线图",
"result_dir": "my_results"
}from agents.coda_agent import CodaAgent
# 创建智能体
agent = CodaAgent("config/config.yaml")
# 处理查询
input_data = {
"query": "请生成正弦函数图表",
"result_dir": "results"
}
result = agent.process_query(input_data)
if result["success"]:
print(f"成功生成图表: {result['final_output']}")
print(f"最佳评分: {result.get('best_score', 'N/A')}/10")
else:
print(f"处理失败: {result.get('error_message', '未知错误')}")python main.py --query "请生成一个展示正弦函数的折线图,x范围0到2π" --result-dir examples/sine_wavepython main.py --query "创建一个柱状图展示不同水果的销量:苹果=150,香蕉=200,橙子=120" --result-dir examples/fruit_salespython main.py --query "生成散点图展示身高和体重的相关性,包含100个随机数据点" --result-dir examples/height_weightcoda_agent/
├── main.py # 主入口文件
├── requirements.txt # 依赖包列表
├── README.md # 说明文档
├── config/
│ └── config.yaml # 配置文件
├── agents/ # 智能体模块
│ ├── __init__.py
│ ├── coda_agent.py # CoDA主智能体
│ ├── understanding.py # 理解模块
│ ├── planning.py # 规划模块
│ ├── generation.py # 生成模块
│ └── reflection.py # 反思模块
├── utils/ # 工具模块
│ ├── __init__.py
│ ├── model_client.py # 模型客户端
│ └── code_executor.py # 代码执行器
└── test_coda_agent.py # 测试用例
- api_type: 模型类型(openai/local)
- api_key: API密钥
- base_url: API基础URL
- model_name: 模型名称
- local_model: 本地模型配置
- max_iterations: 最大迭代次数(默认:5)
- timeout: 超时时间(秒,默认:300)
- sandbox_enabled: 启用沙箱(默认:true)
- max_execution_time: 最大执行时间(秒,默认:30)
- allowed_modules: 允许导入的模块列表
运行测试用例:
python test_coda_agent.py测试覆盖:
- 模型客户端功能测试
- 代码安全检查测试
- 代码执行器测试
- 各智能体模块测试
- 集成测试
- 性能测试
-
模型调用失败
- 检查API密钥配置
- 验证网络连接
- 确认模型服务可用性
-
代码执行错误
- 检查依赖包安装
- 验证代码安全性
- 查看详细错误日志
-
内存不足
- 减少最大迭代次数
- 优化代码生成策略
- 使用轻量级模型
系统会生成详细的执行日志,包含:
- 每个迭代步骤的详细信息
- 代码生成和执行结果
- 错误和警告信息
- 性能指标
欢迎贡献代码!请遵循以下步骤:
- Fork 项目
- 创建功能分支
- 提交更改
- 推送到分支
- 创建Pull Request
本项目采用MIT许可证。
如有问题或建议,请通过以下方式联系:
- 提交Issue
- 发送邮件
- 参与讨论
注意: 请确保在使用前正确配置模型参数和安全设置。