I used LangChain to build an RAG system, but I hit a wall right from document chunking.
1. Using RecursiveCharacterTextSplitter with 500-character chunks broke the context, making search quality terrible.
2. For the embedding model, I debated between bge-large-ko and Korean RoBERTa, and ended up going with bge.
3. Between FAISS and Chroma for the retriever, I chose FAISS because it was faster.
Conclusion: LangChain itself is convenient, but the chunking strategy is what really matters. I found that splitting by Markdown headers worked much better.
Anyone using a different approach?