The problem
Keyword search fails when users describe what they want instead of naming it. LLM-powered search fixes that, but naive implementations are slow, expensive to keep running, and only as good as the messy data behind them.
Key design decisions
- 01
Adaptive query paths
Straightforward queries are embedded and sent directly to semantic retrieval; only ambiguous or multi-step questions enter the agent loop, so most answers return quickly and cheaply.
- 02
Event-driven indexing
New or changed content lands in S3 and triggers an indexing function that chunks and embeds it with the same embedding model used at query time. There is no always-on ingestion cluster.
- 03
Quality gates on ingestion
Legacy sources are normalized and checked before they reach the index, because retrieval quality is limited by the data, not the model.
- 04
Caching and pay-per-request compute
Repeat queries are served from cache and the compute layer scales to zero. We choose a vector store whose pricing fits your traffic, since some serverless vector databases still carry a monthly minimum.