ComfyUI-PandasAI数据分析包

TOOL Dec 6, 2024

ComfyUI-PandasAI是ComfyUI平台上的数据分析自定义节点包,可以采用自然语言分析本地csv/xlsx文件,或Sqlite、MySQL、PostgreSQL等数据库。

1、代码组织

ComfyUI-PandasAI节点包的目录组织说明如下:

文件路径文件说明
requirements.txt依赖包清单文件
__init__.py包入口文件
py/自定义节点目录
py/smart_dataframe.pySmartDataframe节点
py/chat_with_smart_dataframe.pyChatWithSmartDataframe节点
py/agent.pyAgent节点
py/chat_with_agent.pyChatWithAgent节点
py/bamboom_llm.pyBambooLLM节点
py/openai_llm.pyOpenAI节点
py/google_palm_llm.pyGoogle Palm节点
py/google_vertexai_llm.pyGoogle VertexAI节点
py/azure_openai_llm.pyAzure OpenAI节点
py/huggingface_textgen_llm.pyHuggingFace TextGen节点
py/custom_llm.pyCustomLLM节点
py/file_connector.pyFileConnector节点
py/sql_connector.pySQLConnector节点
py/sqlite_connector.pySqliteConnector节点
py/mysql_connector.pyMySQLConnector节点
py/postgresql_connector.pyPostgreSQLConnector节点
web/前端扩展目录
web/pandasai.js前端扩展
examples/示例工作流目录
examples/smart_dataframe.json使用SmartDataframe分析本地csv或xlsx文件的工作流
examples/supported-connectors.json数据源节点一览
examples/supported-llms.json大模型支持节点一览
datasets/示例数据集目录
coffee.csv咖啡店订单数据,csv格式
loan_payments.csv贷款支付数据,csv格式
Loan payments data.xlxs贷款支付数据,xlxs格式
employees_db.zip员工数据,sqlite格式,zip压缩

2、安装

将节点包解压到 ComfyUI/custom_nodes 目录下,结果如下所示:

ComfyUI
  |- custom_nodes
        |- ComfyUI-PandasAI
              |- __init__.py
              |- ...

然后进入 ComfyUI-PandasAI 目录,执行如下命令安装依赖包:

pip install -r requirements.txt

3、使用示例数据集快速上手

在ComfyUI界面中,点击【Load】按钮载入 examples/smart_dataflow.json工作流,如下图所示:

smart dataframe example workflow

SmartDataframe节点类似于使用LLM大模型增强的表格数据集,可以使用自然语言分析数据集。 它的输入有两个:

  • llm:用于分析自然语言的大模型
  • connector:数据源连接器,可以连接本地文件或sql数据库等。

在这个工作流中,使用了 Custom LLM 节点来访问Groq的API,主要参数如下:

  • api_base: OpenAI兼容API访问基址,对于Groq来说,这个值是 https://api.groq.com/openai/v1
  • api_key: 大模型服务商的API KEY,Groq可以在这里创建API Key
  • model:使用的大模型,这里使用 llama3-8b-8192 模型

示例工作流使用的数据源连接器是 File Conector,用来访问本地的数据文件,目前支持csv格式和xlxs 格式,点击 【upload】按钮即可上传本地其他目录的数据文件。

Chat With Smart Dataframe节点是我们输入的地方,例如查询贷款支付数据中男女各有多少人,可以输入:

贷款的男女各有多少人?

工作流的输出使用了ComfyUI-Custom-Scripts节点包中的 show text节点,用于显示结果文字,如上图所示:

    Gender Count
0    male   423
1   female   77

4、数据源自定义节点

4.1 FileConnector

file connector node

FileConnector可以上传本地的数据文件作为数据分析的数据源,目前支持csv和xlxs。

输入:

  • file:已上传的数据文件

输出:

  • connector:数据源连接对象

4.2 SqliteConnector

sqlite connector

SqliteConnector以本地的sqlite数据库文件作为数据分析的数据源。

输入:

  • file:sqlite数据库文件本地路径

输出:

  • connector:数据源连接对象

4.3 MySQLConnector

MySQL Connector

MySQLConnector以MySQL数据库表作为数据源。

输入:

  • host:MySQL主机地址
  • port:MySQL服务端口
  • database:数据库名称
  • username:用户名称
  • password:用户密码
  • table:数据表名称

4.4 PostgreSQLConnector

PostgreSQL Connector

PostgreSQLConnector以PostgreSQL数据库表作为数据源。

输入:

  • host:PostgreSQL主机地址
  • port:PostgreSQL服务端口
  • database:数据库名称
  • username:用户名称
  • password:用户密码
  • table:数据表名称

5、LLM大模型自定义节点

5.1 BambooLLM

bamboo llm node

BambooLLM 主要针对数据分析。它旨在理解和执行与数据分析、数据处理和数据可视化相关的自然语言查询。 可以在这里注册以获取免费 API 密钥。

输入:

  • api_key:API密钥

输出:

  • llm:LLM对象。

5.2 OpenAI

openai llm node

为了使用 OpenAI 模型,你需要一个 OpenAI API 密钥。可以在 此处获取一个。

输入:

  • api_key:API KEY
  • model:使用的大模型,默认:gpt-4

输出:

  • llm:LLM对象

5.3 GooglePalm

google palm node

为了使用 Google PaLM 模型,你需要拥有 Google Cloud API 密钥。可以在此处获取一个。

输入:

  • api_key: API密钥

输出:

  • llm:LLM对象

5.4 GoogleVertexAI

google vertexai node

为了通过 Vertexai api 使用 Google PaLM 模型,需要先创建Google Cloud 项目、设置项目区域并完成gcloud身份验证。

输入:

  • project_id:项目编号
  • location:区域
  • model:使用的模型名称

输出:

  • llm:LLM对象

5.5 AzureOpenAI

azure openai llm node

为了使用 Azure OpenAI 模型,需要拥有 Azure OpenAI API 密钥以及 Azure OpenAI 端点。可以在 此处获取。

要实例化 Azure OpenAI 对象,您还需要指定在 Azure 上部署的模型的名称和 API 版本:

输入:

  • api_token: API密钥
  • azure_endpoint:访问端点
  • api_version:api版本
  • deployment_name:部署的名称

输出:

  • llm:LLM对象

5.6 HuggingFaceTextGen

huggingface textgen llm node

为了通过文本生成使用 HuggingFace 模型,需要首先提供一个受支持的大型语言模型 (LLM)。 阅读文本生成文档以了解有关如何设置推理服务器的更多信息。

例如,这可用于使用 LLaMa2、CodeLLaMa 等模型。可以在此处找到有关文本生成的更多信息。

输入:

  • inference_server_url:推理服务器url

输出:

  • llm:LLM对象

5.7 CustomLLM

Custom llm node

CustomLLM节点用来加载自定义模型,可以是本地模型,如Ollama或LM Studio托管的模型,也可以是云端模型,例如Groq托管的模型, 只要提供OpenAI兼容的API即可。

输入:

  • api_base:API基地址,需要与OpenAI兼容
  • api_key:API密钥,云平台托管的模型服务,通常需要设置这个密钥
  • model:模型名称

输出:

  • llm:LLM对象

原文链接:ComfyUI-PandasAI节点包

汇智网编辑整理,转载请标明出处

Tags