README
🚀 共享知识库
本项目通过整合大型语言模型(LLM)与本地知识库,实现更智能的信息检索与处理。它能自动加载指定文件并分块,将文本转换为向量存储,还能基于向量相似度快速定位相关文档片段,极大提升信息检索效率。
🚀 快速开始
HNSWLib(默认)
无需额外环境准备,直接运行:
./rebuild-vector-store-hnsw.sh
Weaviate
- 启动Docker容器:
./start-weaviate.sh
- 重建向量存储:
./rebuild-vector-store-weaviate.sh
- 查看服务状态:
curl http://localhost:8080/v1/.well-known/ready
- 停止服务:
docker-compose down
✨ 主要特性
核心功能
- 知识库构建:自动从指定目录加载Markdown文件(.md, .mdx)和文本文件(.txt),并将其内容进行分块处理。
- 向量化存储:利用OpenAI API将文本数据转换为高维向量,并支持多种向量存储方案。
- 智能检索:通过向量相似度计算,快速定位与查询问题最相关的文档片段。
检索增强功能
系统提供丰富的结果信息,包括但不限于:
- 位置标记:精确到段落级别的内容定位。
- 文档类型:支持Markdown、文本文件等多种格式识别。
- 内容摘要:自动生成简洁的内容概览。
- 关键词提取:智能抽取核心主题词汇。
示例输出格式如下:
{
"hits": [
{
"id": "chunk_123",
"score": 0.95,
"content": "这是一段示例文本内容...",
"position": [42, 56],
"document_type": "Markdown",
"summary": "这段文字主要讲述了...",
"keywords": ["关键词1", "关键词2"]
}
]
}
这些扩展信息极大提升了LLM对检索结果的理解与利用效率。
📦 安装指南
通过以下环境变量进行系统配置:
| 变量名 | 描述 | 默认值 | |--------|------|--------| | KNOWLEDGE_BASE_PATH | 指定知识库根目录 | 必填 | | OPENAI_API_KEY | OpenAI API认证密钥 | 必填 | | SIMILARITY_THRESHOLD | 检索相似度阈值(0 - 1) | 0.7 | | CHUNK_SIZE | 分块大小 | 1000 | | CHUNK_OVERLAP | 块间重叠字数 | 200 | | VECTOR_STORE_TYPE | 存储引擎类型 | hnswlib | | VECTOR_STORE_CONFIG | 存储器配置参数 | {} |
🔧 技术细节
技术架构
系统采用模块化设计,核心组件包括:
- 知识库管理器:负责文档加载、分块与向量化处理。
- 向量存储引擎:支持多种存储方案,便于灵活扩展。
- 检索服务:基于向量相似度进行高效查询。
支持的向量存储方案
- HNSWLib(默认):轻量级本地存储方案。
- Chroma:开源向量数据库。
- Pinecone:托管式向量服务(需API密钥)。
- Milvus:分布式向量检索引擎。
- Weaviate:模式优先的知识图谱存储(需Docker环境)。
📄 许可证
本项目遵循[ Apache License 2.0 ]协议。
🤝 项目贡献
欢迎社区参与改进与优化,具体贡献指南请参考[ CONTRIBUTION.md ]。
扫码联系在线客服