引言
随着人工智能的快速发展,特别是大模型(LLM)的普及,编程和数据分析的方式正在经历一场深刻的变革。传统的编程范式正逐渐被低代码、AI驱动的解决方案所取代,大模型的发展也让开发者具备更多的能力,今天我们就用 AI 来进行数据分析,感受大模型的力量。
AI 数据分析
如何用 AI 去做简单的数据分析呢?
初始化 node 项目
首先我们来初始化一个 node 后端项目,安装 openai 包;
npm init -y // 初始化 node 项目
npm i openai // 安装 openai 包
CommonJS
在 JavaScript 的早期发展阶段,由于需求较为简单,模块化的概念并未广泛应用。随着 Web 应用的复杂性增加,模块化变得不可或缺。尤其是在 Node.js 后端开发中。因此,CommonJS 标准应运而生,通过 require 和 module.exports 来实现模块化。
ES6 Module 模块化
随着 ES6 的推出,JavaScript 引入了原生的模块化支持,提供了 import 和 export 关键字,使得模块化变得更加直观和易用,ES6 Module 模块化成为了现代前端开发的主流。
创建单点入口文件 main.mjs
然后,我们建立单点入口文件 main.mjs,mjs 使用的模块化方案为 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 去等待这个异步任务的完成。
数据分析功能函数的封装
为了方便代码的维护和管理,我们可以把功能函数进行封装,再通过 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是顺应时代发展的必然选择,也是未来成功的关键。