mcpRAG是一个使用开源嵌入、开源向量数据库和Gemini LLM构建的RAG系统,能基于文本文件实现高效的检索增强生成功能,为信息查询和答案生成提供有力支持。
在这个项目中,所有文本文件会被分块处理,每个分块包含文件名、分块ID和分块文本,并以JSON格式存储在本地。每个分块会被转换为嵌入并收集到列表中。
这些嵌入列表通过FAISS进行索引,并本地存储。当进行查询时,使用nomic embeddings对查询内容生成嵌入,并在FAISS索引中搜索相关位置(分块的索引)。这些索引用于从JSON文件中获取实际文本。
然后将这些文本传递给LLM,并结合查询内容来生成答案。此外,还可以向现有索引中追加额外文本,并通过加载存储的索引和嵌入文件,在更新后的索引上运行新的查询。