The understanding layer for the built environment
The understanding layer for the built environment
Construction is a specialist language: DIN, dimensions, codes. flinq reads it with domain precision. OpenAI-compatible embeddings, hybrid search and rerank.
from openai import OpenAI client = OpenAI( base_url="https://api.flinq.ai/v1", api_key="flq_…",) r = client.embeddings.create( model="flinq-pilot-otter", input="Beton C25/30 XC4",)import OpenAI from 'openai'; const client = new OpenAI({ baseURL: 'https://api.flinq.ai/v1', apiKey: 'flq_…',}); const r = await client.embeddings.create({ model: 'flinq-pilot-wombat', input: 'Beton C25/30 XC4',});curl https://api.flinq.ai/v1/embeddings \ -H "Authorization: Bearer flq_…" \ -H "Content-Type: application/json" \ -d '{ "model": "flinq-pilot-otter", "input": "Beton C25/30 XC4" }' A bidding text, a BIM property set, a DIN code, a dimension like DN 100 or a concrete grade like C25/30: these are not ordinary language. They are a dense, compounded, code-laden technical register, and every European construction market writes its own national instance of it. General purpose embedding models flatten that language. They smear compound words into an average, and they go blind to the exact tokens that decide a match.
flinq is built for it. It reads construction text the way a quantity surveyor does, so retrieval, matching and classification land on the right line item instead of the approximately right one.
flinq is evaluated on BauSatz, an open and neutral benchmark for the specialist language of construction. It starts with German and is being extended across European languages, so any embedding model can be compared on real tender and BIM text. About BauSatz →
One pipeline, five endpoints
Section titled “One pipeline, five endpoints”From the file formats the industry actually exchanges to a ranked result: extract, chunk, embed, search, rerank. Every step is stateless and yours to compose.
Extract
A GAEB file in, its faithful bill-of-quantities tree out: groups, positions, remarks, quantities and prices. Tolerant parsing with explicit warnings.
Chunk
Hierarchy-based chunks from a GAEB file, ready to embed, or already embedded: pass a model and the chunks come back vectorized in the same call. You control the chunk level and the inherited context, under a versioned strategy contract.
Embeddings
Text to vector. A drop-in for the OpenAI Embeddings API, with Matryoshka output dimensions from 1024 down to 128.
Hybrid search
Dense vectors and BM25 lexical retrieval, fused with reciprocal rank fusion. The lexical leg keeps exact codes and units honest.
Rerank
Reorder a candidate pool by relevance to a query, returned as a clean ranked list with scores.
A general model smears compound words and codes into an average; it goes blind to the token that decides the match. flinq keeps it exact. Pick a query:
Start in two minutes
Section titled “Start in two minutes”Get integrated
The full integration is under ten lines. Start with the Quickstart.
Try it live
Explore every endpoint and send real requests in the API reference.
Today flinq is the understanding layer: embeddings, hybrid search and rerank for the European construction domain, with German as the deepest-trained language. The direction is a vertical foundation model for the built environment, trained on the language of construction across European languages. BauSatz, the open benchmark, is how we keep ourselves honest on the way.