What it is
LLM integration means connecting a large language model (software that reads and writes text) to the systems your business already runs. RAG is the most common form of it. The system searches your own documents for the passages that answer a question, and the model writes the answer from those passages and cites them.
We provide RAG consulting and development for Australian businesses that cannot send their documents to a public AI service. The model and the index run in your own cloud account or on your own servers. On-prem AI deployment covers how that hosting works.
Where the work goes
Most of a RAG build is search rather than the model. A library of policy wordings, a set of loan agreements or ten years of job files holds long documents. Those documents carry defined terms, cross references and versions that replace each other. A search that cuts them into even blocks of text loses the clause structure, and the model then answers from the wrong passage.
Architecture
The ingestion pipeline runs in LlamaIndex. It extracts the text and splits each document along its own structure: sections, clauses, schedules and defined terms. Each passage keeps its document, date, client, version and permissions. An embedding model turns each passage into a vector, a list of numbers that captures its meaning.
Search is hybrid. Vector search in PostgreSQL with pgvector or in Qdrant finds passages by meaning. Keyword search in Elasticsearch finds exact terms, because a policy number or a clause reference has to match exactly. Filters narrow the search to one client, one fund or one job before the model reads anything. The model runs on vLLM inside your environment and writes the answer from the top passages.
Superseded documents stay in the index and are marked as superseded. A question about the current terms gets the current version. A question about the terms that applied in 2023 gets the 2023 version.
Citations and permissions
Each answer names the document and the page or clause it came from, and the reader can open it in one click. A credit analyst, an underwriter or a project manager can then check the answer before acting on it. When the documents do not hold the answer, the system says so and shows the closest passages it found.
Permissions are read from the system each document lives in and stored on each passage. The search applies them as a filter on every query. Deal team folders, client files and HR records stay inside the groups that own them.
Evaluation and logging
We build a set of real questions from your staff before go live. Each question has an answer and a source that a person in the business agrees is correct. An evaluation harness is a test program that scores the system against that set. Ours follows the Ragas style and scores retrieval on whether the right passage came back. It scores the answer on whether it matches and on whether every claim in it is supported by a cited passage. The harness runs in pytest on every change to the documents, the search or the model. A change that scores lower does not go live.
Langfuse records every question, the passages retrieved, the model version, the answer and the person who asked. Your team can replay a bad answer and see which step failed.
In practice
For a Sydney builder on Procore we made about 10,000 job files, site notes and tenders askable on a private server they rent. A private model answers the questions, and every answer cites the documents behind it. Procore stayed the system of record, and nothing was migrated out of it. The same document layer later fed their estimating automations. The document search page covers this use in more detail.
Beyond search
LLM integration also covers work where the model reads and writes inside a system rather than answering a person. One example is a claim file summary written into the claims system. Others are a comparison of two agreements, or details from an email posted to the CRM. When that work runs as a process with several steps and review points, it becomes workflow automation.
Handover
Your team gets the ingestion and sync code, the evaluation set and a runbook for adding a new document source, in your own repositories.