2024年最新:Windows 11环境下LangChain与Ollama集成开发实战教程
2024年最新:Windows 11环境下LangChain与Ollama集成开发实战教程
引言
在人工智能快速发展的2024年,本地运行大语言模型(LLM)已成为开发者必备技能。本教程将手把手教你如何在Windows 11环境下,使用LangChain框架与Ollama本地大模型服务进行集成开发。无需昂贵的云计算资源,你的普通PC就能跑起来!
准备工作
环境要求
- Windows 11系统(版本22H2或更高)
- Python 3.10或更高版本
- 至少16GB内存(推荐32GB以获得更好体验)
- NVIDIA显卡(可选,用于加速)
需要安装的软件
第一步:安装Ollama并下载模型
1.1 安装Ollama
打开PowerShell(管理员权限),执行以下命令:
# 下载并安装Ollama
Invoke-WebRequest -Uri "https://ollama.ai/download/OllamaSetup.exe" -OutFile "OllamaSetup.exe"
.\OllamaSetup.exe
安装完成后,验证是否安装成功:
ollama --version
# 应该输出类似: ollama version v0.1.20
1.2 下载LLM模型
Ollama支持多种模型,我们以轻量级的llama2
为例:
# 下载7B参数的Llama2模型(约4GB)
ollama pull llama2
# 也可以选择更小的模型(首次运行推荐)
ollama pull gemma:2b
注意:首次下载可能需要较长时间,取决于你的网络速度。国内用户可以考虑配置镜像源加速。
第二步:设置Python开发环境
2.1 创建虚拟环境
# 创建项目目录并进入
mkdir langchain-ollama-demo && cd langchain-ollama-demo
# 创建Python虚拟环境
python -m venv venv
# 激活虚拟环境
.\venv\Scripts\activate
2.2 安装必要依赖
pip install langchain langchain-community python-dotenv
第三步:编写LangChain集成代码
创建一个main.py
文件,内容如下:
from langchain_community.llms import Ollama
from langchain.prompts import ChatPromptTemplate
from langchain.schema.runnable import RunnablePassthrough
# 初始化Ollama LLM连接(默认使用本地11434端口)
llm = Ollama(model="llama2")
# 定义提示模板
prompt = ChatPromptTemplate.from_template(
"请用中文回答以下问题:\n\n问题: {question}\n\n回答:"
)
# 创建处理链
chain = {"question": RunnablePassthrough()} | prompt | llm
# 提问并获取回答
response = chain.invoke("请解释人工智能的基本概念")
print(response)
代码解释:
Ollama(model="llame2")
– 连接到本地运行的Llama2模型实例ChatPromptTemplate
– LangChain的提示模板工具,用于结构化输入RunnablePassthrough()
– LangChain的数据传递组件,保持输入原样传递
第四步:运行和测试
确保Ollama服务正在运行(通常安装后会自动启动),然后在终端执行:
python main.py
你应该会看到类似这样的输出:
人工智能(AI)是指由计算机系统执行的智能行为... [详细解释]
高级用法示例
让我们创建一个更复杂的问答系统:
from langchain_community.document_loaders import WebBaseLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.vectorstores import FAISS
from langchain_community.embeddings import OllamaEmbeddings
# (1)加载网页内容
loader = WebBaseLoader("https://zh.wikipedia.org/wiki/人工智能")
docs = loader.load()
# (2)分割文本
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
splits = text_splitter.split_documents(docs)
# (3)创建向量数据库
embeddings = OllamaEmbeddings(model="llame2")
vectorstore = FAISS.from_documents(splits, embeddings)
# (4)创建问答链
retriever = vectorstore.as_retriever()
qa_prompt = """基于以下上下文回答问题:
{context}
问题: {question}
答案:"""
prompt = ChatPromptTemplate.from_template(qa_prompt)
qa_chain = (
{"context": retriever, "question": RunnablePassthrough()}
| prompt
| llm
)
print(qa_chain.invoke("人工智能的主要发展历程是怎样的?"))
这个示例展示了:
1. 网页内容抓取 – WebBaseLoader获取维基百科内容
2. 文本处理 – RecursiveCharacterTextSplitter分割长文本
3. 向量搜索 – FAISS实现本地向量相似度搜索
4. 增强生成 – RAG(检索增强生成)模式
常见问题解决
Q1: Ollama服务无法启动
解决方案:
1. powershell
net stop ollam
net start ollam
### Q2: Python连接报错
**检查步骤**:
1. ```python
import requests
print(requests.get("http://localhost:11434").status_code) #应该返回200
Q3: GPU未有效利用
优化方法:
1. powershell
ollam pull llama2 –gpu
setx OLLAMANOCUDA “0”
“`
总结
通过本教程你学会了:
✅ Windows下部署Ollma本地LLM服务
✅ LangChain基本组件的使用方法
✅ RAG架构的实际实现
建议下一步尝试:
– [ ] LangChain的Agent功能开发
– [ ] Fine-tuning本地模型
– [ ] Web界面集成(Gradio/Streamlit)
完整代码已上传Github:项目地址
2024年更新说明:本文已适配最新LangChain0.1.x API和Ollamav0.9+版本