u/OldCitron4036

I built a Filament filter that filters tables by a sentence: "The customer is angry."

Hi r/laravel! I've been building Laravel apps for many years, and lately I've been working with AI models inside admin panels. This is the result: Vibefilter, a free, MIT-licensed Filament plugin.

You add it to a table:

VibeFilter::make()->textColumns(['body'])

then type a statement like "The customer is angry." and the table keeps the rows it's true for. It's for questions you'd otherwise need a classifier, embeddings or a keyword list for: sarcasm, negation, "the customer blames the courier".

A few details you may care about:

  • Only the rows left after your other filters and search are scored, then the table is filtered by key, so pagination, counts and sorting stay correct.
  • Scores are cached by content (text hash + statement + model). Re-running a statement is instant and free.
  • 1,000 rows take about 1 second and cost about $0.003 with TypeSafe's Jev, directly or through OpenRouter.
  • A "Run anyway" guard above 1,000 unscored rows, a live progress bar via Livewire streaming, and a fake driver for your tests.
  • Only the chosen columns are sent, under random tags, never with IDs.

Live demo (1,000 fictional reviews, no sign-up): https://demo.vibefilter.dev GitHub: https://github.com/vibefilter/filament

Happy to answer anything. I'd also love to hear where you'd use it, or what's missing.

reddit.com
u/OldCitron4036 — 9 days ago