为什么要在本地跑?
数据安全是第一考量。比起把企业文档上传到 云端 AI Agent 服务,Ollama 让所有推理都在内网完成,Zero Data Leakage。
安装 Ollama
curl -fsSL https://ollama.ai/install.sh | sh
ollama pull llama3.2
加载知识库
import ollama
from langchain.document_loaders import DirectoryLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
# 加载文档
loader = DirectoryLoader('./docs/', glob='**/*.md')
docs = loader.load()
# 文本分割
splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
split = splitter.split_documents(docs)
# 嵌入并存储
for doc in split:
embedding = ollama.embeddings(model='nomic-embed-text', prompt=doc.page_content)
构建问答接口
def ask(question):
ctx = ollama.search(query=question, top_k=5)
response = ollama.chat(
model='llama3.2',
messages=[{'role': 'user', 'content': f'{ctx} Q: {question}'}]
)
return response['message']['content']
这个方案的核心思想是 RAG(Retrieval-Augmented Generation),与 Kubernetes Pod 故障排查的思路一样——先用检索定位资源,再针对性处理。
关键要点
- 模型选择:7B 参数够用,70B 精度更高但慢 3 倍
- 文档切割:chunk_size 500-800 效果最好
- 嵌入模型:nomic-embed-text 免费且够用




