使用 ChatGPT 进行数据分析:让你的 AnyLogic 模型开口说话

带有 ChatGPT 界面的模型方案

这篇特邀博文由Noorjax Consulting的 Felipe Haro 和 Joaquin Guzman撰写,分享 了他们将ChatGPT无缝集成到AnyLogic模型数据收集流程中的创新方法。


建立模型并生成仿真结果图表仅仅是个开始。那么,如何理解模型并收集模型所需的数据呢?光有一个完善的模型可能还不够。

如今,我们有多种方法使用智能解决方案来改善我们的体验。ChatGPT是一款多功能工具,可以帮助您读取数据并在运行模型时生成结论。在这篇博文中,我们将揭示ChatGPT集成的几种技术,并教您如何利用这种集成进行数据分析。

博文内容::

  1. 用于数据分析的 ChatGPT
  2. 在 AnyLogic 模型中集成 ChatGPT 的示例
  3. 安装 ChatGPT 数据分析器
  4. 关于使用ChatGPT进行数据分析的最终意见

用于数据分析的 ChatGPT

ChatGPT擅长快速有效地处理海量数据。与人类相比,人工智能需要更少的时间来处理信息并得出结论。想象一下,将ChatGPT这样的先进工具集成到您的仿真模型中以简化这一过程。

这就好比有了一个副驾驶员,可以帮助你更直观地驾驭模型的行为。利用自然语言处理(NLP),人工智能可促进分析师或决策者与仿真模型之间的无缝交流。这种方法简化了探索、总结>和解释数据等任务。

数据分析师副驾驶员

让您的生活更轻松的解决方案是带有对话智能体的 AnyLogic 库。该智能体连接到 OpenAI平台,让您可以在模型中直接受益于人工智能能力。您可以通过该智能体发送消息并读取回复,让 ChatGPT 完成所有数据分析工作。

集成在 AnyLogic 软件中的 ChatGPT 界面

查看 AnyLogic 和 OpenAI 对话智能体

在了解安装过程和功能之前,让我们通过一个示例模型来了解对话是如何工作的。

在 AnyLogic 模型中集成 ChatGPT 的示例


上面的视频演示了通过ChatGPT智能体与模型进行通信的流程,让我们一步步来了解这个例子。在这个模型中,用户可以调整出生率,而死亡率则根据人口增长而变化,以限制人口的过度增长。

AnyLogic 中出生率模型的结构

模型结构

该模型的具体细节对于演示目的来说并不重要,但可以想象它最初遵循的是指数增长模式,然后由于施加的限制而趋于平稳,形成一条S曲线。运行该模型后,人口会发生相应的演变。

人口动态图

人口增长动态

现在,我们可以开始与ChatGPT互动了。我们可以询问一般的行为问题或查询特定的数据点。

与 ChatGPT 智能体对话

AnyLogic 模型对话智能体中的 ChatGPT 数据分析示例

让我们来了解一些具体情况。例如,在仿真过程中调整出生率,观察由此产生的人口变化。

出生率变化图

几个月后模型动态的变化

我们可以要求 ChatGPT 根据新结果得出结论,而无需提供额外的背景。这些回答有时会推断或假设细节,但往往能得出正确的结论。

对话界面

与模型中的 ChatGPT 通信示例

例如,虽然ChatGPT对变化时间的描述可能不准确,但它正确地指出了人口减少的原因--在本例中,是出生率下降。不过,必须谨慎对待这些回复。请记住,ChatGPT只是一个有帮助的工具,而不是完美的数据科学专家。

ChatGPT 数据分析师的安装

ChatGPT集成过程非常简单直接,只需遵循以下三个步骤即可:

  1. 访问 GitHub 并安装 Pypeline 库。它支持 Python查询,这对使用OpenAI至关重要。
  2. 安装由 Noorjax 开发人员设计的 ChatGPT 库。 如果你是在AnyLogic中添加库的新手,请查看帮助文档 以获得指导。
  3. 安装完成后,您会在面板底部发现两个新增库。只需将对话智能体拖放到模型中即可。

完成安装阶段后,让我们来熟悉一下对话智能体的参数。

对话智能体的文本字体和 Python 设置

AnyLogic模型中ChatGPT智能体的文本字体和 Python 部分

文本字体部分

在这里,您可以自定义标题和聊天信息的文本字体。您可以随意尝试,找到最适合自己的选项。

Python 参数

Python 路径: 在这里,您可以指定计算机上 Python 可执行文件的路径。如果您是 Python 安装新手,请查看指南

API 密钥: 用于访问OpenAI服务的唯一标识符。您可以通过登录或注册在 OpenAI 平台上找到您的 API 密钥

助手密钥:

  • 进入OpenAI助手页面,点击 + 创建
  • 为您的助手命名,写明您希望聊天工具的行为方式,并提供有关模型目的的上下文。包括数据格式,以便与OpenAI进行有效沟通。
  • 例如:"以流行病学专家和数据科学与统计学专家的身份回答问题,字数不超过 80 字。只提供与数据相关的结论和答案。数据格式如下 NameOfStat:{{Time:Value}}"

    格式对于无缝ChatGPT数据分析和通信至关重要。它可以帮助智能体了解接收到的数据格式。

  • 从可用选项中选择大型语言模型,同时考虑性能和成本。程序库默认使用GPT3.5;如果想获得更好的性能,可以选择GPT4。如果选择GPT4,请务必设置付款方式
  • 重要提示: 确保您的OpenAI平台有足够的点数来接收聊天回复。GPT3.5可能有初始点数,但 GPT4.0或更高版本没有。

  • 复制生成的助手密钥并粘贴到 AnyLogic 中对话智能体的助手密钥参数中。

数据时间单位:此设置决定ChatGPT在回复时使用的时间单位。在向聊天提供数据时,请确保与这些单位保持一致。

响应更新时间(秒): 该参数决定 API 检查响应准备情况的频率。可以保留为默认值。

对话演示

您可以使用下面的参数修改对话图像。请随意尝试,找到最适合您的方法。

对话界面设置

AnyLogic 中对话演示的设置

对话框宽度:以像素为单位调整对话框宽度,以适合您的界面。

文本间距:以像素为单位设置每行文字之间的间距,以提高可读性。

聊天行数显示:指定显示的最大行数,以控制其大小。

文本框高度:定义文本框的高度,以方便输入。

按钮高度:确定重置和运行响应等按钮的高度,以方便交互。

每行最大字符数:限制每行的最大字符数,以保持清晰并防止文本溢出。

将数据传输到对话工具

现在我们已经设置好了一切,下一步就是告诉ChatGPT我们对哪些信息感兴趣。在我们使用的示例中,这将是出生率发生变化时的信息。此外,我们还想跟踪出生、人口和死亡人数随时间的变化情况。为此,我们可以设置一个事件,每月生成一次数据。

addStat 方法需要三个参数:

  • 数据名称。
  • 收集时间。
  • 数据转换为字符串

添加新参数的设置

添加新参数的 AnyLogic 接口

如果还想收集上述事件中初始出生率的信息,可以在time t=0 添加:

chat.addStat("birth rate", time(), Double.toString(birthRate));

之后,我们可以使用相同的代码来收集用户更改出生率的信息,如下图所示。

带有代码的AnyLogic接口可跟踪出生率的变化

收集有关出生率变化的信息

最后,如果要重置数据,可以使用resetStats()函数。

关于使用ChatGPT进行数据分析的最终意见

在仿真建模中,ChatGPT集成为分析师和决策者提供了从复杂系统中获取洞察力的卓越能力。它处理大量数据并提供预测性见解的能力增强了情景分析。不过,必须承认的是,ChatGPT并不是完美无缺的,它应该被视为一种辅助工具,而不是分析工作的唯一决定因素。


敬请关注最新、最有效的技术,以增强您与仿真模型的互动。立即订阅我们的时事通讯,了解最新信息!

订阅我们的时事通讯

相关文章