开启左侧

【LangChain专栏】LangChain 调用Ollama本地大模型

[复制链接]
创想小编 发表于 4 小时前 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
作者:ZWZhangYu
文章目录

    一、什么是Ollama?二、环境准备
      1.安装Ollama2.安装Python 依赖
    三、LangChain 调用 Ollama
      1.基础调用示例2.使用Chat模型方式
    四、结合PromptTemplate 使用五、构建一个简单对话接口(FastAPI)六、常见问题
      1.模型响应慢怎么办?2.如何查看已安装模型?3.mac m1安装ollama安装包dmg失败



随着本地大模型生态逐渐成熟,越来越多开发者开始使用本地部署的模型来构建 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 依赖
  1. pip install langchain langchain-community langchain-core
复制代码
如果需要 Web API:
  1. pip install fastapi uvicorn
复制代码
三、LangChain 调用 Ollama

1.基础调用示例
  1. from langchain_community.llms import Ollama
  2. llm = Ollama(model="qwen3:4b")
  3. response = llm.invoke("请用一句话介绍人工智能")
  4. print(response)
复制代码
执行后,LangChain 会调用本地 Ollama 服务,并返回模型生成结果。
2.使用Chat模型方式
  1. from langchain_community.chat_models import ChatOllama
  2. from langchain_core.messages import HumanMessage
  3. chat = ChatOllama(model="qwen3:4b")
  4. response = chat.invoke([
  5.     HumanMessage(content="帮我写一段Java代码实现冒泡排序")])
  6. print(response.content)
复制代码
适合多轮对话场景。
四、结合PromptTemplate 使用
  1. from langchain_classic.chains.llm import LLMChain
  2. from langchain_community.llms import Ollama
  3. from langchain_core.prompts import PromptTemplate
  4. template ="""
  5. 你是一名专业程序员,请回答以下问题:
  6. 问题:{question}"""
  7. prompt = PromptTemplate(input_variables=["question"],
  8.     template=template
  9. )
  10. llm = Ollama(model="qwen3:4b")
  11. chain = LLMChain(llm=llm, prompt=prompt)
  12. result = chain.invoke({"question":"什么是线程安全?"})
  13. print(result["text"])
复制代码
五、构建一个简单对话接口(FastAPI)
  1. from fastapi import FastAPI
  2. from langchain_community.chat_models import ChatOllama
  3. from langchain_core.messages import HumanMessage
  4. app = FastAPI()
  5. chat = ChatOllama(model="llama3")
  6. @app.post("/chat")
  7. def chat_api(question: str):
  8.     response = chat.invoke([HumanMessage(content=question)])return{"answer": response.content}
复制代码
启动:
  1. uvicorn main:app --reload
复制代码
访问:
  1. POST http://localhost:8000/chat
复制代码
即可调用本地大模型接口。
六、常见问题

1.模型响应慢怎么办?

优化方式:
• 选择参数较小的模型(如 7B)
• 使用量化模型(Q4/Q8)
• 增加内存
• 调整 num_ctx
2.如何查看已安装模型?
  1. ollama list
复制代码
3.mac m1安装ollama安装包dmg失败

当前版本不支持m1架构,可切换到其他版本安装
https://github.com/ollama/ollama/releases

原文地址:https://blog.csdn.net/octopus21/article/details/158239124
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行更多+

Powered by Discuz! X3.4© 2001-2013 Discuz Team.( 京ICP备17022993号-3 )