Extraction, embedding, hybrid search, reranking, and cited answers: one managed layer. You choose the models and tune every stage. You don’t host or scale any of it.
Not one model doing all the work. Every stage below runs on named infrastructure. Some of it yours to choose, all of it managed for you.
Each page is read to text, figures and tables included, so everything on it can be searched.
Documents are split along their own structure, boilerplate dropped and tables kept whole.
Each chunk becomes a vector that captures its meaning, using the model you choose.
Semantic and keyword search run together for a wider candidate pool, or either can run alone.
A cross-encoder rereads every candidate against your question and reorders them, the single biggest lever on quality.
The answer is generated only from the retrieved passages, each citation pointing to its exact source region.
Fourteen enterprise documents, indexed and searchable. Every score, rank, and millisecond below is what the system returned for your query.
Search returns passages. The same corpus can also tag each passage with your app’s ids and write what each document says into rows in your own tables. Together they make a graph.
On 2025-11-14, a scheduled device certificate rotation in the Halcyon Cloud platformsvc_cloud created a cascading authentication failure across a subset of HX-200prd_hx200 sensors. Approximately 8,400 devices (across 23 Growth and Enterprise tenants) began rejecting cloud handshakes with error code E-4021err_4021 immediately after the rotation window closed. The error persisted until affected devices were manually re-provisioned by customer operations teams.
Push a table of named things. Every passage that mentions one gets tagged, the same way every time.
Push again and existing passages re-tag in the background. Nothing is re-embedded, so there’s no embedding cost.
Tags are your own ids: a product, an error code, a person. Use them to narrow a search, see what appears alongside an entity, or pull every passage about one.
Your code runs over each built document and writes what it says to your database: relations, timelines, who’s quoted.
A mapper shapes your objects into documents on the way in. A reader turns documents back into rows on the way out.
Graph RAG is recursion and queries, not a separate product. Entities are the nodes, the relations your reader writes are the edges, and WITH RECURSIVE walks them in the database your app already runs.
WITH RECURSIVE hop(id, depth) AS ( SELECT 'err_4021', 0 UNION SELECT CASE WHEN r.error = h.id THEN r.asset ELSE r.error END, h.depth + 1 FROM relations r JOIN hop h ON h.id IN (r.error, r.asset) WHERE h.depth < 2 AND r.asset IS NOT NULL ) SELECT id, MIN(depth) FROM hop GROUP BY id;
Two charges, and they stack. The pipeline is metered per unit, so you pay for what you index and query. Dedicated capacity is optional: a leased instance sized by chunk count, billed by the hour, and free while hibernated.
Write the cited answer with any language model, from fast and cheap to frontier. Browse every model on Remy →
| Size | Capacity | Per hour | ~ Monthly |
|---|---|---|---|
| Shared | up to ~1M chunks | $0 | included |
| Small | 2.4M chunks | $0.11 | ~$78 |
| Medium | 6.4M chunks | $0.21 | ~$156 |
| Large | 24M chunks | $0.47 | ~$343 |
| XL | 48M chunks | $0.94 | ~$686 |
Shared capacity is the default, included in the metered pricing above at no extra charge, and covers most corpora. Dedicated tiers are optional: a leased instance isolated from the shared pool, billed hourly, never unloaded, and $0 while hibernating; more capacity than XL is available on request.