拥抱 AI ,轻松完成简单的数据分析

223 阅读4分钟

引言

随着人工智能的快速发展,特别是大模型(LLM)的普及,编程数据分析的方式正在经历一场深刻的变革。传统的编程范式正逐渐被低代码、AI驱动的解决方案所取代,大模型的发展也让开发者具备更多的能力,今天我们就用 AI 来进行数据分析,感受大模型的力量。

AI 数据分析

如何用 AI 去做简单的数据分析呢?

初始化 node 项目

首先我们来初始化一个 node 后端项目,安装 openai 包;

npm init -y    // 初始化 node 项目
npm i openai    // 安装 openai 包

CommonJS

在 JavaScript 的早期发展阶段,由于需求较为简单,模块化的概念并未广泛应用。随着 Web 应用的复杂性增加,模块化变得不可或缺。尤其是在 Node.js 后端开发中。因此,CommonJS 标准应运而生,通过 requiremodule.exports 来实现模块化

ES6 Module 模块化

随着 ES6 的推出,JavaScript 引入了原生的模块化支持,提供了 importexport 关键字,使得模块化变得更加直观和易用,ES6 Module 模块化成为了现代前端开发的主流

创建单点入口文件 main.mjs

然后,我们建立单点入口文件 main.mjsmjs 使用的模块化方案为 ES6 的 Module,通过 import 和 export 关键字来导入和导出模块

// main.mjs 代替 main.js 成为主入口
// mjs 使用的模块化方案为es6 Module
import OpenAI from "openai";
import {getSaleReport} from './common.mjs'

const client = new OpenAI({
    apiKey: xxxxxxxxxxxxxxxxxx,
    // gptsapi 会帮我们做openai的请求转发
    baseURL: 'https://api.302.ai/v1'
})
// python csv 格式·数据分析
// ,隔开
const saleData = `
    销售数据:
    日期,产品,销量,单价,总收入
    2023-01-01,iPhone 13,100,6000,600000
    2023-01-01,iPhone 14,50,8000,400000
    2023-01-02,iPhone 13,80,6000,480000
    2023-01-02,iPhone 14,60,8000,480000
    2023-01-03,iPhone 13,120,5800,696000
    2023-01-03,iPhone 14,80,7800,624000
`
// getSaleReport 功能封装

// const res = await getSaleReport(client, saleData, "根据上述销售数据,计算iPhone 13和iPhone 14的总销量各是多少")
// console.log(res);

const res = await getSaleReport(client, saleData, "根据上述销售数据,哪个产品的总收入更高,高多少?")
console.log(res);

await 异步任务

调用 AI 大模型进行数据分析是异步任务,因为我们要用 await 去等待这个异步任务的完成

image.png

数据分析功能函数的封装

为了方便代码的维护和管理,我们可以把功能函数进行封装,再通过 ES6 的模块化进行导入引用;

getSaleReport

/**
 * @func 销售数据分析
 * @desc 根据提供的数据和查询问题,生成销售数据的分析报告
 * @param {Object} client - OpenAI 客户端对象
 * @param {string} data - 销售数据的 CSV 格式字符串
 * @param {string} query - 用户提出的问题,需要根据销售数据分析回答
 * @returns {Promise<string>} - 分析报告的文本结果
 */
export const getSaleReport = async (client, data, query) => {
    const prompt = `
    You are a professional data analyst.
    Here is the sale data \n ${data} \n \n
    Please generate a report to answer
    the following question:\n
    ${query}
    `;
    // openai 的接口很简单
    // AIGC -> AGI  OPENAI 生成(完成)
    let response = await client.completions.create({
        model: 'gpt-3.5-turbo-instruct',
        prompt,
        // LLM 的自由度  数据分析  严格
        temperature: 0,
        n: 1, // 返回的结果数
        // 控制花销的  openai 账单  靠token
        max_tokens: 1000,
    })

    return response.choices[0].text;
}

AI编程新范式

AI编程新范式中,Prompt工程逐渐成为数据分析的核心工具。Prompt工程是一种新兴的技术范式,它通过设计特定的提示语(Prompt),引导AI模型生成所需的输出。通过为AI模型提供明确的角色指引(如设定AI为数据分析师角色),并输入需要分析的数据和具体的查询需求AI可以快速生成分析结果。这种方法不仅加快了数据分析的速度,还降低了人工参与的复杂度,使得更多非技术背景的人也能参与到数据分析中。

小结

为什么前端要学习AI?AI正在以惊人的速度颠覆各个行业,它不仅仅是一项工具,更是一种全新的工作方式。对于开发者来说,拥抱AI意味着能够更快速地解决复杂的问题,并保持在技术前沿。在AI方法论的指导下,开发者可以更容易上手各种技术任务,从数据分析到自动化工作流,再到智能应用的开发。所以,拥抱AI是顺应时代发展的必然选择,也是未来成功的关键。