AI로 제품 리뷰 평가하기

Maud Nalpas
Maud Nalpas
Kenji Baheux
Kenji Baheux

게시일: 2024년 5월 16일

온라인에서 쇼핑할 때 제품 리뷰의 양과 구매할 수 있는 제품의 양이 너무 많아서 혼란스러울 수 있습니다. 이 모든 노이즈를 분류하여 실제로 특정 요구사항을 충족하는 제품을 찾으려면 어떻게 해야 하나요?

예를 들어 직장용 배낭을 쇼핑한다고 가정해 보겠습니다. 배낭은 기능, 미학, 실용성의 균형을 맞춰야 합니다. 리뷰 수가 너무 많아서 완벽한 가방을 찾았는지 알 수 없습니다. AI를 사용하여 노이즈를 걸러내고 완벽한 제품을 찾을 수 있다면 어떨까요?

가장 일반적인 장단점 목록과 함께 모든 리뷰의 요약을 제공하는 것이 좋습니다.

긍정적인 부분과 부정적인 부분을 강조 표시한 사용자 리뷰의 예시
별표 평점과 장단점 목록이 포함된 사용자 리뷰의 예시입니다.

이를 빌드하기 위해 서버 측 생성형 AI를 사용합니다. 추론은 서버에서 발생합니다.

이 문서에서는 Google AI JavaScript SDK를 사용하여 여러 리뷰의 데이터를 요약하는 Node.js를 사용한 Gemini API 튜토리얼을 따라할 수 있습니다. 이 작업에서는 생성형 AI 부분에 중점을 둡니다. 결과를 저장하거나 작업 큐를 만드는 방법은 다루지 않습니다.

실제로는 모든 SDK에서 모든 LLM API를 사용할 수 있습니다. 하지만 선택한 모델에 맞게 추천 프롬프트를 조정해야 할 수도 있습니다.

기본 요건

  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개입니다. 즉, 프롬프트에는 나머지 프롬프트 안내를 제외하고 영어로 평균 30단어의 리뷰가 최대 600개 포함될 수 있습니다.

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를 모든 사용자에게 강력하면서도 실용적인 도구로 만드는 데 도움이 됩니다.

다음: 사용자가 유용한 제품 리뷰를 작성하도록 지원하기