一文教会你!用豆包MarsCode 开发「评论情感分析机器人」

火山方舟大模型关系型数据库

picture.image

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

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

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

picture.image

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

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

工欲善其事 必先利其器

拥有一个熟悉的开发环境至关重要。于我个人而言,平日里最为青睐的当属 VSCode 这款轻量级代码编辑器,它页面简洁,安装过程便捷,能够同时兼容 Windows 和 Mac 系统。并且在 VSCode 中存有众多实用插件可供安装,比如豆包MarsCode(https://sourl.cn/K2pSWe)。

picture.image

豆包MarsCode 具备智能代码生成功能,能猜测到我想要写的代码并主动提示,还能根据我的需求生成代码,帮我剖析 bug 产生的原因,让工作效率翻倍。

对于不想配置环境的小伙伴们,还可以使用免费的豆包MarsCode IDE(https://sourl.cn/K2pSWe),开箱即用的 Node.js 环境很适合新手小白。

picture.image

申请免费的豆包 API

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

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

picture.image

免费调用额度

picture.image

添加API Key

picture.image

将模型部署为推理服务

配置本地环境

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

我们可以在豆包MarsCode 中直接询问 AI 助手:“ Mac 电脑如何安装 Node.js 环境”,按照 AI 助手给我们的指示选择一种方式安装,在终端中执行 node -v 和 npm -v,如果能够正常输出版本号,则说明我们成功安装了 Node.js。

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

picture.image

在本地跑通模型调用代码

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

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

picture.image

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

picture.image

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

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

picture.image

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

picture.image

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

picture.image

开发情感分析相关代码

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

picture.image

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

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

picture.image

具体的代码如下所示:


            
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 助手,他就能很快地把代码提供给我,直接执行也没有问题。

picture.image

picture.image

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

picture.image

picture.image

完整代码呈现

在豆包MarsCode 的帮助下,即便是从未涉足过 JavaScript 应用开发领域的新手,也可以开发出实用的 AI 工具。豆包MarsCode 的 AI 问答、错误修复以及代码补全等功能,在开发过程中都能提供非常实用的帮助。完整的代码如下:


            
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();
            

        

无需一分钱开发评论情感分析机器人,感兴趣的大家点击「阅读原文」即可跳转豆包MarsCode 尝试开发哦!

往期精选

picture.image

猴急!送《黑神话:悟空》啦

picture.image

注意看,这届年轻人用豆包MarsCode 做暑期作业。

picture.image

如果我们的内容对您有帮助的话,

欢迎您点赞转发在看 哦⬇

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论