likes
comments
collection
share

一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

作者站长头像
站长
· 阅读数 39

一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

“您好,想问问你们卖的这商品是什么啊?”

“您好亲亲,我们卖的是最新款手机壳!”

“不是,我是想问你们卖的这都是什么啊???这么难看。”

一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

本文!重磅!教大家不花一分钱学会用豆包MarsCode 搭建「商品评论情感分析机器人」!快速了解消费者对商品的真实看法和情感倾向。

自 Node.js 推出,JavaScript 跃升为一门全栈开发语言。开发者可以用同一种语言构建完整的 Web 应用,从后端服务到用户界面,甚至最新的 AI 应用,JavaScript 都能胜任。今天就让我们一起学习基于 JavaScript 开发的「商品评论情感分析机器人」

工欲善其事 必先利其器

一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

申请免费的豆包 API

基于大模型的应用必然需要访问大模型的 API 服务,虽然当前 OpenAI 的 API 越来越难以获取,但令人惊喜的是,国内各大厂的模型能力已逐步提升至相对成熟的水平,而且还均拥有免费的使用额度!比如豆包大模型,每个规格的模型都有 50 万免费 tokens 的额度,接口使用方式也与 OpenAI 完全相同!

在火山方舟( console.volcengine.com/ark )中注册账号,创建 API Key 并将想用的模型部署为在线服务,平台就可以直接为我们提供模型的调用代码。

一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

免费调用额度

一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

添加API Key

一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

将模型部署为推理服务

配置本地环境

火山方舟平台为我们提供了模型调用代码,但想跑起来这段代码还需要先在本地配置好 Node.js 环境。

根据火山方舟上的指引,我们还需要手动安装 OpenAI 软件包,在终端中执行npm install openai 之后就完成了本地环境的配置。

一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

在本地跑通模型调用代码

选择一个适合的本地路径执行 npm init 即可交互式地进行项目初始化,命令行会提示我们输入一些关于项目的元数据信息,如项目名称、版本、描述等。我们可以根据需要填写这些信息,或直接按「回车键」接受默认值。

询问豆包MarsCode AI 助手可以了解更多初始化项目的详细步骤。

一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

将火山方舟平台提供的代码复制到本地开发环境内,我们可以在豆包MarsCode 中针对不理解的代码向 AI 助手进行提问,例如示例代码中的 apiKey 需要从环境变量中获取,我们可以询问跟 JS 语法相关的知识,也可以询问在不同操作系统中配置环境变量的方法。

一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

按照指引,在环境变量中配置 ARK_API_KEY 之后,我们就可以尝试执行测试代码。

竟然遇到报错了!命令行中给了我们一些提示,在 package.json 中添加"type": "module"  。

一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

我们可以向豆包MarsCode AI 助手询问错误原因,它会给我们更具体的解决方案,我们也能根据 AI 助手的回复了解 JS 的执行原理。

一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

修改代码之后再次执行就能成功获取豆包模型返回的结果了。

一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

开发情感分析相关代码

要与豆包 API 对话,则需要在消息数组中提供一个或多个消息,示例代码中涉及到了 system 和 user 两种角色,这时我们可以向 AI 助手询问:“system 和 user 有什么区别”。

一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

若想开发情感分析的应用,通过提示词工程的方式即可实现,在 system prompt 中填写如“你是一个用户评论情感分析专家”的身份描述,在用户提示中可以填写少量的示例,这些示例能够向人工智能展示您期望交互以何种方式展开,从而指导人工智能对类似的提示做出响应。

如果想把用户输入动态注入到 prompt 中则需要用到模板字符串,相关的语法知识也可以从跟 AI 的对话中获得。

一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

具体的代码如下所示:

let few_shot_prompt = `
      以下为几个评论判断实例,请依据示例对新输入内容的情感态度进行判断
      评论:我非常喜欢这个产品,它非常实用。
      情感:正面。
      评论:这个产品非常糟糕,我无法使用它。
      情感:负面。
    `;
let message = [
  {
    role: "system",
    content:
      "你是一个用户评论情感分析专家,请根据用户的评论判断评论的情感是正面还是负面并直接输出,不输出其他内容。",
  },
  {
    role: "user",
    content: `${few_shot_prompt}\n 评论:${comment}\n 情感:\n`,
  },
];

使用上述代码替换掉示例代码中的 messages 就能够进行用户评论的情感判断了,只要在代码中把用户评论赋值给 comment 就能对其情感状态进行判断。 需求当然不止这么简单。我们希望能从命令行中获得用户的评论数据并传给豆包。有了豆包MarsCode AI 之后,仅需 10 秒钟就能完成代码改造!如下图所示,只要我能把需求准确的描述给 AI 助手,他就能很快地把代码提供给我,直接执行也没有问题。一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

更进一步,倘若我们期望程序可以反复处理用户输入,而非仅调用一次便退出程序,同样能将此需求告知 AI 助手,它会给出满足需求的新代码,从而最终打造出能够多次处理产品评论情感态度的小应用。 

一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc一文教会你!用豆包MarsCode 开发「评论情感分析机器人」零成本开发!使用豆包MarsCode开发基于 JavaSc

完整代码呈现

import OpenAI from "openai";
import readline from "readline";

const openai = new OpenAI({
  apiKey: process.env.ARK_API_KEY,
  baseURL: "https://ark.cn-beijing.volces.com/api/v3",
});

async function main() {

  let few_shot_prompt = `
    以下为几个评论判断实例,请依据示例对新输入内容的情感态度进行判断
    评论:我非常喜欢这个产品,它非常实用。
    情感:正面。
    评论:这个产品非常糟糕,我无法使用它。
    情感:负面。
  `;

  const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
  });

  function askQuestion() {
    rl.question("请输入你的评论(或输入 '退出' 结束程序):", async (answer) => {
      if (answer.toLowerCase() === '退出') {
        rl.close();
        return;
      }

      let message = [
        {
          role: "system",
          content:
            "你是一个用户评论情感分析专家,请根据用户的评论判断评论的情感是正面还是负面并直接输出,不输出其他内容。",
        },
        {
          role: "user",
          content: `${few_shot_prompt}\n 评论:${answer}\n 情感:\n`,
        },
      ];

      try {
        const completion = await openai.chat.completions.create({
          messages: message,
          model: "ep-20240809163655-bp86r",
        });

        console.log(completion.choices[0]?.message?.content);
      } catch (error) {
        console.error("发生错误:", error);
      }

      // 继续询问
      askQuestion();
    });
  }

  askQuestion();
}

main();
转载自:https://juejin.cn/post/7405774566566133823
评论
请登录