Skip to content
Not released yet: nothing on these pages installs until 0.1, the first release. Run it on the sample tenant today.

Search

Search by meaning embeds each metric’s text with OpenAI or Gemini, so an agent can find a metric from a question. Without it, agents find metrics by name and by filters, and every answer says so. You can choose None now and turn search on later.

  • An account with OpenAI or Google, and permission to create an API key there.

Only metadata leaves the stack, and only to the provider you choose.

Sent to the provider Never sent
Names, keys, definitions, aliases, descriptions, display folders and category paths of metrics, variants, columns and terms. The names of the dataset and workspace a variant sits in. The words of a search, so they can be compared by meaning. One fixed sentence, “Net sales by month, in euros, for last year.”, when the check runs. DAX, query results, rows of data, and the text of questions and comments.

Datasets, tables, categories, questions and the query log are searched by words only and are never embedded.

  1. On step 7, Search, choose a Provider: None, OpenAI or Gemini. With None, press Check search and go on to the next step.

  2. Create an API key with the provider:

    • OpenAI: create an API key in the OpenAI dashboard.
    • Gemini: create a key in Google AI Studio. Gemini rejects unrestricted standard keys, so use a key made in AI Studio now (they are authorization keys by default) or one with explicit restrictions.
  3. Paste it into OpenAI API key or Gemini API key, whichever the setup shows for your provider. It is saved encrypted for the api and the worker, and nothing can show it again.

  4. Leave Model empty to use the default, or enter a model as the provider names it:

    Provider Default model Price per million tokens
    OpenAI text-embedding-3-large $0.13
    Gemini gemini-embedding-2 $0.20

    Prices were read on 25 October 2026. Vectors are 1536 numbers long for both. Changing the provider or the model re-embeds everything on the next sync.

  5. Press Check search.

Source for step 2: OpenAI quickstart and Using Gemini API keys.

The check embeds the one fixed sentence, then counts the book’s search documents. It passes with a sentence such as:

One sentence was embedded with openai text-embedding-3-large. Embedding the book as it stands, 0 documents, would cost about $0.0000.

The cost is an estimate of about 4 characters to a token, so it runs a little high or low. It reads 0 documents now, because the first sync has not run. For scale: 5,000 search documents of 150 tokens each are 750,000 tokens, about $0.10 with OpenAI. Press the button again after First sync for the real figure. Later syncs embed only text that changed.

Run it later with:

Terminal window
pbmb admin check search

With None it passes with “Search is off: agents find metrics by name and by filters.” If a sentence appears, find it on When a check fails.

Next: Agents.