llm-search是一个强大的基于大语言模型(LLM)的本地文档查询系统,由GitHub用户snexus开发。该项目旨在提供一个便捷的问答(RAG)系统,通过简单的YAML配置即可与多个本地文档集合进行交互。除了基本的LLM检索增强生成(RAG)功能外,llm-search还在系统的各个组件上做了特别优化,包括更好的文档解析、混合搜索、HyDE增强搜索、聊天历史、深度链接、重新排序以及自定义嵌入等功能。
llm-search具有以下主要特性:
支持多种文档格式:
支持多个文档集合,可按集合筛选结果
增量更新嵌入,无需重新索引整个文档库
使用ChromaDB作为向量数据库存储文档嵌入
支持多种嵌入模型:
使用SPLADE生成稀疏嵌入,实现混合搜索(稀疏+密集)
支持"检索和重排序"策略进行语义搜索
支持HyDE(假设性文档嵌入)技术
支持多查询功能,灵感来自RAG Fusion
可选的聊天历史和问题上下文化
支持多种LLM模型:
通过OpenAI API与LiteLLM和Ollama互操作
其他功能:
项目GitHub仓库: https://github.com/snexus/llm-search
Google Colab笔记本: https://githubtocolab.com/snexus/llm-search/blob/main/notebooks/llmsearch_google_colab_demo.ipynb
配置示例: https://github.com/snexus/llm-search/tree/main/sample_templates
源代码: https://github.com/snexus/llm-search/tree/main/src/llmsearch
克隆项目仓库:
git clone https://github.com/snexus/llm-search.git
安装依赖:
pip install -r requirements.txt
配置环境变量: 复制.env_template文件并重命名为.env,然后填写必要的API密钥和配置。
运行CLI界面:
python -m llmsearch.cli
运行Web界面:
python -m llmsearch.app
llm-search是一个开源项目,欢迎贡献代码、报告问题或提出新功能建议。您可以通过以下方式参与: