博客

  • MetaGPT 数据可视化:让数据说话

    MetaGPT 数据可视化:让数据说话

    数据可视化是将数据以图表、图形等视觉形式呈现的过程,它可以帮助我们发现数据中的模式、趋势和相关性,并提供洞察和理解。通过数据可视化,我们可以更好地理解数据的含义,传达和解释结果,并支持数据驱动的决策和沟通。

    示例:可视化鸢尾花数据集

    任务: 使用 DataInterpreter 对 sklearn 的鸢尾花数据集进行简单的分析和可视化。

    代码:

    python examples/di/data_visualization.py

    examples/di/data_visualization.py 文件中的代码如下:

    import asyncio
    from metagpt.logs import logger
    from metagpt.roles.di.data_interpreter import DataInterpreter
    from metagpt.utils.recovery_util import save_history
    
    async def main(requirement: str = ""):
    
        di = DataInterpreter()
        rsp = await di.run(requirement)
        logger.info(rsp)
        save_history(role=di)
    
    
    if __name__ == "__main__":
    
        requirement = "对 sklearn 的鸢尾花数据集进行数据分析,并包含一个图表"
        asyncio.run(main(requirement))

    执行上述代码后,生成的计划和代码将分别保存在 data/output/current_time/plan.jsondata/output/current_time/code.ipynb 文件中。

    执行结果

    DataInterpreter 提出了以下解决方案任务:

    [
      {
        "task_id": "1",
        "dependent_task_ids": [],
        "instruction": "从 sklearn 加载鸢尾花数据集。"
      },
      {
        "task_id": "2",
        "dependent_task_ids": ["1"],
        "instruction": "对鸢尾花数据集进行探索性数据分析。"
      },
      {
        "task_id": "3",
        "dependent_task_ids": ["2"],
        "instruction": "创建图表来可视化鸢尾花数据集的特征。"
      }
    ]

    DataInterpreter 能够将问题分解成逻辑任务,并按照加载数据、分析数据和绘制图表步骤进行执行。

    DataInterpreter 生成的代码如下:

    # ----------------------------------task1------------------------------------
    from sklearn.datasets import load_iris
    iris_data = load_iris()
    iris_data.keys()
    !pip install scikit-learn
    from sklearn.datasets import load_iris
    iris_data = load_iris()
    iris_data.keys()
    # ----------------------------------task2------------------------------------
    import pandas as pd
    
    # 从鸢尾花数据集创建 DataFrame
    iris_df = pd.DataFrame(iris_data['data'], columns=iris_data['feature_names'])
    iris_df['species'] = pd.Categorical.from_codes(iris_data['target'], iris_data['target_names'])
    
    # 汇总统计
    summary_statistics = iris_df.describe()
    
    # 检查缺失值
    missing_values = iris_df.isnull().sum()
    
    (summary_statistics, missing_values)
    # ----------------------------------task3------------------------------------
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    # 使用 seaborn 的 pairplot 可视化数据集特征
    sns.set(style='whitegrid', context='notebook')
    iris_pairplot = sns.pairplot(iris_df, hue='species', height=2.5)
    plt.show()

    在执行任务 1 时,由于环境中缺少 scikit-learn,第一次执行时发生了错误。但是,DataInterpreter 能够分析并解决这个问题,通过安装 scikit-learn 来解决。在任务 3 中,DataInterpreter 使用 seaborn 的 pairplot 函数创建了一个散点图矩阵,它可视化了数据集不同特征之间的关系,并使用颜色区分了不同物种的数据点。最后,使用 plt.show() 显示图表。

    以下是 DataInterpreter 运行代码后绘制的图表。很明显,代码成功执行并生成了一个漂亮的可视化表格,它可以帮助我们更有效地分析数据集的特征。

    总结

    这个例子展示了 DataInterpreter 如何使用数据可视化来帮助我们分析和理解数据。它能够自动生成代码,并根据我们的需求选择合适的可视化方法。

    更多学习资源

  • MetaGPT:让你的 AI 团队个性十足

    在之前的教程中,我们学习了如何整合开源 LLM,让你的 AI 团队更强大。但你是否想过,如何让团队中的每个成员都拥有独特的个性和能力?

    MetaGPT 允许你为不同的角色和动作指定不同的 LLM,让你的 AI 团队更加灵活和真实。

    个性化配置

    MetaGPT 提供了两种方式来定制 LLM 配置:

    1. 默认配置: MetaGPT 提供了一些默认配置,你可以直接使用。
    2. 自定义配置: 你可以在 ~/.metagpt 目录中创建自定义配置文件。

    示例:

    假设你想为 GPT-4、GPT-4-turbo 和 GPT-3.5-turbo 创建配置:

    from metagpt.config2 import Config
    
    # 示例配置:gpt-4、gpt-4-turbo 和 gpt-3.5-turbo
    gpt4 = Config.from_home("gpt-4.yaml")  # 从 `~/.metagpt` 目录加载 `gpt-4.yaml` 文件中的自定义配置
    gpt4t = Config.default()  # 使用 `config2.yaml` 文件中的默认配置 (模型: "gpt-4-turbo")
    gpt35 = Config.default()
    gpt35.llm.model = "gpt-3.5-turbo"  # 将模型修改为 "gpt-3.5-turbo"

    分配配置

    创建配置后,你可以将它们分配给不同的角色和动作。

    优先级:

    • 动作配置 > 角色配置 > 全局配置 ( config2.yaml 文件中的配置)

    示例:

    假设你想要创建一个模拟美国大选直播的环境,包含三个角色:

    • A: 民主党候选人
    • B: 共和党候选人
    • C: 选民
    from metagpt.roles import Role
    from metagpt.actions import Action
    
    # 创建三个动作:a1、a2 和 a3。将 gpt4t 的配置分配给 a1。
    a1 = Action(config=gpt4t, name="Say", instruction="用感情表达你的观点,不要重复")
    a2 = Action(name="Say", instruction="用感情表达你的观点,不要重复")
    a3 = Action(name="Vote", instruction="投票给候选人,并说明你为什么投票给他/她")
    
    # 创建三个角色:A、B 和 C。分别代表“民主党候选人”、“共和党候选人”和“选民”。
    # 虽然 A 在角色配置中配置了 gpt4,但由于动作配置设置,它将使用模型 gpt4t 的配置来执行 a1。
    A = Role(name="A", profile="民主党候选人", goal="赢得选举", actions=[a1], watch=[a2], config=gpt4)
    # 由于 B 在角色配置中配置了 gpt35,而 a2 没有动作配置,B 和 a2 都将使用角色配置,即模型 gpt35 的配置。
    B = Role(name="B", profile="共和党候选人", goal="赢得选举", actions=[a2], watch=[a1], config=gpt35)
    # 由于 C 没有设置配置,a3 也没有设置配置,C 和 a3 都将使用全局配置,即模型 gpt4 的配置。
    C = Role(name="C", profile="选民", goal="投票给候选人", actions=[a3], watch=[a1, a2])

    团队交互

    完成配置后,你可以创建一个团队,并让它们进行交互。

    示例:

    import asyncio
    from metagpt.environment import Environment
    from metagpt.team import Team
    
    # 创建一个名为“美国大选直播”的环境
    env = Environment(desc="美国大选直播")
    team = Team(investment=10.0, env=env, roles=[A, B, C])
    # 运行团队,你应该能观察到它们之间的协作
    asyncio.run(team.run(idea="主题:气候变化。每条消息不超过 80 个字。", send_to="A", n_round=3))
    # await team.run(idea="主题:气候变化。每条消息不超过 80 个字。", send_to="A", n_round=3) # 如果在 Jupyter Notebook 中运行,使用此代码行

    总结

    本教程展示了如何使用 MetaGPT 为不同的角色和动作指定不同的 LLM,让你的 AI 团队更加灵活和真实。通过个性化配置,你可以让你的 AI 团队更加符合你的需求,并创造更加沉浸式的交互体验。

    更多学习资源

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 借一步网
Page Stats: PV: 1 | UV: 1
Last updated: 2025-07-11 05:29:05
沪ICP备2024052574号-1