1. 文件文本嵌入
- 文本向量化:使用深度学习模型(如 BERT、OpenAI Embeddings)将文本嵌入成高维向量,使其可以通过向量检索进行相似度匹配。这是知识库实现快速检索的基础,适用于各种文本类型,如文档、网页、FAQ等。
- 多语言支持:针对不同语言的文本,使用相应的嵌入模型,确保多语言检索的准确性。
- 数据预处理:对文件中的文本进行清洗、分词、去噪等操作,为嵌入生成高质量的向量。
- 上下文感知嵌入:确保嵌入模型能识别文本中的上下文,提升对话中回答的准确度。
2. Chunk 检索
- 文档分块(Chunking):将大文档分成更小的块(Chunk),以便提高检索的精度和效率。每个 Chunk 通常是几句话或一段文本,这样可以确保在检索过程中,系统能找到最相关的具体信息,而不是整篇文档。
- Chunk 的嵌入与索引:为每个 Chunk 生成独立的向量,并存储到向量数据库中进行索引。这样可以让系统在检索时,迅速找到与用户查询最相似的 Chunk。

3. 查询优化
- 语义检索:通过语义搜索技术,将用户查询转化为向量,与已嵌入的知识库内容进行相似度匹配。与传统关键字检索相比,语义检索能更好理解用户意图。
- 模糊匹配:即使查询与文档中的表述不完全一致,系统依然能够通过向量相似性返回相关结果。
- 搜索结果重排序:(todo)对返回结果进行重新排序,确保最相关的答案排在最前面。这通常基于向量相似度分数或其他用户交互数据(如点击率)。

4. 文档更新与管理
- 实时更新:支持知识库的动态更新,保证最新信息可以及时被检索到。自动化的文档上传与嵌入更新流程,确保知识库内容始终是最新的。
- 文档类型支持:知识库通常支持多种文档格式,包括 PDF、Word、Markdown、纯文本等,确保能够从不同的文档源导入知识。
- 元数据管理:(todo)为文档和 Chunk 添加元数据(如创建时间、文档类型、作者等),使系统可以通过元数据进行更精确的检索。
5. 知识库问答
- 基于文档的 QA 系统:通过检索出的文本 Chunk,结合 GPT 等模型,生成直接的答案,回答用户的问题。这种方法通常能提供基于事实、准确的回答。
- 逐步问答与上下文跟踪:系统能够在连续对话中保留上下文,提供更连贯的回答,并根据之前的对话调整检索结果。
6. 扩展与集成
- 外部数据源集成:可以将知识库与外部数据源(如数据库、API)集成,提供动态的数据查询支持。
- 向量数据库:(todo)使用像 FAISS、Milvus、Pinecone 这样的向量数据库,能够有效管理和检索大规模的嵌入数据。 :::warning 🚧 开发中 :::
知识库详细设置
下面是关于知识库设置的详细配置:文档
以下是文档和解析功能的详细介绍,包括上传文档、文档解析以及相关操作的配置:1. 上传文档
用户可以将各种格式的文档上传到知识库中。支持的文档类型包括:- Markdown:用于轻量级标记语言文档,易于阅读和编辑。
- PDF:便于保存格式固定的文档,适合长篇文章和报告。
- EPUB:电子书格式,支持多种设备阅读。
- DOCX:Microsoft Word 文档,广泛用于文本编辑和排版。
2. 文档解析
上传的文档需要进行解析,以便将其内容提取并存储到知识库中。解析过程可进行以下配置:3. 启动解析
一旦配置完成,用户可以启动解析。解析任务将在服务器端运行,系统会执行以下步骤:- 读取文档:加载上传的文档,进行格式解析。
- 提取内容:根据配置的区块大小、区块重叠和分隔符,将文档内容拆分成多个文本块。
- 嵌入生成:调用 AI 模型为每个文本块生成向量嵌入,以便后续的检索和查询使用。
4. 重新解析或删除文档
- 重新解析:用户可以随时选择重新解析某个文档,更新其配置或内容。这将重新执行解析过程,并替换旧的文档块。
- 删除文档:用户可以删除不再需要的文档,系统将自动删除与之关联的所有文档块。这确保了知识库内容的整洁和准确性。
检索测试
检索测试功能用于验证知识库的检索效果和准确性,确保系统能够有效地从知识库中获取相关信息。以下是该功能的详细参数介绍:功能流程:
- 输入:用户在输入框中输入查询内容。
- 相似度计算:系统将用户输入文本向量化,并与知识库中所有文本块进行相似度计算。
- 过滤:根据设定的相似度阈值,过滤掉相似度低于阈值的文本块。
- 排序:对剩余的文本块进行相似度排序,返回最相关的结果。
- 返回结果:系统根据“前多少”的设置,返回指定数量的检索结果。