AI로 제품 리뷰 평가하기

Kenji Baheux
Kenji Baheux
Alexandra Klepper
Alexandra Klepper

게시일: 2024년 5월 16일

온라인 쇼핑을 할 때 제품 리뷰의 양과 사용 가능한 제품의 양을 보면 압도될 수 있습니다. 이 모든 노이즈를 분류하여 특정 요구사항을 실제로 충족하는 제품을 어떻게 찾을 수 있을까요?

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

가장 일반적인 장단점 목록과 함께 모든 리뷰의 요약이 도움이 될 것입니다.

별점과 장단점 목록이 있는 사용자 리뷰의 예입니다.

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

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

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

기본 요건

  1. Gemini API의 를 만들고 환경 파일에서 정의합니다.

  2. 예를 들어 npm을 사용하여 Google AI JavaScript SDK를 설치합니다. 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를 모든 사람을 위한 강력하면서도 실용적인 도구로 만드는 데 도움이 될 수 있습니다.

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