"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
- 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.
- 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.
- 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
- From your agent: connect Claude, Cursor, ChatGPT, Codex or VS Code to Facet, then paste:
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.
- In your code: keep your OpenAI SDK and change two lines, the address and the model name.
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
- Your topics. It tags what your product team tracks, in the names they use.
- Built for volume. A model that does one task keeps the cost low at millions of reviews a month.
- Checked before every update. An update goes live only if it keeps every statement the live version passes, and any update rolls back in one step.
- Yours. Export it any time, free, and run it wherever you like.
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.