Skip to content

The understanding layer for the built environment

The understanding layer for AEC

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.

change two lines
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.

Measured in the open

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 →

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.

POST /v1/extract

Extract

A GAEB file in, its faithful bill-of-quantities tree out: groups, positions, remarks, quantities and prices. Tolerant parsing with explicit warnings.

POST /v1/chunk

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.

POST /v1/embeddings

Embeddings

Text to vector. A drop-in for the OpenAI Embeddings API, with Matryoshka output dimensions from 1024 down to 128.

POST /v1/search

Hybrid search

Dense vectors and BM25 lexical retrieval, fused with reciprocal rank fusion. The lexical leg keeps exact codes and units honest.

POST /v1/rerank

Rerank

Reorder a candidate pool by relevance to a query, returned as a clean ranked list with scores.

See it match

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:

flinq exact line item
    generic embedder approximately right

      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.

      Where this is going

      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.