I built this site to help researchers and public to find US gov publicly available data using my open-source search system. The site runs on 2 vCPU cloud instance. For detailed technical deep-dive on how it's implemented you can visit my blog post (the link is in the footer of the site).
Ironically, one of the thing that makes written word by AI recognizable as AI is that it's too perfect. Too polished. Now think about speech patterns, they are way more than voice frequencies, tones and phonemes. One can say the same phrase gazillion different ways, with different pauses, cadence, inflections, intonations and even pitch. Humans speak "imperfectly." It's very contextual too: in many situations, we voice the same words very differently. Again, it's possible that I don't know what I'm talking about, but every example of machine talking that I've heard, I felt it was too mechanical, precisely because it was lacking the nuance of how real humans speak.
I think of it this way. LLMs suppose to be good at generating text/writing, right? Well, they are not very good at it. They generate plausible content that superficially makes sense. Most people can easily tell AI generated slop from human writing. I suspect that mimicking human voice is multiple levels more difficult for LLMs than mimicking human content. The level of nuance that humans produce in their speech is probably staggering. So I maybe completely wrong, but I see no evidence so far to support the idea that either LLM's writing or speaking is going to get much better any time soon.
I thought that AI would at least be good at 2 things: writing (text) and doing UI. It's not good at either. Text it generated reads like slop and UI it creates looks like slop. The way I approach it now is this: for text, I have to write it myself and only use AI to check grammar and catch weirdly phrased passages. For UI, it's like with the rest of the code. You have to stay on the top of it and keep demanding changes to match your vision/architecture/taste until it gets it close to what you want. In both cases, not knowing what "good" looks like is a real problem, because AI definitely has no idea.
Sorry that I keep commenting on my own post, but I've split the Amgix Now release announcement from the benchmarks. Benchmarks now live in a separate post and include a summary in charts as the first section, so that you can see the results at a glance. The announcement post has a direct link to the benchmarks as well:
Just to add a bit more context. These are pretty detailed benchmarks showing relevance and latencies of the search engines across 4 different datasets. These are the sort of numbers I wish existed on the internet, but they did not. Or at least I couldn’t find any.
Even if you have no interest in Amgix Now, the side-by-side benchmarks of Typesense, Meilisearch, and Elasticsearch on the same hardware and datasets may be useful on their own. Happy to answer any questions.
I’ve been working in development, systems, and ops (SRE), and kept running into the same problem: adding good search to an application turns into building and operating a whole distributed system.
You end up stitching together ingestion pipelines, embedding services, databases, and custom ranking logic - and then maintaining all of it.
I built Amgix to handle most of the challenging parts.
For developers:
* one API for ingestion, embedding, hybrid retrieval, and ranking
* async ingestion, deduplication, retries, and embedding pipelines are built in
For ops:
* runs as a single container, but scales into independently deployable components
* automatic model loading and rebalancing
* supports PostgreSQL, MariaDB, or Qdrant behind the same API
One area I focused on specifically is messy, identifier-heavy data (SKUs, part numbers, etc.). Amgix includes a custom tokenizer (WMTR) that handles those cases better than typical tokenizers, while still working well for normal text. There's a longer writeup on why standard approaches fall short for this kind of data in the docs: https://docs.amgix.io/why/
End-to-end, it handles ingestion, embedding, and fused ranking while still delivering typeahead-level latency on multi-million document datasets (benchmarks in the docs).
Fair enough if it reads that way. I was trying to describe that interacting with AI kinda makes you feel constantly uncertain about stuff it spits out.
Any feedback is very welcome.