GPT4o
GPT-4o 是 OpenAI 于 2024 年 5 月 14 日推出的一款新的旗舰模型。其中的“o”代表“omni”,意为“全能”
GPT-4o 能够在音频、视觉和文本之间实时进行推理,可以接受文本、音频和图像的任意组合作为输入,并输出同样多样化的组合。它响应音频输入的速度极快,最短可达 232 毫秒,平均响应时间为 320 毫秒,与人类在对话中的反应速度相当
本demo使用的openai_key以及openai_url需要自行准备,如有不懂欢迎提问哦~
项目结合GPT4o
接下来,我将用一个小demo,带你去使用GPT4o,体验它强大的数据分析能力
首先我们初始化一个项目,在你需要创建项目的目录
npm init -y
接下来,我们的项目需要结合GPT4o,自然少不了openai的依赖
- 安装openai依赖以及key管理工具dotenv
npm i openai
npm i dotenv
- 创建一个.env文件和一个main.mjs文件
.env文件用于管理我们的重要信息,如OPENAI_KEY等重要信息
- 获取到.env文件中的信息,并创建openai服务
// 加载文件
dotenv.config({
path: ".env",
});
// 创建openai服务
const client = new OpenAI({
apiKey: process.env.OPENAI_KEY,
baseURL: process.env.BASE_URL,
});
- 创建一个函数用于发送请求获取响应(以分析销售数据为例)
const genSaleReport = async (data, query) => {
const prompt = `
You are an AI assistant that generates sales report
base on the given data.
Here is the sale data:\n
${data}\n\n
Please generate a report to answer the following question:\n
${query}
`;
let response = await client.chat.completions.create({
model: "gpt-4o",
temperature: 0.0,
messages: [
{
role: "user",
content: prompt,
},
],
});
return response.choices[0].message.content;
};
函数内部构建了一个提示字符串 prompt ,其中包含了对数据和查询的描述,并将这个提示发送给 gpt-4o 模型进行处理。通过 client.chat.completions.create 方法向模型发送请求,并获取返回的响应。最后,函数返回响应中第一个选择的消息内容
- 接下来我们就只需要创建一个销售数据以及提问,调用
genSaleReport就可以实现数据分析的能力了
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
`;
console.log(
await genSaleReport(
saleData,
"根据上述销售数据,计算iphone 13和iphone 14的总销量各是多少?"
)
);
console.log(
await genSaleReport(
saleData,
"根据上述销售数据,计算iphone 13和iphone 14的总收入分别是多少?"
)
);
console.log(
await genSaleReport(
saleData,
"根据上述销售数据,哪个产品的总收入高?高多少")
);
这样就实现了通过GPT4o去进行数据分析了
可以看到,当我执行代码以后,就出现了准确的数据分析结果
完整结果为:
根据上述销售数据,iPhone 13 和 iPhone 14 的总销量如下:
1. iPhone 13 的总销量:
- 2023-01-01: 100台
- 2023-01-02: 80台
- 2023-01-03: 120台
总销量 = 100 + 80 + 120 = 300台
2. iPhone 14 的总销量:
- 2023-01-01: 50台
- 2023-01-02: 60台
- 2023-01-03: 80台
总销量 = 50 + 60 + 80 = 190台
总结:
- iPhone 13 的总销量是 300 台。
- iPhone 14 的总销量是 190 台。
根据给定的销售数据,计算iPhone 13和iPhone 14的总收入如下:
### iPhone 13 总收入计算:
1. 2023-01-01: 600,000 元
2. 2023-01-02: 480,000 元
3. 2023-01-03: 696,000 元
**iPhone 13 总收入** = 600,000 + 480,000 + 696,000 = 1,776,000 元
### iPhone 14 总收入计算:
1. 2023-01-01: 400,000 元
2. 2023-01-02: 480,000 元
3. 2023-01-03: 624,000 元
**iPhone 14 总收入** = 400,000 + 480,000 + 624,000 = 1,504,000 元
### 总结:
- **iPhone 13 总收入**: 1,776,000 元
- **iPhone 14 总收入**: 1,504,000 元
根据上述销售数据,我们先计算iPhone 13和iPhone 14的总收入,然后比较它们的总收入,确定哪个产品的总收入较高以及高多少。
以下是每个产品的销售总收入计算过程:
**iPhone 13:**
1. 2023-01-01: 600,000元
2. 2023-01-02: 480,000元
3. 2023-01-03: 696,000元
**总收入(iPhone 13)** = 600,000 + 480,000 + 696,000 = 1,776,000元
**iPhone 14:**
1. 2023-01-01: 400,000元
2. 2023-01-02: 480,000元
3. 2023-01-03: 624,000元
**总收入(iPhone 14)** = 400,000 + 480,000 + 624,000 = 1,504,000元
**比较总收入:**
iPhone 13 的总收入 = 1,776,000元
iPhone 14 的总收入 = 1,504,000元
**结果:**
iPhone 13 的总收入高。比iPhone 14 的总收入高额 = 1,776,000 - 1,504,000 = 272,000元
**结论:**
根据上述销售数据,iPhone 13 的总收入较高,比 iPhone 14的总收入高272,000元。
结论
从这里我们就可以看出,项目结合AI可是使得项目的功能更加的强大,相信看到这里的你一定会有所收获的!赶紧动手试试吧!!
完整代码
// require commonJS node 默认模块化系统
// es6 module
import OpenAI from "openai";
import dotenv from "dotenv";
dotenv.config({
path: ".env",
});
const client = new OpenAI({
apiKey: process.env.OPENAI_KEY,
baseURL: process.env.BASE_URL,
});
// console.log(process.env.OPENAI_KEY, process.env.BASE_URL);
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
`;
const genSaleReport = async (data, query) => {
const prompt = `
You are an AI assistant that generates sales report
base on the given data.
Here is the sale data:\n
${data}\n\n
Please generate a report to answer the following question:\n
${query}
`;
let response = await client.chat.completions.create({
model: "gpt-4o",
temperature: 0.0,
messages: [
{
role: "user",
content: prompt,
},
],
});
return response.choices[0].message.content;
};
console.log(
await genSaleReport(
saleData,
"根据上述销售数据,计算iphone 13和iphone 14的总销量各是多少?"
)
);
console.log(
await genSaleReport(
saleData,
"根据上述销售数据,计算iphone 13和iphone 14的总收入分别是多少?"
)
);
console.log(
await genSaleReport(saleData, "根据上述销售数据,哪个产品的总收入高?高多少")
);