AI前景
关注AI的小伙伴都知道,AI技术在最近取得了显著的进展和发展,不仅在技术上不断创新,还在应用场景和政策支持方面得到了拓展和强化。未来,随着技术的不断进步和应用场景的不断拓展,AI将会为更多领域带来更多的变革和价值。2024年作为我们的ai元年,你不跟随大部队的步伐,抓紧学起来吗?
开始分析
话不多说,我们直接开始吧。首先,你需要把openai的包导入,如果你不记得,这里有AIGC学习分享(二):openAI(API接口)它来了! - 掘金 (juejin.cn)。
还是老样子,先创建你的项目文件, 在终端输入: npm init -y 进行项目初始化
- npm 是node 的 package management 包管理器
- init 初始化 -y 快速访问
我们会发现该文件下多了一个package-json
然后再输入:npm i openai
- 这个就是chatgpt AIGC包
- i 是 install的简写
- openai 第三方的AI模块
- 下载到本地的node_modules 目录下
在项目文件内创建main.mjs 代替main.js称为主入口。
而mjs是JavaScript内es6的特性,.mjs 文件后缀通常指的是使用 ECMAScript 模块(ES 模块)语法编写的 JavaScript 源代码文件。
这种文件格式在 Node.js 环境中特别常见,用来区分那些使用 ES6 模块导入 (import) 和导出 (export) 语句的文件,与传统的 .js 文件形成对比,后者默认使用 CommonJS 规范,其中模块导入和导出分别通过 require() 和 module.exports 实现。
module模块化它是一个复杂程序的构成部分,函数、类、都可以放在一个独立文件内,调用他们一起工作,使用module。
我们在文件内使用import,从openai的库内导入一个名为OpenAI的软件开发包,
然后用es6的字符串模板写入csv 格式数据,其数据是由逗号隔开,
import OpenAI from "openai"
import {add, getSaleReport} from './common.mjs'
const client = new OpenAI({
apiKey:'your apiKey',
baseURL:'https://api.302.ai/v1'
})
const saleData = `
销售数据:
日期,产品,销量,单价,总收入
2023-01-01,iphone 13,100,6000,600000
2023-01-01,iphone 14,50,8000,400000
2023-01-02,iphone 13,80,8000,640000
2023-01-02,iphone 14,60,8000,480000
2023-01-03,iphone 13,120,5800,696000
2023-01-03,iphone 14,80,7800,624000
`
// const res = await getSaleReport(saleData,
// "根据上述销售数据计算iPhone 13和iPhone 14的总销量各是多少");
// console.log(res);
const res = await getSaleReport(client,saleData,"根据上述销售数据,哪个产品的收入更高,高多少?")
console.log(res)
然后,我们再将getSaleReport方法进行封装,把他放到另外一个文件内,主要还是使用module模块化将方法放在一个common.mjs文件下,让他们一起工作。
在前面我们导入这个文件的函数,最后别忘了在这个文件内,给这些方法加上export导出哦,毕竟export和import是一对,你怎能忍心将其拆散!
/**
* @func 销售数据分析
* @param {*} saleData
* @param {*} query 问题
* @returns 数据分析的结果
* @author llj 2024-6-21
*/
export const getSaleReport = async (client,saleData,query)=>{
const prompt = `
You are a professional data analyst.
Here is the sale data \n${saleData} \n \n
Please generate a report to answer the following question:\n
${query}
`;
let response = await client.completions.create({
model: 'gpt-3.5-turbo-instruct',
prompt,
temperature: 0, // llm的自由度 数据分析 须严格
n: 1, // 只生成一次
// 控制花销的 openai 账单 靠token
max_tokens: 1000,
})
console.log(response.choices)
return response.choices[0].text;
}
在封装的函数内,需要写一个固定的promp,也可以不固定,按需求给定prompt,指明它是一个数据分析专家,通过给出的数据,需要做出怎样的分析等等。
其实openai的接口很简单 主要是通过大模型的model,他有不同的模型,适应不同的场景,gpt-3.5-turbo-instruct 是由 OpenAI 提供的一个模型变体,它是基于 GPT-3.5 Turbo 架构的,在这种特定的场景下,或许更合适做一点数据分析。
最后我们也是得到了大模型分析的结果。是不是觉得很神奇呢?下次我将使用aigc进行一个实战小训练哦,敬请期待吧!