Skip to content

Shkin1/coda_agent

Repository files navigation

CoDA可视化数据分析多智能体系统

基于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

配置系统

  1. 编辑 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"
  1. 设置环境变量(可选):
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"
}

Python API使用

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', '未知错误')}")

示例演示

示例1:正弦函数图表

python main.py --query "请生成一个展示正弦函数的折线图,x范围0到2π" --result-dir examples/sine_wave

示例2:柱状图

python main.py --query "创建一个柱状图展示不同水果的销量:苹果=150,香蕉=200,橙子=120" --result-dir examples/fruit_sales

示例3:散点图

python main.py --query "生成散点图展示身高和体重的相关性,包含100个随机数据点" --result-dir examples/height_weight

项目结构

coda_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: 本地模型配置

CoDA循环配置

  • max_iterations: 最大迭代次数(默认:5)
  • timeout: 超时时间(秒,默认:300)

代码执行配置

  • sandbox_enabled: 启用沙箱(默认:true)
  • max_execution_time: 最大执行时间(秒,默认:30)
  • allowed_modules: 允许导入的模块列表

测试

运行测试用例:

python test_coda_agent.py

测试覆盖:

  • 模型客户端功能测试
  • 代码安全检查测试
  • 代码执行器测试
  • 各智能体模块测试
  • 集成测试
  • 性能测试

故障排除

常见问题

  1. 模型调用失败

    • 检查API密钥配置
    • 验证网络连接
    • 确认模型服务可用性
  2. 代码执行错误

    • 检查依赖包安装
    • 验证代码安全性
    • 查看详细错误日志
  3. 内存不足

    • 减少最大迭代次数
    • 优化代码生成策略
    • 使用轻量级模型

日志查看

系统会生成详细的执行日志,包含:

  • 每个迭代步骤的详细信息
  • 代码生成和执行结果
  • 错误和警告信息
  • 性能指标

贡献指南

欢迎贡献代码!请遵循以下步骤:

  1. Fork 项目
  2. 创建功能分支
  3. 提交更改
  4. 推送到分支
  5. 创建Pull Request

许可证

本项目采用MIT许可证。

联系方式

如有问题或建议,请通过以下方式联系:

  • 提交Issue
  • 发送邮件
  • 参与讨论

注意: 请确保在使用前正确配置模型参数和安全设置。

About

多智能体重构数据可视化-把“画图”从单次代码生成,升级为一个多智能体协作的工程系统

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages