【LangChain专栏】LangChain 调用Ollama本地大模型
本文介绍了如何使用Ollama工具在本地部署大语言模型,并通过LangChain进行调用开发AI应用。主要内容包括:Ollama的特点(数据隐私可控、无需外网依赖等)、环境安装配置、基础调用方法、结合PromptTemplate的使用技巧,以及如何通过FastAPI构建简单对话接口。文章还提供了常见问题解决方案,如模型响应慢的处理方法和查看已安装模型的方式。该方案为开发者提供了本地运行大模型的完整
·
文章目录
随着本地大模型生态逐渐成熟,越来越多开发者开始使用本地部署的模型来构建 AI 应用。相比调用云端 API,本地模型具备:
• 数据隐私可控
• 无需外网依赖
• 成本更低
• 可定制化强
一、什么是Ollama?
Ollama 是一个本地运行大语言模型的工具,支持一键下载并运行模型,如:
• Llama 3
• Mistral
• Qwen
特点:
• 安装简单(支持 macOS / Linux / Windows)
• 支持 REST API
• 支持模型管理与自定义 Modelfile
• 资源占用相对可控
二、环境准备
1.安装Ollama
官网下载安装即可,安装完成后验证:
ollama --version下载模型:
ollama pull llama3 启动模型:
ollama run llama3 若能正常对话,说明模型运行成功。
2.安装Python 依赖
pip install langchain langchain-community langchain-core
如果需要 Web API:
pip install fastapi uvicorn
三、LangChain 调用 Ollama
1.基础调用示例
from langchain_community.llms import Ollama
llm = Ollama(
model="qwen3:4b"
)
response = llm.invoke("请用一句话介绍人工智能")
print(response)
执行后,LangChain 会调用本地 Ollama 服务,并返回模型生成结果。
2.使用Chat模型方式
from langchain_community.chat_models import ChatOllama
from langchain_core.messages import HumanMessage
chat = ChatOllama(
model="qwen3:4b"
)
response = chat.invoke([
HumanMessage(content="帮我写一段Java代码实现冒泡排序")
])
print(response.content)
适合多轮对话场景。
四、结合PromptTemplate 使用
from langchain_classic.chains.llm import LLMChain
from langchain_community.llms import Ollama
from langchain_core.prompts import PromptTemplate
template = """
你是一名专业程序员,请回答以下问题:
问题:{question}
"""
prompt = PromptTemplate(
input_variables=["question"],
template=template
)
llm = Ollama(model="qwen3:4b")
chain = LLMChain(llm=llm, prompt=prompt)
result = chain.invoke({"question": "什么是线程安全?"})
print(result["text"])
五、构建一个简单对话接口(FastAPI)
from fastapi import FastAPI
from langchain_community.chat_models import ChatOllama
from langchain_core.messages import HumanMessage
app = FastAPI()
chat = ChatOllama(model="llama3")
@app.post("/chat")
def chat_api(question: str):
response = chat.invoke([HumanMessage(content=question)])
return {"answer": response.content}
启动:
uvicorn main:app --reload
访问:
POST http://localhost:8000/chat
即可调用本地大模型接口。
六、常见问题
1.模型响应慢怎么办?
优化方式:
• 选择参数较小的模型(如 7B)
• 使用量化模型(Q4/Q8)
• 增加内存
• 调整 num_ctx
2.如何查看已安装模型?
ollama list
3.mac m1安装ollama安装包dmg失败
当前版本不支持m1架构,可切换到其他版本安装
https://github.com/ollama/ollama/releases
更多推荐
所有评论(0)