Know what every customer message is asking for

List your intents and what sets them apart. Facet builds a model that names the intent of each message, so your chatbot or helpdesk can act on it, and checks it against your rules before any update goes live.

Chat message

"My card hasn't shown up and it's been two weeks"

{ "intent": "card_not_arrived" }

Where intent detection usually starts

Most teams detect intents with a frontier model and a prompt that lists every intent, or with a classifier that needs hundreds of labeled messages per intent. The prompt slows down and grows costly as intents are added, and the classifier needs labels nobody has time to write. A Facet model learns your intents from a description and a few real messages.

How it works

  1. Describe the task. Paste the prompt you use today, or write it plainly: “Name the intent of each banking chat message from this list of 40, or other if none fits.” 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 card that hasn’t arrived is card_not_arrived, never card_lost”, 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 it confuses two intents, say which one was right. Facet quotes the fix before it spends anything.

Two ways to use it

Use Facet to build a model that names the intent of each banking chat message
from this list: ... Here are twenty real messages: ... 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="chat-intents", messages=[{"role": "user", "content": message}])

Why Facet for intent detection

Questions

How many examples does each intent need?

None are required. Facet writes its own practice messages from your description, and a few real ones for the intents that get mixed up help most.

What happens with a message that fits no intent?

You decide. Add an other or unknown intent and a rule for when to use it, and Facet tests every version against it.

Can I add intents later?

Yes. Ask in plain words with a few examples. Facet quotes the change before it builds anything, and the new version goes live only if every rule the live one passes still holds.