“您好,想問問你們賣的這商品是什么啊?”
“您好親親,我們賣的是最新款手機殼!”
“不是,我是想問你們賣的這都是什么啊???這么難看?!?/code>
本文!重磅!教大家不花一分錢學會用豆包MarsCode 搭建「商品評論情感分析機器人」!快速了解消費者對商品的真實看法和情感傾向。
自 Node.js 推出,JavaScript 躍升為一門全棧開發(fā)語言。開發(fā)者可以用同一種語言構建完整的 Web 應用,從后端服務到用戶界面,甚至最新的 AI 應用,JavaScript 都能勝任。今天就讓我們一起學習基于 JavaScript 開發(fā)的「商品評論情感分析機器人」!
工欲善其事 必先利其器
擁有一個熟悉的開發(fā)環(huán)境至關重要。于我個人而言,平日里最為青睞的當屬 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://o2fo.com/marscode/marscode-quickstart.html
豆包MarsCode 具備智能代碼生成功能,能猜測到我想要寫的代碼并主動提示,還能根據我的需求生成代碼,幫我剖析 bug 產生的原因,讓工作效率翻倍。
對于不想配置環(huán)境的小伙伴們,還可以使用免費的豆包MarsCode IDE,開箱即用的 Node.js 環(huán)境很適合新手小白。
申請免費的豆包 API
基于大模型的應用必然需要訪問大模型的 API 服務,雖然當前 OpenAI 的 API 越來越難以獲取,但令人驚喜的是,國內各大廠的模型能力已逐步提升至相對成熟的水平,而且還均擁有免費的使用額度!比如豆包大模型,每個規(guī)格的模型都有 50 萬免費 tokens 的額度,接口使用方式也與 OpenAI 完全相同! 在火山方舟中注冊賬號,創(chuàng)建 API Key 并將想用的模型部署為在線服務,平臺就可以直接為我們提供模型的調用代碼。
免費調用額度
添加API Key
配置本地環(huán)境
火山方舟平臺為我們提供了模型調用代碼,但想跑起來這段代碼還需要先在本地配置好 Node.js 環(huán)境。
我們可以在豆包MarsCode 中直接詢問 AI 助手:“ Mac 電腦如何安裝 Node.js 環(huán)境
”,按照 AI 助手給我們的指示選擇一種方式安裝,在終端中執(zhí)行 node -v
和 npm -v
,如果能夠正常輸出版本號,則說明我們成功安裝了 Node.js。
根據火山方舟上的指引,我們還需要手動安裝 OpenAI 軟件包,在終端中執(zhí)行 npm install openai
之后就完成了本地環(huán)境的配置。
在本地跑通模型調用代碼
選擇一個適合的本地路徑執(zhí)行 npm init
即可交互式地進行項目初始化,命令行會提示我們輸入一些關于項目的元數據信息,如項目名稱
、版本
、描述
等。我們可以根據需要填寫這些信息,或直接按「回車鍵
」接受默認值。
詢問豆包MarsCode AI 助手可以了解更多初始化項目的詳細步驟。
將火山方舟平臺提供的代碼復制到本地開發(fā)環(huán)境內,我們可以在豆包MarsCode 中針對不理解的代碼向 AI 助手進行提問,例如示例代碼中的 apiKey 需要從環(huán)境變量中獲取,我們可以詢問跟 JS 語法相關的知識,也可以詢問在不同操作系統(tǒng)中配置環(huán)境變量的方法。
按照指引,在環(huán)境變量中配置 ARK_API_KEY
之后,我們就可以嘗試執(zhí)行測試代碼。
竟然遇到報錯了!命令行中給了我們一些提示,在 package.json
中添加"type
": "module
" 。
我們可以向豆包MarsCode AI 助手詢問錯誤原因,它會給我們更具體的解決方案,我們也能根據 AI 助手的回復了解 JS 的執(zhí)行原理。
修改代碼之后再次執(zhí)行就能成功獲取豆包模型返回的結果了。
開發(fā)情感分析相關代碼
要與豆包 API 對話,則需要在消息數組中提供一個或多個消息,示例代碼中涉及到了 system
和 user
兩種角色,這時我們可以向 AI 助手詢問:“system 和 user 有什么區(qū)別
”。
若想開發(fā)情感分析的應用,通過提示詞工程的方式即可實現,在 system prompt
中填寫如“你是一個用戶評論情感分析專家
”的身份描述,在用戶提示中可以填寫少量的示例,這些示例能夠向人工智能展示您期望交互以何種方式展開,從而指導人工智能對類似的提示做出響應。
如果想把用戶輸入動態(tài)注入到 prompt
中則需要用到模板字符串,相關的語法知識也可以從跟 AI 的對話中獲得。
具體的代碼如下所示:
let few_shot_prompt = `
以下為幾個評論判斷實例,請依據示例對新輸入內容的情感態(tài)度進行判斷
評論:我非常喜歡這個產品,它非常實用。
情感:正面。
評論:這個產品非常糟糕,我無法使用它。
情感:負面。
`;
let message = [
{
role: "system",
content:
"你是一個用戶評論情感分析專家,請根據用戶的評論判斷評論的情感是正面還是負面并直接輸出,不輸出其他內容。",
},
{
role: "user",
content: `${few_shot_prompt}\n 評論:${comment}\n 情感:\n`,
},
];
使用上述代碼替換掉示例代碼中的 messages 就能夠進行用戶評論的情感判斷了,只要在代碼中把用戶評論賦值給 comment 就能對其情感狀態(tài)進行判斷。
需求當然不止這么簡單。我們希望能從命令行中獲得用戶的評論數據并傳給豆包。有了豆包MarsCode AI 之后,僅需 10 秒鐘就能完成代碼改造!如下圖所示,只要我能把需求準確的描述給 AI 助手,他就能很快地把代碼提供給我,直接執(zhí)行也沒有問題。
更進一步,倘若我們期望程序可以反復處理用戶輸入,而非僅調用一次便退出程序,同樣能將此需求告知 AI 助手,它會給出滿足需求的新代碼,從而最終打造出能夠多次處理產品評論情感態(tài)度的小應用。
完整代碼呈現
在豆包MarsCode 的幫助下,即便是從未涉足過 JavaScript 應用開發(fā)領域的新手,也可以開發(fā)出實用的 AI 工具。豆包MarsCode 的 AI 問答、錯誤修復以及代碼補全等功能,在開發(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 = `
以下為幾個評論判斷實例,請依據示例對新輸入內容的情感態(tài)度進行判斷
評論:我非常喜歡這個產品,它非常實用。
情感:正面。
評論:這個產品非常糟糕,我無法使用它。
情感:負面。
`;
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("發(fā)生錯誤:", error);
}
// 繼續(xù)詢問
askQuestion();
});
}
askQuestion();
}
main();
無需一分錢開發(fā)評論情感分析機器人,感興趣的大家點擊「豆包MarsCode」即可跳轉豆包MarsCode 嘗試開發(fā)哦!