Type something to search...
使用 CrewAI 自动分析 CSV

使用 CrewAI 自动分析 CSV

在本博客中,我们将探讨如何使用CrewAI自动化分析CSV数据集的过程。我们将构建一个工作流程,其中包括用于数据集上下文推断、数据清理、可视化和报告的代理,并最终形成一个精美的Markdown报告。

1. 初始化环境

我们首先导入必要的库,并为工作流程初始化工具和环境。

import os
import pandas as pd
import chardet
from crewai import Crew, Task, Agent, LLM, Process
from crewai_tools import FileReadTool, BaseTool, CSVSearchTool
import matplotlib.pyplot as plt
import seaborn as sns

解释:

  • 导入:用于数据处理的基本 Python 库(pandas)、可视化(matplotlibseaborn)和 CrewAI 模块(CrewTaskAgent 等)。
  • CrewAI 工具FileReadToolCSVSearchTool 使文件处理和 CSV 分析成为可能。

2. 初始化 LLM

我们使用 LLM 模型让代理处理和生成自然语言洞察。

代码:

llm = LLM(
    model='ollama/llama3.2-vision',
    base_url='http://localhost:11434',
)

解释:

  • ollama/llama3.2-vision 模型作为核心 AI 引擎,运行在本地以实现高效的数据处理。
  • 它使代理能够上下文地处理数据并生成有意义的输出。

3. 定义工具

FileReadTool 用于读取 CSV 文件,这是分析的基础。

代码:

csv_tool = FileReadTool(file_path='scm.csv')

说明:

  • FileReadTool: 读取指定的 CSV 文件(scm.csv),为代理提供原始数据以供分析。

4. 定义代理

我们创建了四个专门的代理,每个代理都有不同的角色:

a) 数据集上下文专家

代码:

dataset_inference_agent = Agent(
    role="数据集上下文专家",
    goal=(
        "通过分析列名、数据类型和一些样本行,推断数据集的上下文和目的。提取有关领域和提供的数据类型的见解。"
    ),
    backstory=(
        "一位擅长理解数据集并识别其目的的专家。您对数据科学、机器学习和数据分析有深刻的理解。"
    ),
    tools=[csv_tool],
    llm=llm,
    verbose=True,
    allow_code_execution=True
)

解释:

  • 角色:理解数据集的结构和背景。
  • 目标:识别列类型(数值型、类别型等)并推断数据集的实际应用。

b) 数据清洗专家

代码:

data_analysis_agent = Agent(
    role="Data Cleaning Specialist",
    goal=(
        "分析数据集以识别缺失值、错误的数据类型和潜在的异常值。"
        "生成统计摘要,如均值、中位数和变量之间的相关性。"
    ),
    backstory=(
        "专注于清理和准备数据以进行分析,具有数据清理和预处理的专业知识。"
    ),
    tools=[csv_tool],
    llm=llm,
    verbose=True
)

说明:

  • 角色:为分析准备数据集。
  • 目标:检测缺失值、异常值和不正确的数据类型。计算统计摘要。

c) 可视化专家

visualization_agent = Agent(
    role="Visualization Expert",
    goal=(
        "生成有意义的可视化,如直方图、散点图、折线图、条形图和热图,以提供数据洞察。将所有可视化保存到 'graphs/' 目录中。"
    ),
    backstory=(
        "专注于创建引人注目且信息丰富的可视化。您是 Python、pandas、matplotlib、seaborn 和数据可视化方面的专家,能够创建有影响力的数据故事。"
    ),
    tools=[csv_tool],
    llm=llm,
    verbose=True,
    allow_code_execution=True
)

说明:

  • 角色:从数据集中创建可视化洞察。
  • 目标:生成图表(直方图、热图、散点图)以突出数据中的关系和趋势。

d) 报告专员

代码:

markdown_report_agent = Agent(
    role="Report Specialist",
    goal=(
        "将所有发现、分析和可视化内容汇总成结构化的markdown报告。"
        "嵌入图表并为分析和总结提供清晰的部分。"
    ),
    backstory="一位将数据洞察转化为精美报告的专家。",
    tools=[csv_tool],
    llm=llm,
    verbose=True,
)

说明:

  • 角色:生成精美的Markdown报告。
  • 目标:整合所有发现并嵌入可视化,以实现专业和全面的输出。

5. 定义任务

每个任务对应一个代理的角色:

a) 数据集推断任务

代码:

dataset_inference_task = Task(
    description="分析数据集以确定其上下文、目的和结构。",
    expected_output="数据集结构和目的的描述性概述。",
    agent=dataset_inference_agent
)

说明:

  • 重点:分析列名和示例行以推断数据集的结构和目的。

b) 数据清理任务

代码:

data_analysis_task = Task(
    description="对数据集进行全面分析,以识别缺失值、错误的数据类型和潜在的异常值。",
    expected_output="缺失值的汇总、标准化的数据类型和统计指标。",
    agent=data_analysis_agent
)

说明:

  • 重点:清理和准备数据,提供有关数据质量的可操作见解。

c) 可视化任务

代码:

visualization_task = Task(
    description="Generate visualizations dynamically based on the dataset's content.",
    expected_output="A set of annotated graphs saved in the 'graphs/' directory.",
    agent=visualization_agent
)

说明:

  • 重点:生成可视化图表,揭示数据集中的趋势和关系。

d) Markdown 报告任务

代码:

markown_report_task = Task(
    description="创建一个详细的markdown报告,总结所有分析和可视化。",
    expected_output="一份精美的markdown报告,包含嵌入的图表和可操作的见解。",
    agent=markdown_report_agent,
    context=[dataset_inference_task, data_analysis_task, visualization_task],
    output_file='report.md'
)

说明:

  • 重点:将所有发现整合到一个Markdown文件中。

6. 组建船员

代码:

csv_analysis_crew = Crew(
    agents=[
        dataset_inference_agent,
        data_analysis_agent,
        visualization_agent,
        markdown_report_agent
    ],
    tasks=[dataset_inference_task, data_analysis_task, visualization_task, markdown_report_task],
    process=Process.sequential,
    verbose=True
)

说明:

  • Crew 连接所有代理和任务,依次执行它们以实现流畅的工作流程。

7. 执行工作流

代码:

result = csv_analysis_crew.kickoff()
print("Crew Execution Complete. Final report generated.")
print(result)

说明:

  • kickoff() 方法启动整个管道,生成最终的 Markdown 报告。

您可以在这里查看完整代码 : 代码

您也可以从 这里 查看我的 GitHub(如果您喜欢这些内容,请不要忘记关注)

我还展示了一些我的作品,您可以在 这里 查看。

Related Posts

使用 ChatGPT 搜索网络功能的 10 种创意方法

使用 ChatGPT 搜索网络功能的 10 种创意方法

例如,提示和输出 你知道可以使用 ChatGPT 的“搜索网络”功能来完成许多任务,而不仅仅是基本的网络搜索吗? 对于那些不知道的人,ChatGPT 新的“搜索网络”功能提供实时信息。 截至撰写此帖时,该功能仅对使用 ChatGPT 4o 和 4o-mini 的付费会员开放。 ![](https://images.weserv.nl/?url=https://cdn-im

阅读更多
在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和科技这样一个动态的行业中,保持领先意味着不断提升你的技能。无论你是希望深入了解人工智能模型性能、掌握数据分析,还是希望通过人工智能转变传统领域如法律,这些课程都是你成功的捷径。以下是一个精心策划的高价值课程列表,可以助力你的职业发展,并让你始终处于创新的前沿。 1. 生成性人工智能简介课程: [生成性人工智能简介](https://genai.works

阅读更多
10 个强大的 Perplexity AI 提示,让您的营销任务自动化

10 个强大的 Perplexity AI 提示,让您的营销任务自动化

在当今快速变化的数字世界中,营销人员总是在寻找更智能的方法来简化他们的工作。想象一下,有一个个人助理可以为您创建受众档案,建议营销策略,甚至为您撰写广告文案。这听起来像是一个梦想? 多亏了像 Perplexity 这样的 AI 工具,这个梦想现在成为现实。通过正确的提示,您可以将 AI 转变为您的 个人营销助理。在本文中,我将分享 10 个强大的提示,帮助您自动

阅读更多
10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

人工智能技术,如机器学习、自然语言处理和数据分析,正在重新定义传统设计方法。从自动化重复任务到实现个性化用户体验,人工智能使设计师能够更加专注于战略思维和创造力。随着这一趋势的不断增长,UI/UX 设计师越来越多地采用 AI 驱动的工具来促进他们的工作。利用人工智能不仅能提供基于数据的洞察,还为满足多样化用户需求的创新设计解决方案开辟了机会。 1. 用户角色开发 目的

阅读更多
在几分钟内完成数月工作的 100 种人工智能工具

在几分钟内完成数月工作的 100 种人工智能工具

人工智能(AI)的快速发展改变了企业的运作方式,使人们能够在短短几分钟内完成曾经需要几周或几个月的任务。从内容创作到网站设计,AI工具帮助专业人士节省时间,提高生产力,专注于创造力。以下是按功能分类的100个AI工具的全面列表,以及它们在现实世界中的使用实例。 1. 研究工具 研究可能耗时,但人工智能工具使查找、分析和组织数据变得更加容易。**ChatGPT, Cop

阅读更多
你从未知道的 17 个令人惊叹的 GitHub 仓库

你从未知道的 17 个令人惊叹的 GitHub 仓库

Github 隐藏的宝石!! 立即收藏的代码库 学习编程相对简单,但掌握编写更好代码的艺术要困难得多。GitHub 是开发者的宝藏,那里“金子”是其他人分享的精心编写的代码。通过探索 GitHub,您可以发现如何编写更清晰的代码,理解高质量代码的样子,并学习成为更熟练开发者的基本步骤。 1. notwaldorf/emoji-translate *谁需

阅读更多