如何在项目使用GPT4o强大的数据分析能力,一个demo直接秒

1,256 阅读6分钟

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文件

image.png

.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去进行数据分析了

可以看到,当我执行代码以后,就出现了准确的数据分析结果

image.png

完整结果为:

根据上述销售数据,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, "根据上述销售数据,哪个产品的总收入高?高多少")
);