2024年Windows开发者必备:LangChain+Ollama构建本地AI代理全流程

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

2024年Windows开发者必备:LangChain+Ollama构建本地AI代理全流程

引言

在AI技术快速发展的2024年,能够构建本地运行的AI代理已成为开发者的重要技能。本文将带你使用LangChain框架和Ollama开源项目,在Windows系统上搭建一个完全本地的AI开发环境。无需依赖云端API,你的电脑就能运行强大的语言模型!

准备工作

环境要求

  • Windows 10/11 64位系统
  • Python 3.8或更高版本
  • 至少8GB内存(推荐16GB以上)
  • NVIDIA显卡(可选,用于加速)

需要安装的软件

  1. Python
  2. Git
  3. Visual Studio Build Tools(包含C++编译环境)

第一步:安装Ollama本地模型服务

Ollama是一个简化大型语言模型本地运行的工具,支持多种开源模型。

1. 下载并安装Ollama

打开PowerShell执行以下命令:

代码片段
# 下载Ollama Windows版
Invoke-WebRequest -Uri "https://ollama.ai/download/OllamaSetup.exe" -OutFile "OllamaSetup.exe"

# 安装Ollama
.\OllamaSetup.exe

安装完成后,Ollama会作为服务自动运行。

2. 下载语言模型

Ollama支持多种模型,我们以轻量级的gemma:2b为例:

代码片段
# 下载Gemma 2B模型(约1.5GB)
ollama pull gemma:2b

# 验证是否安装成功
ollama list

常见可选模型:
gemma:7b:更强的Gemma版本(需要更多内存)
mistral:优秀的开源7B模型
llama2:Meta的Llama2系列

注意:首次运行会下载较大的模型文件,请确保网络畅通。

第二步:设置Python环境

1. 创建虚拟环境

代码片段
# 创建项目目录
mkdir ai-agent && cd ai-agent

# 创建Python虚拟环境
python -m venv venv

# 激活虚拟环境
.\venv\Scripts\activate

2. 安装必要依赖

代码片段
pip install langchain langchain-community python-dotenv requests beautifulsoup4

主要包说明:
langchain: AI应用开发框架核心库
langchain-community: LangChain的社区集成包
python-dotenv: 管理环境变量
requestsbeautifulsoup4: Web访问和HTML解析

第三步:构建LangChain AI代理

创建一个ai_agent.py文件,内容如下:

代码片段
from langchain_community.llms import Ollama
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain, SimpleSequentialChain

# 初始化Ollama连接 - Gemma2B模型默认运行在11434端口
llm = Ollama(base_url="http://localhost:11434", model="gemma:2b")

# 定义第一个提示模板 - 生成产品创意
product_prompt = PromptTemplate(
    input_variables=["industry"],
    template="作为{industry}行业的专家,请生成5个创新的产品创意。"
)

# 定义第二个提示模板 - SWOT分析
swot_prompt = PromptTemplate(
    input_variables=["product"],
    template="对以下产品进行SWOT分析:\n产品:{product}"
)

# 创建两个链式任务链
product_chain = LLMChain(llm=llm, prompt=product_prompt)
swot_chain = LLMChain(llm=llm, prompt=swot_prompt)

# 组合成顺序链 - product_chain的输出会作为swot_chain的输入 
overall_chain = SimpleSequentialChain(chains=[product_chain, swot_chain], verbose=True)

# 执行链式调用示例 - IT行业产品创意→SWOT分析 
result = overall_chain.run("IT技术")
print(result)

代码说明:
1. Ollama类连接本地运行的LLM服务(默认端口11434)
2. PromptTemplate定义了两个任务模板:生成创意和SWOT分析
3. SimpleSequentialChain将两个任务串联起来形成工作流

第四步:高级功能扩展

RAG(检索增强生成)示例

创建一个增强版代理,能够结合自定义知识库回答问题:

代码片段
from langchain.document_loaders import WebBaseLoader 
from langchain.text_splitter import RecursiveCharacterTextSplitter 
from langchain.embeddings import OllamaEmbeddings 
from langchain.vectorstores import FAISS 

# Step1:加载并分割文档 
loader = WebBaseLoader(["https://en.wikipedia.org/wiki/Large_language_model"])
docs = loader.load()
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
splits = text_splitter.split_documents(docs)

# Step2:创建向量数据库 
embeddings = OllamaEmbeddings(base_url="http://localhost:11434", model="gemma:2b")
vectorstore = FAISS.from_documents(documents=splits, embedding=embeddings)

# Step3:创建检索QA链 
from langchain.chains import RetrievalQA 

qa_chain = RetrievalQA.from_chain_type(
    llm,
    retriever=vectorstore.as_retriever(),
    chain_type="stuff"
)

query = "什么是大语言模型的transformer架构?"
result = qa_chain.invoke({"query": query})
print(result["result"])

这个示例展示了如何:
1.从网页抓取内容并分割成块
2.使用本地嵌入模型(OllamaEmbeddings)生成向量
3.构建FAISS向量数据库实现高效检索
4.创建问答链回答特定领域问题

第五步:优化与调试

性能优化技巧

1.批处理请求

代码片段
inputs = [{"industry": "医疗"}, {"industry": "教育"}, {"industry": "金融"}]
results = product_chain.apply(inputs) #同时处理多个输入 

2.调整温度参数控制输出随机性:

代码片段
llm = Ollama(model="gemma:2b", temperature=0.7) #0~1之间,越高越有创造性 

3.使用GPU加速(如有NVIDIA显卡):

代码片段
ollama pull gemma:7b --gpu #指定--gpu参数启用CUDA加速 

常见问题解决

Q1: Ollama服务无法启动
解决方案

代码片段
net stop ollama && net start ollama #重启服务  
ollama serve #手动启动查看日志  

Q2: Python连接超时
检查
1.Ollamas是否运行(tasklist | findstr ollam)
2.防火墙是否放行11434端口

Q3:内存不足错误
尝试更小的模型:

代码片段
ollaga pull gemma:2b-instruct #更轻量版本  

总结

通过本文我们完成了:
✅ Windows环境下搭建本地AI开发栈
✅ LangChain+Olla工作流构建
✅ RAG等高级应用实现

完整项目代码可在GitHub获取:

代码片段
git clone https://github.com/example/langchaillam-windows-guide.git  

下一步建议:
•尝试集成AutoGen实现多代理协作
•探索Llava等视觉语言多模态模型
•部署为FastAPI服务供其他应用调用

2024年是本地AI爆发的一年,掌握这些技能将让你在开发者中脱颖而出!

原创 高质量