Opublikowano: 16 maja 2024 r.
Podczas zakupów online można się poczuć przytłoczonym liczbą opinii o produktach i liczbą dostępnych produktów. Jak możemy się przebić przez ten szum informacyjny, aby znaleźć produkt, który faktycznie spełni nasze konkretne potrzeby?
Załóżmy, że szukamy plecaka do pracy. Plecaki muszą być funkcjonalne, estetyczne i praktyczne. Liczba opinii sprawia, że niemal niemożliwe jest stwierdzenie, czy znaleźliśmy idealny plecak. A gdybyśmy mogli użyć AI, aby przesiać te informacje i znaleźć idealny produkt?
Przydatne byłoby podsumowanie wszystkich opinii oraz lista najczęstszych zalet i wad.
Aby to zrobić, używamy generatywnej AI po stronie serwera. Wnioskowanie odbywa się na serwerze.
W tym dokumencie znajdziesz samouczek dotyczący interfejsu Gemini API z Node.js, w którym używamy pakietu Google AI JavaScript SDK do podsumowywania danych z wielu opinii. Skupiamy się na części dotyczącej generatywnej AI. Nie będziemy omawiać, jak przechowywać wyniki ani jak tworzyć kolejkę zadań.
W praktyce możesz użyć dowolnego interfejsu LLM API z dowolnym pakietem SDK. Sugerowany prompt może jednak wymagać dostosowania do wybranego modelu.
Wymagania wstępne
Utwórz klucz interfejsu Gemini API, i zdefiniuj go w pliku środowiska.
Zainstaluj pakiet Google AI JavaScript SDK, np. za pomocą npm:
npm install @google/generative-ai
Tworzenie aplikacji do podsumowywania opinii
- Zainicjuj obiekt generatywnej AI.
- Utwórz funkcję generowania podsumowań opinii.
- Wybierz model generatywnej AI. W naszym przypadku użyjemy Gemini Pro. Użyj modelu, który jest odpowiedni dla Twojego przypadku użycia (np.
gemini-pro-visionjest przeznaczony do danych wejściowych multimodalnych). - Dodaj prompt.
- Wywołaj
generateContent, aby przekazać prompt jako argument. - Wygeneruj i zwróć odpowiedź.
- Wybierz model generatywnej AI. W naszym przypadku użyjemy Gemini Pro. Użyj modelu, który jest odpowiedni dla Twojego przypadku użycia (np.
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;
}
Pisanie skutecznego prompta
Najlepszym sposobem na osiągnięcie sukcesu dzięki generatywnej AI jest utworzenie dokładnego prompta. W tym przykładzie użyliśmy techniki tworzenia promptów one-shot, aby uzyskać spójne wyniki.
Tworzenie promptów one-shot jest reprezentowane przez przykładowe dane wyjściowe, które Gemini ma modelować.
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):`;
Oto przykładowe dane wyjściowe tego prompta, które zawierają podsumowanie wszystkich opinii oraz listę najczęstszych zalet i wad.
## 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.
Limity tokenów
Wiele opinii może przekroczyć limit tokenów modelu. Tokeny nie zawsze są równe pojedynczemu słowu. Token może być częścią słowa lub kilkoma słowami. Na przykład Gemini Pro ma limit 30 720 tokenów. Oznacza to, że prompt może zawierać co najwyżej 600 średnich opinii po angielsku, które mają 30 słów, pomniejszonych o resztę instrukcji prompta.
Użyj countTokens()
, aby sprawdzić liczbę tokenów i zmniejszyć dane wejściowe, jeśli prompt jest większy niż
dozwolony.
const MAX_INPUT_TOKENS = 30720
const { totalTokens } = await model.countTokens(prompt);
if (totalTokens > MAX_INPUT_TOKENS) {
// Shorten the prompt.
}
Tworzenie dla firm
Jeśli jesteś użytkownikiem Google Cloud lub potrzebujesz pomocy dla firm, możesz uzyskać dostęp do Gemini Pro i innych modeli, takich jak modele Claude firmy Anthropic, za pomocą platformy Gemini Enterprise Agent. Aby określić, który model najlepiej pasuje do Twojego konkretnego przypadku użycia, możesz skorzystać z Model Garden.
Dalsze kroki
Zbudowana przez nas aplikacja w dużym stopniu opiera się na opiniach wysokiej jakości, aby generować jak najskuteczniejsze podsumowania. Aby zbierać opinie wysokiej jakości, przeczytaj kolejny artykuł z tej serii: Pomaganie użytkownikom w pisaniu przydatnych opinii o produktach za pomocą AI w internecie na urządzeniu.
Chcemy poznać Twoją opinię na temat tego podejścia. Powiedz nam, które przypadki użycia najbardziej Cię interesują. Możesz podzielić się swoją opinią i dołączyć do Programu testowania aktualizacji aby przetestować tę technologię za pomocą lokalnych prototypów.
Twoja opinia może pomóc nam uczynić AI potężnym, ale praktycznym narzędziem dla wszystkich.
Dalej: Pomaganie użytkownikom w pisaniu przydatnych opinii o produktach