Engineering notes
The OpenVie blog
Posts that go into the hard parts of a self-hosted RAG system: fusing retrieval results, abstaining when evidence is missing, splitting OLTP from OLAP, approval workflow, and layered security. Every post links the sources it read so you can check them yourself.
Latest post
A local Vietnamese stack: BGE-M3 and VyLinh 3B in OpenVie
A self-hosted RAG stack needs two models doing two different jobs: one embedder for retrieval, one generative model for writing the answer. OpenVie defaults to BGE-M3 and VyLinh 3B through Ollama, and this post explains both the choice and its limits.
- Two different problems, two different models — why retrieval and generation have to split
- BGE-M3: three retrieval modes in one encoding pass
- Why 1024 dimensions with an 8192-token context matters for administrative text
- VyLinh 3B: a small model for Vietnamese
- The limits the model card itself admits
- Loading the models into Ollama
9 min read13 sections
Read postAll posts
Sources are listed at the end of each post- RetrievalRRFGraphRAG
Hybrid retrieval: dense, sparse and graph over internal documents
Hybrid retrieval is not adding dense and BM25 scores together. This post walks through each decision: BGE-M3's three representations, RRF, DBSF, retrieve-then-rescore, chunking, graphs and query rewriting — with the cost of each choice.
14 min read15 sections
- AbstentionCitationsEvaluation
Abstaining when evidence is missing: fluent is not correct
Abstention — refusing to answer when there is no supporting evidence — is behaviour you design, not a sentence you add to a prompt. This post walks through the public evidence and shows what a RAG system has to build instead.
10 min read13 sections
- LakehouseDuckDBParquet
A small lakehouse with Parquet and DuckDB
A simple-sounding count question lands exactly on the boundary between OLTP and OLAP. This piece goes from Parquet and folder partitioning to CDC and embedded DuckDB, and to what OpenVie actually does.
9 min read13 sections
- BPMNApprovalAudit
Two-level approval on BPMN: process control from diagram to audit
Once approval spans two levels with deadlines and escalation, a single `status` column starts leaking business logic into every corner of the code. This piece walks through how OpenVie puts the process on an embedded BPMN engine, writes decisions to the document state, and turns every step into an event you can verify.
10 min read13 sections
- SecurityOIDCEdge
Identity, authorization and the edge: three layers of one boundary
Securing a self-hosted RAG platform is not the job of a single middleware. It lives in three separate decisions: who the caller is, which resources that caller may touch, and how much traffic the edge lets through.
15 min read15 sections