2024年最新:Windows 11环境下LangChain与Ollama集成开发实战教程

云信安装大师
90
AI 质量分
11 5 月, 2025
2 分钟阅读
0 阅读

2024年最新:Windows 11环境下LangChain与Ollama集成开发实战教程

引言

在人工智能快速发展的2024年,本地运行大语言模型(LLM)已成为开发者必备技能。本教程将手把手教你如何在Windows 11环境下,使用LangChain框架与Ollama本地大模型服务进行集成开发。无需昂贵的云计算资源,你的普通PC就能跑起来!

准备工作

环境要求

  • Windows 11系统(版本22H2或更高)
  • Python 3.10或更高版本
  • 至少16GB内存(推荐32GB以获得更好体验)
  • NVIDIA显卡(可选,用于加速)

需要安装的软件

  1. Python
  2. Git
  3. Ollama

第一步:安装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)

代码解释

  1. Ollama(model="llame2") – 连接到本地运行的Llama2模型实例
  2. ChatPromptTemplate – LangChain的提示模板工具,用于结构化输入
  3. 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+版本

原创 高质量