iT邦幫忙

2025 iThome 鐵人賽

DAY 22
0
AI & Data

30 天打造 App 評論洞察系統:用 AI 讓產品團隊更懂用戶系列 第 28

【Day 27】系統開發設計與實作(4/4)

  • 分享至 

  • xImage
  •  

這篇文章將是整個系列的重頭戲,介紹如何將我們的 App 評論資料Google 的 Gemini AI 模型串接,產生自動化的洞察報告。

上一篇我們學會了如何從評論中提取關鍵詞。

但光有詞語還不夠,我們需要一個能夠理解這些資料,並為我們總結出 actionable insights(可執行洞察) 的工具。

這時候,強大的 AI 模型,例如 Google Gemini,就成為我們的最佳夥伴。


1. 準備 AI 模型的輸入

為了讓 AI 模型能給出有價值的分析,我們需要整理好輸入資料。

GeminiService.gs 檔案中的 generateInsights 函式就是這個過程的核心。
它接收三種資料:

  • stats:評論的統計數據,例如每月評論數、評分分佈等
  • tfidfTop:我們在部落格文章三中提取出的關鍵詞
  • samples:部分原始評論樣本,讓 AI 模型能參考具體的例子

接著,我們定義了一個詳細的系統提示(system prompt),告訴 AI 模型它扮演的角色(電商 App 產品經理顧問)以及我們想要的輸出格式(JSON)。

var systemPrompt = [
  '你是電商 App 的資深產品經理顧問。',
  '請閱讀提供的統計、關鍵詞與樣本,產出「分析報告」,重點是可執行洞察。',
  '輸出為 JSON:{"report": string, "highlights":[], "negatives":[], "actions":[]}',
  //...(略)
].join('\n');

這段提示非常重要,它確保了 AI 的回覆不僅有分析,更有具體的建議,且格式固定,方便我們程式處理 。


2. 發送 API 請求

我們使用 UrlFetchApp 服務向 Gemini API 發送 POST 請求。

請求的 payload 包含我們整理好的資料和系統提示,就像是給 AI 模型一份詳細的報告,並附上一個任務清單。

var body = {
  contents: [{
    role: 'user',
    parts: [{ text: systemPrompt + '\n\n[統計]\n' + JSON.stringify(stats) + '\n[關鍵詞]\n' + JSON.stringify(tfidfTop.slice(0, 50)) + '\n[樣本前200]\n' + samples.slice(0, 200).map(function(s){ return '(' + s.rating + ') ' + (s.review || ''); }).join('\n') }]
  }]
};
var res = UrlFetchApp.fetch(url, {
  method: 'post',
  contentType: 'application/json',
  payload: JSON.stringify(body),
  muteHttpExceptions: true
});

發送請求前,我們還會從 PropertiesService 服務中取得 API 金鑰,這是一種安全儲存敏感資訊的方式。


3. 處理 AI 回應

AI 回傳的內容會被轉換成 JSON 物件。由於 AI 模型有時會回傳 Markdown 格式的程式碼區塊,我們的程式碼會先進行清理,確保只剩下 JSON 字串。

最後,程式會從解析後的 JSON 中提取出 報告、正面觀察、負面觀察和行動建議,並將其回傳給網頁。

try {
  var raw = text && text.parts && text.parts[0] && text.parts[0].text ? text.parts[0].text : '';
  raw = String(raw).replace(/```json|```/g, '').trim();
  if (raw) {
    try {
      var parsed = JSON.parse(raw);
      out.report = String(parsed.report || '');
      out.highlights = parsed.highlights || [];
      //...(略)
    } catch (je) {
      //...(略)
    }
  }
} catch (err2) {}
return out;

透過以上步驟,我們的應用程式就從一個靜態的儀表板,進化成了一個可以與 AI 互動、自動產生洞察報告的智慧系統了


上一篇
【Day 26】系統開發設計與實作(3/4)
下一篇
【Day 28】系統使用者測試
系列文
30 天打造 App 評論洞察系統:用 AI 讓產品團隊更懂用戶31
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言