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