Tag every review with sentiment and topics

List the topics your team tracks. Facet builds a model that reads each review and returns its sentiment and every topic it mentions, and checks it against your rules before any update goes live.

Review

"Love the fit, but the zipper broke after a week and support never replied."

{ "sentiment": "mixed", "topics": ["fit", "durability", "support"] }

Where review tagging usually starts

Most teams tag reviews with a generic sentiment tool that doesn’t know their topics, or send millions of reviews a month to a frontier model. The tool misses what matters to the product team, and the model bill grows with every review. A Facet model tags every review with your topics.

How it works

  1. Describe the task. Paste the prompt you use today, or write it plainly: “Return positive, negative or mixed, and every topic from this list the review mentions: fit, sizing, durability, delivery, support, price.” Add a few real examples if you have them.
  2. Agree on what good looks like. Facet writes plain statements of a good answer, like “a complaint about delivery time is delivery, never support”, each with examples. Edit any that are off.
  3. Create, then correct. Facet builds the model on its own, in the background, and tests it against every statement before it goes live. When a tag is wrong, say what it should have been. Facet quotes the fix before it spends anything.

Two ways to use it

Use Facet to build a model that returns the sentiment of a product review and
every topic it mentions from this list: ... Here are thirty real reviews: ... Show me
the draft and the price before you approve anything.
import os
from openai import OpenAI

client = OpenAI(base_url=os.environ["FACET_BASE_URL"], api_key=os.environ["FACET_API_KEY"])
reply = client.chat.completions.create(model="review-tags", messages=[{"role": "user", "content": review}])

Why Facet for review tagging

Questions

Can a review have more than one topic?

Yes. Describe it as a list, and Facet returns a list in the same shape on every call.

Can I add a topic later?

Yes. Ask for it in plain words with a few examples. Facet quotes the update first, and it goes live only if every rule the live version passes still holds.

Does it work for reviews in other languages?

Include some in your examples and say how to answer, such as "tag in English whatever the review's language". Facet tests every version on them.