Artificial intelligencePersonal project
LLM assistant with long-term memory
A language-model assistant with persistent memory and hybrid retrieval — semantic and keyword — over a graph-based store.
- Python
- Neo4j
- Embeddings
- TF-IDF
- LLM
Chatbots and AI assistants on your data
An assistant that answers using your organisation's information — manuals, contracts, policies, catalogues — showing which document each answer comes from, respecting permissions and measuring how accurate it is.
Updated:
It is spread across folders, emails and PDFs. Asking a colleague ends up faster than searching.
A model without access to your documents confidently says things that are not true in your company.
You do not want to upload internal documents to a public tool or let people see what is not meant for them.
Without evaluation, an assistant seems to work until it fails in front of a customer.
A RAG assistant has four parts. Ingestion: your documents are read, cleaned and split into manageable chunks, keeping metadata such as title, section and date. Index: each chunk is turned into a vector (embedding) representing its meaning and stored alongside a keyword index; combining both searches usually retrieves better than either alone. Retrieval: given a question, the most relevant chunks are fetched, filtered by the user’s permissions. Generation: the model receives the question and those chunks and writes an answer limited to that context, with citations.
The most neglected part of assistants is evaluation. With your team I prepare a set of representative questions with the expected answer and document, and measure two things separately: whether retrieval finds the right passage and whether the final answer is faithful to it. When something fails, we then know whether to improve document preparation, search or the instructions to the model.
I define with you which documents go in, who can query what and where data and usage logs are stored. Permissions are applied at retrieval, not at the end, so an unauthorised chunk never reaches the model. I log queries to detect unanswered questions, but you decide what is stored and for how long.
As a personal project I built an assistant with long-term memory that combines semantic and keyword retrieval over a graph-based store (Neo4j). It is an experimentation project, not a client deployment, and its page explains decisions and limits.
Reading PDFs, Word files, web pages and exports; cleaning, chunking and updating when documents change.
Semantic and keyword search over your documents; each answer shows the passages it relies on.
Permissions per collection or role so each person only receives information from what they may consult.
A set of test questions with expected answers, simple metrics and a report on where it fails.
Your own interface, a widget for your website or connection to internal tools (for example a messaging channel or your intranet).
Which questions it must answer, who will use it, which documents are in and which are out.
Inventory of sources, formats and quality. Answer quality depends more on this than on the chosen model.
Chunking, embeddings and hybrid search; tests that the right passages appear among the top results.
Instructions to answer only from the retrieved context, cite the source and say "I don't know" when there is no basis.
Tests with real questions, gradual rollout, logging of unanswered queries and periodic review.
"What is the process to approve spending above X?" with a link to the exact section of the manual.
Answers based on product help and the history of resolved tickets.
Locate clauses, dates or conditions and show the source paragraph so it can be verified.
Answer product questions using the real catalogue, without inventing features.
RAG (retrieval-augmented generation) means that, before answering, the system searches your documents for relevant passages and gives them to the model as context. The answer therefore relies on your information and can cite its source, rather than depending on what the model remembers from training.
It depends on the provider and the contract. Before starting I review the terms of the services involved, configure the options that prevent your data being used for training and, if needed, propose alternatives where data does not leave your infrastructure.
It cannot be stopped completely. It is reduced by limiting the answer to the retrieved context, requiring source citations, letting it say "I don't know" and evaluating with test questions. Citations also let you check any claim.
Each document is tied to a collection or role, and retrieval only searches what the user can see. It is designed in from the start because adding it later is hard.
Yes. It can be offered as a web widget, a standalone interface or connected to internal channels through an API. The best option depends on who uses it and where.
Artificial intelligencePersonal project
A language-model assistant with persistent memory and hybrid retrieval — semantic and keyword — over a graph-based store.
Find where AI adds value in your operations and take it to production with human oversight.
View serviceTurn manual, repetitive tasks into scheduled, traceable and maintainable workflows.
View serviceReliable pipelines, clear models and quality tests so you can decide with data you trust.
View serviceForecasts and classifications honestly evaluated against simple alternatives.
View serviceA first conversation is enough to know whether it makes sense and where to start.