Knowledge Management for Software Solutions
A Retrieval-Augmented Generation prototype helps software teams find distributed technical knowledge and trace every answer back to its source.
Initial situation
Technical knowledge rarely lives in one place. At Endress+Hauser Flowtec, the Software Solutions Research and Development team works with documentation and source code distributed across an internal wiki and Git repositories. Conventional search depends heavily on exact terms and repository structure. This slows down onboarding and everyday engineering work, particularly when an answer is spread across several sources.
Problem statement / Project goal
A language model can produce a fluent answer even when its information is incomplete or wrong. For internal engineering knowledge, that is not enough: an answer must be based on authorised material and lead the reader back to the document or code file that supports it.
This bachelor thesis therefore designed and evaluated a conversational Retrieval-Augmented Generation (RAG) prototype for text-based software knowledge. The goal was to improve how relevant information is found, used and traced without treating the RAG pipeline as a black box. The study compared different ways to prepare documents, retrieve evidence and provide context to the language model.
From distributed technical sources to a grounded answer. Concept illustration; no internal content or system output is shown.
How the system works
The prototype covers the full path from internal source material to a source-linked answer. Its components remain separate so that changes to document processing, retrieval or answer generation can be tested without rebuilding the entire system.
Knowledge preparation
Text from the internal wiki and Git repositories is validated and split into searchable chunks. Each chunk keeps source metadata so it can be traced back to its document. The text is then converted into embeddings and stored in Qdrant.
Retrieval and reranking
A question is embedded and compared with the indexed chunks. The retriever can combine semantic similarity with term-based search. A reranker then reviews the strongest candidates and moves the passages most relevant to the question to the top.
Answer and sources
The language model receives the highest-ranked passages as labelled context. It generates an answer from that material while retaining the source information needed for traceability. The evaluated prototype processes text only.
Solution developed and its benefits
The result is a modular RAG prototype that turns documentation and source-code files into a searchable knowledge base. For each question, it retrieves relevant passages, orders them by relevance and gives the language model a compact set of labelled sources from which to answer.
The prototype provides:
- one conversational entry point for knowledge distributed across documentation and repositories.
- semantic retrieval when a question does not use the exact wording found in the source.
- grounded answers based on retrieved internal material.
- source information that links an answer back to the supporting document or code file.
- modular processing, retrieval and generation components that can be evaluated separately.
- a repeatable evaluation process for comparing changes to the RAG pipeline.
The prototype is a controlled research system rather than a production deployment. Live synchronisation, access control and operational monitoring remain part of the integration roadmap.
Key terms
- Retrieval-Augmented Generation (RAG)A method that retrieves relevant information from a knowledge base before a language model writes its answer.
- ChunkA bounded passage extracted from a document and stored as one searchable unit.
- EmbeddingA numerical representation of text that allows passages with similar meaning to be compared mathematically.
- QdrantThe vector database used to store chunk embeddings and retrieve the vectors closest to a question.
- Dense retrievalSearch based on semantic similarity between the embeddings of a question and the stored chunks.
- Sparse retrievalSearch based on matching words, identifiers and their importance. The experiments use BM25 and BM42.
- Hybrid retrievalA search strategy that combines dense semantic retrieval with sparse term-based retrieval.
- RerankingA second retrieval stage that reorders an initial set of candidate chunks according to their relevance to the question.
- Contextual enrichmentA short, generated description added to a chunk before embedding to clarify where it belongs in its source document.
- Source metadataInformation such as a document title, path or identifier that remains attached to a chunk for retrieval and traceability.
- Grounded answerAn answer supported by retrieved source passages rather than by the language model's general knowledge alone.
- LLM-as-a-judgeA language model used to score generated answers. This study calibrated its answer judge against human labels before comparing configurations.
- RAGASAn evaluation framework that provides metrics for retrieved context and generated answers in RAG systems.
Customer
Endress+Hauser Flowtec AG
Christoph Merian-Ring 4
4153 Reinach BL
Switzerland
Endress+Hauser Flow Switzerland
Team
Leander Coolen
Luca Gisler
Supervision
Daniel Perruchoud
Melanie Mathys
FHNW School of Computer Science