運用 AI 評估產品評論

Maud Nalpas
Maud Nalpas
Kenji Baheux
Kenji Baheux

發布日期:2024 年 5 月 16 日

在線上購物時,看到大量的產品評論和可購買的產品,可能會讓人不知所措。我們如何能從所有雜訊中篩選出真正符合我們需求的產品?

舉例來說,假設我們要購買工作用的背包,背包需要在功能、美觀和實用性之間取得平衡。由於評論數量眾多,你幾乎無法得知自己是否找到了最合適的包包。如果我們可以運用 AI 篩除雜訊,找到最適合的產品,那該有多好?

我們建議您提供所有評論的摘要,以及最常見的優缺點清單。

範例:含有正面和負面重點的使用者評論。
使用者評論範例:星級評分和優缺點清單。

我們使用伺服器端生成式 AI 建構這項功能。推論是在伺服器上執行。

在本文件中,您可以按照Gemini API 與 Node.js 的教學課程操作,使用 Google AI JavaScript SDK 來匯總許多評論中的資料。我們將著重於這項工作的生成式 AI 部分,不會說明如何儲存結果或建立工作佇列。

實際上,您可以將任何 LLM API 與任何 SDK 搭配使用。不過,建議的提示可能需要調整,才能符合您選擇的模型。

必要條件

  1. 建立 Gemini API 的金鑰,並在環境檔案中定義金鑰。

  2. 安裝 Google AI JavaScript SDK,例如使用 npm: npm install @google/generative-ai

建構評論摘要應用程式

  1. 初始化生成式 AI 物件
  2. 建立函式以產生評論摘要。
    1. 選取生成式 AI 模型。在本範例中,我們會使用 Gemini Pro。使用專屬於用途的模型 (例如,gemini-pro-vision 是用於多模態輸入)。
    2. 新增提示。
    3. 呼叫 generateContent 以便將提示做為引數傳遞。
    4. 產生並傳回回應。
const { GoogleGenerativeAI } = require("@google/generative-ai");

// Access the API key env
const genAI = new GoogleGenerativeAI(process.env.API_KEY_GEMINI);

async function generateReviewSummary(reviews) {
  // Use gemini-pro model for text-only input
  const model = genAI.getGenerativeModel({ model: "gemini-pro" });
  // Shortened for legibility. See "Write an effective prompt" for
  // writing an actual production-ready prompt.
  const prompt = `Summarize the following product reviews:\n\n${reviews}`;
  const result = await model.generateContent(prompt);
  const response = await result.response;
  const summary = response.text();
  return summary;
}

撰寫有效提示

要成功運用生成式 AI,最好的方法就是建立完整的提示。在這個範例中,我們使用一次性提示技巧,取得一致的輸出內容。

單樣本提示方法會以 Gemini 模型的示例輸出內容表示。

const prompt =
`I will give you user reviews for a product. Generate a short summary of the
reviews, with focus on the common positive and negative aspects across all of
the reviews. Use the exact same output format as in the example (list of
positive highlights, list of negative aspects, summary). In the summary,
address the potential buyer with second person ("you", "be aware").

Input (list of reviews):
// ... example

Output (summary of reviews):
// ... example

**Positive highlights**
// ... example
**Negative aspects**
// ... example
**Summary**
// ... example

Input (list of reviews):
${reviews}

Output (summary of all input reviews):`;

以下是這個提示的輸出範例,其中包含所有評論的摘要,以及常見的優缺點清單。

## Summary of Reviews:

**Positive highlights:**

* **Style:** Several reviewers appreciate the backpack's color and design.
* **Organization:** Some users love the compartments and find them useful for
  organization.
* **Travel & School:** The backpack seems suitable for both travel and school
  use, being lightweight and able to hold necessary items.

**Negative aspects:**

* **Durability:** Concerns regarding the zipper breaking and water bottle holder
  ripping raise questions about the backpack's overall durability.
* **Size:** A few reviewers found the backpack smaller than expected.
* **Material:** One user felt the material was cheap and expressed concern about
  its longevity.

**Summary:**

This backpack seems to be stylish and appreciated for its organization and
suitability for travel and school. However, you should be aware of potential
durability issues with the zippers and water bottle holder. Some users also
found the backpack smaller than anticipated and expressed concerns about the
material's quality.

符記限制

大量評論可能會導致模型的權杖數量上限,符記不一定等同於單一字詞;符記可以是字詞的一部分,也可以是多個字詞的組合。舉例來說,Gemini Pro 的符記上限為 30,720 個。也就是說,提示最多可包含 600 則平均 30 字的英文評論,扣除提示指示的其餘部分。

如果提示訊息的長度超過允許的長度,請使用 countTokens() 檢查符記數量,並減少輸入內容。

const MAX_INPUT_TOKENS = 30720
const { totalTokens } = await model.countTokens(prompt);
if (totalTokens > MAX_INPUT_TOKENS) {
    // Shorten the prompt.
}

打造適合企業的應用程式

如果您是 Google Cloud 使用者,或需要企業支援,可以透過 Vertex AI 存取 Gemini Pro 和其他模型,例如 Anthropic 的 Claude 模型。您可以使用 Model Garden,判斷哪個模型最適合您的特定用途。

後續步驟

我們建構的應用程式極度仰賴優質的評論,才能提供最有效的摘要。如要收集這些優質評論,請參閱本系列的下一篇文章「透過裝置端網頁 AI 協助使用者撰寫實用的產品評論」。

我們想聽聽你對這項做法的看法。請告訴我們您最感興趣的用途。您可以提供意見回饋並加入搶先體驗方案,透過本機原型測試這項技術。

您的貢獻有助於我們將 AI 打造為強大且實用的工具,讓所有人都能使用。

下一個步驟:協助使用者撰寫實用的產品評論