App下載

一文教會你!用豆包MarsCode開發(fā)「評論情感分析機器人」

來源: 豆包MarsCode 2024-12-23 15:43:00 瀏覽數(shù) (226)
反饋

“您好,想問問你們賣的這商品是什么?。俊?“您好親親,我們賣的是最新款手機殼!”
“不是,我是想問你們賣的這都是什么?。???這么難看?!?/code>

本文!重磅!教大家不花一分錢學(xué)會用豆包MarsCode 搭建「商品評論情感分析機器人」!快速了解消費者對商品的真實看法和情感傾向。

Node.js 推出,JavaScript 躍升為一門全棧開發(fā)語言。開發(fā)者可以用同一種語言構(gòu)建完整的 Web 應(yīng)用,從后端服務(wù)到用戶界面,甚至最新的 AI 應(yīng)用,JavaScript 都能勝任。今天就讓我們一起學(xué)習(xí)基于 JavaScript 開發(fā)的「商品評論情感分析機器人」!

工欲善其事 必先利其器

擁有一個熟悉的開發(fā)環(huán)境至關(guān)重要。于我個人而言,平日里最為青睞的當(dāng)屬 VSCode 這款輕量級代碼編輯器,它頁面簡潔,安裝過程便捷,能夠同時兼容 Windows 和 Mac 系統(tǒng)。并且在 VSCode 中存有眾多實用插件可供安裝,比如豆包MarsCode(官方下載地址:https://www.marscode.cn/?utm_source=advertising&utm_medium=w3cschool.cn_ug_cpa&utm_term=hw_marscode_bcs&utm_content=home )。 豆包MarsCode安裝教程:http://hgci.cn/marscode/marscode-quickstart.html

豆包MarsCode下載地址

豆包MarsCode 具備智能代碼生成功能,能猜測到我想要寫的代碼并主動提示,還能根據(jù)我的需求生成代碼,幫我剖析 bug 產(chǎn)生的原因,讓工作效率翻倍。

對于不想配置環(huán)境的小伙伴們,還可以使用免費的豆包MarsCode IDE,開箱即用的 Node.js 環(huán)境很適合新手小白。

豆包MarsCode IDE界面

申請免費的豆包 API

基于大模型的應(yīng)用必然需要訪問大模型的 API 服務(wù),雖然當(dāng)前 OpenAI 的 API 越來越難以獲取,但令人驚喜的是,國內(nèi)各大廠的模型能力已逐步提升至相對成熟的水平,而且還均擁有免費的使用額度!比如豆包大模型,每個規(guī)格的模型都有 50 萬免費 tokens 的額度,接口使用方式也與 OpenAI 完全相同! 在火山方舟中注冊賬號,創(chuàng)建 API Key 并將想用的模型部署為在線服務(wù),平臺就可以直接為我們提供模型的調(diào)用代碼。

火山方舟免費調(diào)用額度 免費調(diào)用額度

火山方舟添加API Key 添加API Key

火山方舟將模型部署為推理服務(wù)

配置本地環(huán)境

火山方舟平臺為我們提供了模型調(diào)用代碼,但想跑起來這段代碼還需要先在本地配置好 Node.js 環(huán)境。

我們可以在豆包MarsCode 中直接詢問 AI 助手:“ Mac 電腦如何安裝 Node.js 環(huán)境”,按照 AI 助手給我們的指示選擇一種方式安裝,在終端中執(zhí)行 node -vnpm -v,如果能夠正常輸出版本號,則說明我們成功安裝了 Node.js。

根據(jù)火山方舟上的指引,我們還需要手動安裝 OpenAI 軟件包,在終端中執(zhí)行 npm install openai 之后就完成了本地環(huán)境的配置。

安裝OpenAI

在本地跑通模型調(diào)用代碼

選擇一個適合的本地路徑執(zhí)行 npm init 即可交互式地進行項目初始化,命令行會提示我們輸入一些關(guān)于項目的元數(shù)據(jù)信息,如項目名稱版本、描述等。我們可以根據(jù)需要填寫這些信息,或直接按「回車鍵」接受默認值。

詢問豆包MarsCode AI 助手可以了解更多初始化項目的詳細步驟。

豆包MarsCode ai編程助手

將火山方舟平臺提供的代碼復(fù)制到本地開發(fā)環(huán)境內(nèi),我們可以在豆包MarsCode 中針對不理解的代碼向 AI 助手進行提問,例如示例代碼中的 apiKey 需要從環(huán)境變量中獲取,我們可以詢問跟 JS 語法相關(guān)的知識,也可以詢問在不同操作系統(tǒng)中配置環(huán)境變量的方法。

MarsCode配置

按照指引,在環(huán)境變量中配置 ARK_API_KEY 之后,我們就可以嘗試執(zhí)行測試代碼。

竟然遇到報錯了!命令行中給了我們一些提示,在 package.json 中添加"type": "module" 。

MarsCode環(huán)境變量配置

我們可以向豆包MarsCode AI 助手詢問錯誤原因,它會給我們更具體的解決方案,我們也能根據(jù) AI 助手的回復(fù)了解 JS 的執(zhí)行原理。

向豆包MarsCode AI 助手詢問錯誤原因

修改代碼之后再次執(zhí)行就能成功獲取豆包模型返回的結(jié)果了。

豆包模型返回的結(jié)果

開發(fā)情感分析相關(guān)代碼

要與豆包 API 對話,則需要在消息數(shù)組中提供一個或多個消息,示例代碼中涉及到了 systemuser 兩種角色,這時我們可以向 AI 助手詢問:“system 和 user 有什么區(qū)別”。

“system 和 user 有什么區(qū)別”

若想開發(fā)情感分析的應(yīng)用,通過提示詞工程的方式即可實現(xiàn),在 system prompt 中填寫如“你是一個用戶評論情感分析專家”的身份描述,在用戶提示中可以填寫少量的示例,這些示例能夠向人工智能展示您期望交互以何種方式展開,從而指導(dǎo)人工智能對類似的提示做出響應(yīng)。

如果想把用戶輸入動態(tài)注入到 prompt 中則需要用到模板字符串,相關(guān)的語法知識也可以從跟 AI 的對話中獲得。

MarsCode 編程助手AI對話

具體的代碼如下所示:

let few_shot_prompt = `
      以下為幾個評論判斷實例,請依據(jù)示例對新輸入內(nèi)容的情感態(tài)度進行判斷
      評論:我非常喜歡這個產(chǎn)品,它非常實用。
      情感:正面。
      評論:這個產(chǎn)品非常糟糕,我無法使用它。
      情感:負面。
    `;
let message = [
  {
    role: "system",
    content:
      "你是一個用戶評論情感分析專家,請根據(jù)用戶的評論判斷評論的情感是正面還是負面并直接輸出,不輸出其他內(nèi)容。",
  },
  {
    role: "user",
    content: `${few_shot_prompt}\n 評論:${comment}\n 情感:\n`,
  },
];

使用上述代碼替換掉示例代碼中的 messages 就能夠進行用戶評論的情感判斷了,只要在代碼中把用戶評論賦值給 comment 就能對其情感狀態(tài)進行判斷。

需求當(dāng)然不止這么簡單。我們希望能從命令行中獲得用戶的評論數(shù)據(jù)并傳給豆包。有了豆包MarsCode AI 之后,僅需 10 秒鐘就能完成代碼改造!如下圖所示,只要我能把需求準確的描述給 AI 助手,他就能很快地把代碼提供給我,直接執(zhí)行也沒有問題。

MarsCode AI MarsCode AI2

更進一步,倘若我們期望程序可以反復(fù)處理用戶輸入,而非僅調(diào)用一次便退出程序,同樣能將此需求告知 AI 助手,它會給出滿足需求的新代碼,從而最終打造出能夠多次處理產(chǎn)品評論情感態(tài)度的小應(yīng)用。

AI 助手

AI助手2

完整代碼呈現(xiàn)

在豆包MarsCode 的幫助下,即便是從未涉足過 JavaScript 應(yīng)用開發(fā)領(lǐng)域的新手,也可以開發(fā)出實用的 AI 工具。豆包MarsCode 的 AI 問答、錯誤修復(fù)以及代碼補全等功能,在開發(fā)過程中都能提供非常實用的幫助。完整的代碼如下:



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 = `
    以下為幾個評論判斷實例,請依據(jù)示例對新輸入內(nèi)容的情感態(tài)度進行判斷
    評論:我非常喜歡這個產(chǎn)品,它非常實用。
    情感:正面。
    評論:這個產(chǎn)品非常糟糕,我無法使用它。
    情感:負面。
  `;


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


  function askQuestion() {
    rl.question("請輸入你的評論(或輸入 '退出' 結(jié)束程序):", async (answer) => {
      if (answer.toLowerCase() === '退出') {
        rl.close();
        return;
      }


      let message = [
        {
          role: "system",
          content:
            "你是一個用戶評論情感分析專家,請根據(jù)用戶的評論判斷評論的情感是正面還是負面并直接輸出,不輸出其他內(nèi)容。",
        },
        {
          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("發(fā)生錯誤:", error);
      }


      // 繼續(xù)詢問
      askQuestion();
    });
  }


  askQuestion();
}


main();

無需一分錢開發(fā)評論情感分析機器人,感興趣的大家點擊「豆包MarsCode」即可跳轉(zhuǎn)豆包MarsCode 嘗試開發(fā)哦!

1 人點贊