从零到一: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 反向代理
- 可选:接入鉴权、限流、日志