projects

pc builder chatbot

source

2024 · chatbot · rag

ask for a build, get real parts. retrieval over a components catalog.

component catalogs are embedded into chromadb with semantic text per part, and each turn is rewritten against the chat history before retrieval, so follow-ups like "is that cpu enough?" resolve to the component named earlier. gemini answers over the retrieved context.

python · chromadb · langchain · streamlit

problem
people asking for a pc build talk in follow-ups: "what about a cheaper gpu?", "is that cpu enough?". a retriever that sees only the last message has no idea what "that" is.
retrieval
each part in the catalogue is embedded into chromadb with a short description written for search. before retrieval, every turn is rewritten against the chat history so references resolve to the part named earlier.
answers
gemini answers over the retrieved parts only, so every recommendation is something that exists in the catalogue.
the trick
rewrite the question before you search. it fixed more bad answers than any change to the model.