เผยแพร่เมื่อวันที่ 16 พฤษภาคม 2024
เมื่อเลือกซื้อทางออนไลน์ คุณอาจเห็นรีวิวผลิตภัณฑ์และจำนวนผลิตภัณฑ์ที่มีให้เลือกมากมายจนทำให้สับสน เราจะกรองเสียงรบกวนทั้งหมดนี้ เพื่อหาผลิตภัณฑ์ที่จะตอบสนองความต้องการเฉพาะของเราได้อย่างไร
เช่น สมมติว่าเรากำลังซื้อกระเป๋าเป้ใส่ทำงาน กระเป๋าเป้ต้องมีความสมดุลทั้งในด้านฟังก์ชันการทำงาน ความงาม และการใช้งานจริง จำนวนรีวิวทำให้แทบจะเป็นไปไม่ได้เลยว่าเจอกระเป๋าที่ถูกใจหรือไม่ จะเกิดอะไรขึ้นหากเราใช้ AI เพื่อกรองข้อมูลที่ไม่เกี่ยวข้องและค้นหาผลิตภัณฑ์ที่เหมาะกับคุณที่สุด
สิ่งที่มีประโยชน์คือสรุปรีวิวทั้งหมด พร้อมรายการข้อดีและข้อเสียที่พบบ่อยที่สุด
เราใช้ Generative AI ฝั่งเซิร์ฟเวอร์ในการสร้างฟีเจอร์นี้ การอนุมานจะเกิดขึ้นในเซิร์ฟเวอร์
ในเอกสารนี้ คุณสามารถทําตามบทแนะนําสําหรับ Gemini API ด้วย Node.js โดยใช้ Google AI JavaScript SDK เพื่อสรุปข้อมูลจากรีวิวจำนวนมาก เราจะมุ่งเน้นไปที่ส่วน Generative AI ของงานนี้ โดยไม่กล่าวถึงวิธีจัดเก็บผลลัพธ์หรือสร้างคิวงาน
ในทางปฏิบัติ คุณสามารถใช้ LLM API ใดก็ได้กับ SDK ใดก็ได้ อย่างไรก็ตาม คุณอาจต้องปรับพรอมต์ที่แนะนำให้ตรงกับโมเดลที่คุณเลือก
ข้อกำหนดเบื้องต้น
สร้างคีย์สําหรับ Gemini API และกำหนดไว้ในไฟล์สภาพแวดล้อม
ติดตั้ง Google AI JavaScript SDK เช่น ด้วย npm
npm install @google/generative-ai
สร้างแอปพลิเคชันสรุปรีวิว
- เริ่มต้นวัตถุ Generative AI
- สร้างฟังก์ชันเพื่อสร้างสรุปรีวิว
- เลือกโมเดล Generative AI เราจะใช้ Gemini Pro สำหรับกรณีการใช้งานของเรา ใช้รูปแบบที่เฉพาะเจาะจงสำหรับ Use Case ของคุณ (เช่น
gemini-pro-vision
ใช้สำหรับอินพุตหลายรูปแบบ) - เพิ่มพรอมต์
- เรียกใช้
generateContent
เพื่อส่งพรอมต์เป็นอาร์กิวเมนต์ - สร้างและแสดงผลคำตอบ
- เลือกโมเดล Generative AI เราจะใช้ Gemini Pro สำหรับกรณีการใช้งานของเรา ใช้รูปแบบที่เฉพาะเจาะจงสำหรับ Use Case ของคุณ (เช่น
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;
}
เขียนพรอมต์ที่มีประสิทธิภาพ
วิธีที่ดีที่สุดในการทําให้ Generative 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 รายการ ซึ่งหมายความว่าพรอมต์จะมีรีวิวภาษาอังกฤษความยาวเฉลี่ย 30 คำได้สูงสุด 600 รายการ ลบด้วยคำสั่งอื่นๆ ของพรอมต์
ใช้ countTokens()
เพื่อตรวจสอบจำนวนโทเค็นและลดอินพุตหากข้อความแจ้งมีขนาดใหญ่กว่าที่อนุญาต
const MAX_INPUT_TOKENS = 30720
const { totalTokens } = await model.countTokens(prompt);
if (totalTokens > MAX_INPUT_TOKENS) {
// Shorten the prompt.
}
สร้างมาเพื่อองค์กร
หากเป็นผู้ใช้ Google Cloud หรือต้องการการสนับสนุนสำหรับองค์กร คุณจะเข้าถึง Gemini Pro และโมเดลอื่นๆ ได้ เช่น โมเดล Claude ของ Anthropic โดยใช้ Vertex AI คุณอาจต้องใช้ Model Garden เพื่อพิจารณาว่าโมเดลใดเหมาะกับกรณีการใช้งานที่เฉพาะเจาะจงของคุณมากที่สุด
ขั้นตอนถัดไป
แอปพลิเคชันที่เราสร้างขึ้นอาศัยการตรวจสอบคุณภาพเป็นหลัก เพื่อให้ได้ข้อมูลสรุปที่มีประสิทธิภาพมากที่สุด หากต้องการรวบรวมรีวิวคุณภาพเหล่านั้น โปรดอ่านบทความถัดไปในชุดบทความนี้ ซึ่งได้แก่ ช่วยให้ผู้ใช้เขียนรีวิวผลิตภัณฑ์ที่เป็นประโยชน์ด้วย AI บนเว็บในอุปกรณ์
เราอยากทราบความคิดเห็นของคุณเกี่ยวกับแนวทางนี้ บอกเราว่า Use Case ใดที่คุณสนใจมากที่สุด คุณสามารถแชร์ความคิดเห็นและเข้าร่วมโปรแกรมทดลองใช้ก่อนเปิดตัวเพื่อทดสอบเทคโนโลยีนี้กับต้นแบบในเครื่อง
ข้อมูลที่คุณให้ไว้จะช่วยให้เราทําให้ AI เป็นเครื่องมือที่มีประสิทธิภาพแต่ใช้งานได้จริงสําหรับทุกคน