Vibe Coding Is Leaking Vulnerabilities Into Your Codebase
53% of teams shipping AI-generated code later found security issues that passed initial review. Here's what's going wrong and how to fix it.
Retrieval-Augmented Generation is the most practical AI pattern of 2025. Here's a minimal but production-ready implementation using LangChain, ChromaDB, and the OpenAI API.
Muunsparks
2025-02-28
RAG — Retrieval-Augmented Generation — solves the most common problem with LLMs in production: they don't know about your data.
The pattern is simple: before sending a query to the LLM, retrieve relevant context from your own document store and include it in the prompt.
pip install langchain langchain-openai chromadb pypdf
from langchain.document_loaders import PyPDFLoader, DirectoryLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
loader = DirectoryLoader('./docs', glob='**/*.pdf', loader_cls=PyPDFLoader)
documents = loader.load()
splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
chunks = splitter.split_documents(documents)
from langchain_openai import OpenAIEmbeddings
from langchain.vectorstores import Chroma
embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
vectorstore = Chroma.from_documents(documents=chunks, embedding=embeddings)
Add reranking, hybrid search (BM25 + vector), and RAGAS evaluation before going to production.
// RELATED ARTICLES
53% of teams shipping AI-generated code later found security issues that passed initial review. Here's what's going wrong and how to fix it.
Fine-tuned small models now beat GPT-5 on domain tasks at 1/30th the cost. The biggest model is rarely the right one.
RAG solves real problems, but teams reach for it reflexively. Here are the specific scenarios where it makes your system slower, harder to maintain, and dumber.