跳到主要内容

从零到一:LlamaIndex 企业知识库

本教程从零构建一个基于 LlamaIndex 的企业文档问答系统。

项目概述

功能

  • 多格式文档导入(PDF、Word、Markdown)
  • 自动分块与向量化
  • 语义检索 + 关键词检索(Hybrid)
  • 可选 Reranker 提升准确度
  • API 接口

技术栈

  • 框架:LlamaIndex
  • Embedding:OpenAI 或 Ollama nomic-embed-text
  • 向量库:Chroma 或 Qdrant
  • LLM:OpenAI 或 Ollama

第一步:环境准备

mkdir enterprise-knowledge && cd enterprise-knowledge
python -m venv venv
source venv/bin/activate
pip install llama-index llama-index-llms-ollama llama-index-embeddings-ollama chromadb

第二步:文档加载与索引

from llama_index.core import SimpleDirectoryReader, VectorStoreIndex, Settings
from llama_index.llms.ollama import Ollama
from llama_index.embeddings.ollama import OllamaEmbedding

Settings.llm = Ollama(model="llama3")
Settings.embed_model = OllamaEmbedding(model="nomic-embed-text")

documents = SimpleDirectoryReader("docs").load_data()
index = VectorStoreIndex.from_documents(documents)
index.storage_context.persist(persist_dir="./storage")

第三步:查询引擎

query_engine = index.as_query_engine(similarity_top_k=5)
response = query_engine.query("公司请假流程是什么?")
print(response)

第四步:封装 API

使用 FastAPI 暴露 /query/index(增量索引)接口。

第五步:部署

  • 使用 Docker 打包应用与向量库
  • 配置 Nginx 反向代理
  • 可选:接入鉴权、限流、日志

相关文档