玩转大语言模型——使用langchain和Ollama本地部署大语言模型

news/2025/1/31 12:29:06 标签: 语言模型, langchain, 人工智能

系列文章目录

玩转大语言模型——使用langchain和Ollama本地部署大语言模型
玩转大语言模型——ollama导入huggingface下载的模型
玩转大语言模型——langchain调用ollama视觉多模态语言模型
玩转大语言模型——使用GraphRAG+Ollama构建知识图谱
玩转大语言模型——完美解决GraphRAG构建的知识图谱全为英文的问题


文章目录

  • 系列文章目录
  • 前言
  • 下载安装Ollama
  • 安装模型
  • 测试模型
    • 使用终端调用
    • 使用request直接调用
    • 使用langchain调用Ollama接口
    • 使用langchain调用OpenAI接口


前言

Ollama 是一个开源的大型语言模型服务工具,旨在简化在本地运行大语言模型的过程,降低使用大语言模型的门槛。用户可以在自己的设备上运行模型,无需依赖云服务或远程服务器,保护了数据隐私。支持 Windows、macOS 和 Linux 等多种操作系统,方便不同用户安装使用。在本篇中将介绍Windows下使用Ollama进行本地大模型的部署。


下载安装Ollama

Ollama官网:https://ollama.com/
在这里插入图片描述
点击下载,选择符合自己系统的版本,点击下载
在这里插入图片描述
下载后按照提示安装即可

安装模型

回到官网,点击左上角的Models
在这里插入图片描述
点击后可以看到会有众多支持的模型
在这里插入图片描述
在本篇中笔者将使用Qwen2.5:7b,可以在搜索栏中搜索Qwen
在这里插入图片描述
在左侧可以选择模型大小,复制右侧的命令,打开命令行执行就可以直接下载并运行模型了。如果已经下载过,使用这个命令不会重复下载。如果只下载不运行可以使用命令ollama pull qwen2.5
在这里插入图片描述

测试模型

使用终端调用

打开命令行,执行命令

ollama run qwen2.5:7b

随后就可以在命令行交互式使用大语言模型
在这里插入图片描述

使用request直接调用

由于ollama支持OpenAI接口的调用,所以也可以像直接调用OpenAI一样,使用request方式调用,调用方式只要是ollama符合提供的API即可,API可以参考:https://ollama.readthedocs.io/api/
例如使用这一接口

curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Why is the sky blue?",
  "stream": false
}'

可以使用requests调用的方式如下(下面的代码中改成了我们需要的内容)

import requests

# 定义请求的URL
url = 'http://localhost:11434/api/generate'

# 定义要发送的数据
data = {
    "model": "qwen2.5:7b",
    "prompt": "你好",
    "stream": False
}

# 发送POST请求,使用json参数自动处理JSON数据
response = requests.post(url, json=data)

# 检查响应状态码
if response.status_code == 200:
    # 解析并打印响应内容
    result = response.json()  # 假设服务器返回的是JSON格式的数据
    print(result)
    print(result['response'])
else:
    # 打印错误信息
    print(f"请求失败,状态码:{response.status_code}")
    print(response.text)  # 打印服务器返回的原始文本(可能是错误信息)

上述代码中的data字典中prompt对应的值就是我们所提的问题,在这里以你好为例,下同。

langchainOllama_87">使用langchain调用Ollama接口

langchain也是一个常用的大语言模型开发框架,其中提供了关于ollama调用的接口,在实例化参数中temperature代表的是生成回答的随机程度,取值在0~1,越大随机程度越高。如果是本地配置的ollamaurl_base参数可以省略。

from langchain_ollama import ChatOllama

llm = ChatOllama(
    temperature=0,
    model="qwen2.5:7b",
    url_base="http://localhost:11434/v1/",
)
ans = llm.invoke("你好")
print(ans)
print(ans.content)

langchainOpenAI_102">使用langchain调用OpenAI接口

上边也提到了ollama会提供OpenAI的接口,所以也可以使用langchain为OpenAI提供的调用接口。不同的是openai_api_base要改为ollama地址http://localhost:11434/v1/openai_api_key可以为任意值,但不能为中文也不能为空。

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    temperature=0,
    model="qwen2.5:7b",
    openai_api_base="http://localhost:11434/v1/",
    openai_api_key="anything"
)
ans = llm.invoke("你好")
print(ans)
print(ans.content)

http://www.niftyadmin.cn/n/5838662.html

相关文章

AI DeepSeek-R1 Windos 10 环境搭建

1、安装: 下载 Python |Python.org CUDA Drivers for MAC Archive | NVIDIA pip 和virtualenv Download Ollama on Windows 如下图 2、下载模型 deepseek-r1 ollama run deepseek-r1 或者可以ollama run deepseek-r1:8b 或 3、安装一个可视化对话Chatbox 下载 …

代码随想录算法训练营第三十九天-动态规划-337. 打家劫舍 III

老师讲这是树形dp的入门题目解题思路是以二叉树的遍历(递归三部曲)再结合动规五部曲dp数组如何定义:只需要定义一个二个元素的数组,dp[0]与dp[1] dp[0]表示不偷当前节点的最大价值dp[1]表示偷当前节点后的最大价值这样可以把每个节…

SpringBoot AOP 和 事务

SpringBoot 整合 AOP 动态代理技术 JDK 动态代理 JDK 动态代理是 Java 自带的一种代理方式。它要求目标类必须有接口,基于这个接口,JDK 在运行时会动态生成一个代理对象。这个代理对象和目标对象就像 “拜把子” 的兄弟,因为它们都实现了相同…

arm-linux-gnueabihf安装

Linaro Releases windows下打开wsl2中的ubuntu,资源管理器中输入: \\wsl$gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz 复制到/home/ark01/tool 在 Ubuntu 中创建目录: /usr/local/arm,命令如下: …

如何构建树状的思维棱镜认知框架

在思维与知识管理中,“树状思维棱镜”通常指一种层级式、可多维度展开和不断深入(下钻)的认知框架。它不仅仅是普通的树状结构(如传统思维导图),更强调“棱镜”所体现的多视角、多维度切换与综合分析的能力…

简易计算器(c++ 实现)

前言 本文将用 c 实现一个终端计算器: 能进行加减乘除、取余乘方运算读取命令行输入,输出计算结果当输入表达式存在语法错误时,报告错误,但程序应能继续运行当输出 ‘q’ 时,退出计算器 【简单演示】 【源码位置】…

宇宙大爆炸是什么意思

根据宇宙大爆炸学说,宇宙间的一切都在彼此远离,而且距离越远,远离的速度越快。我们只能在地球上观察这种现象,而我们观察到的速度符合如下公式,其中 为哈勃常数, 为距离, 为速度(…

分享|通过Self-Instruct框架将语言模型与自生成指令对齐

结论 在大型 “指令调整” 语言模型依赖的人类编写指令数据存在数量、多样性和创造性局限, 从而阻碍模型通用性的背景下, Self - Instruct 框架, 通过 自动生成 并 筛选指令数据 微调预训练语言模型, 有效提升了其指令遵循能…