【技术专题】基于LangChain的RAG与Agent智能体 - Ollama简介以及安装和使用

0 阅读4分钟

大家好,我是锋哥。最近连载更新《基于LangChain的RAG与Agent智能体》技术专题。

QQ截图20260324143646.jpg 本课程主要介绍和讲解RAG,LangChain简介,接入通义千万大模型,Ollama简介以及安装和使用,OpenAI库介绍和使用,以及最重要的基于LangChain实现RAG与Agent智能体开发技术。同时也配套视频教程 《2027版 基于LangChain的RAG与Agent智能体开发视频教程》

前面我们用阿里云百炼平台,是很方便,快捷,有免费额度,但是仅仅是部分模型有免费额度,而且额度也是有限制的。所以我们还有一种本地方案 - 使用Ollama部署蒸馏模型。

Ollama简介

image.png

Ollama官网:ollama.com/

Ollama 是一个开源的本地大语言模型运行工具,它让用户能够轻松地在自己的电脑上部署和使用各种大型语言模型,无需联网也不需要昂贵的云服务。

核心特点

1. 简单易用

  • 一键安装,命令行操作
  • 几条命令就能下载和运行模型
  • 类似 Docker 的使用体验

2. 本地运行

  • 数据完全本地保存,保护隐私
  • 无需联网,随时随地可用
  • 没有 API 调用限制和费用

3. 模型支持

  • 支持 Llama 3、Phi 3、Mistral、Gemma 等主流开源模型
  • 可通过 Modelfile 自定义模型
  • 支持 GGUF 格式的模型导入

适用场景

  • 开发者本地测试和开发
  • 隐私敏感的数据处理
  • 离线环境使用
  • 学习和研究大模型

Ollama 极大地降低了普通人使用大语言模型的门槛,让任何人都能方便地在自己的电脑上体验先进的 AI 技术。

Ollama蒸馏模型介绍

蒸馏模型(Distilled Model)是通过知识蒸馏技术压缩后的小型模型,Ollama 支持运行这类轻量化模型,让普通电脑也能流畅运行 AI。

image.png

什么是知识蒸馏?

知识蒸馏就像一个师生学习过程

  • 教师模型:大型模型(如 700 亿参数的 Llama),知识丰富但运行慢
  • 学生模型:小型模型(如 70 亿参数),学习模仿教师模型的输出
  • 结果:学生模型体积小、速度快,同时保持接近教师模型的性能

Ollama 支持的蒸馏模型

1. Llama 3.2 系列(Meta)

  • 1B 和 3B 参数版本
  • 适合移动设备和低配置电脑
  • 保持较好的对话能力

2. Phi-3 系列(微软)

  • Mini(3.8B)、Small(7B)版本
  • 微软精心挑选训练数据
  • 小尺寸但推理能力强

3. Gemma 系列(Google)

  • 2B 和 7B 参数
  • 基于 Gemini 技术蒸馏而来
  • 开源免费商用

4. Qwen 系列(阿里)

  • 0.5B、1.8B、4B、7B 版本
  • 中英文能力均衡
  • 适合中文场景

蒸馏模型在 Ollama 中的优势

性能对比(以 Llama 3 为例):

模型参数内存需求速度适用设备
原版70B>140GB服务器
蒸馏版8B~16GB个人电脑
蒸馏版3B~6GB极快笔记本/RPi

实际好处

  • 普通电脑(8-16GB 内存)也能运行
  • 生成速度快 3-10 倍
  • 功耗低,适合长时间运行
  • 硬盘空间占用小

Ollama下载安装

ollama下载地址:ollama.com/download

点击 下载即可。

image.png

下载到本地后,我们双击安装:

image.png

出现下面这个界面,就说明安装好了

image.png

默认界面还是很简约的,提供了聊天对话框,以及右侧可以选择模型,我们可以搜索然后下载需要的模型

image.png

这里面每个模型后面都有多少b,比如4b,这个b就是10亿参数,4b就是40亿参数,我们根据当前机器的显卡显存大小来选择具体的参数模型,比如你电脑就4个G的显存,那就选个4b,如果是高配32G显存,那基本都能跑。

比如我们选择一个4b(40亿参数)的qwen模型,去提问“你是谁?”,那么Ollama先会自动下载模型,然后回答问题。

image.png

下载完后,就自动回答你的问题。

image.png

使用OpenAI库调用Ollama本地大模型

我们参考ollama对openai兼容支持的文档:docs.ollama.com/api/openai-…

image.png

主要是三个地方的

1,base_url改成

http://localhost:11434/v1/ 

2,api_key改成ollama

3,model换成你的ollama里你要用的模型

我们把前面1讲的helloWorld.py复制一份,改成ollama.py,然后修改三个参数:

from openai import OpenAI
import os
​
client = OpenAI(
    api_key='ollama',
    base_url="http://localhost:11434/v1/"
)
​
messages = [{"role": "user", "content": "你是谁"}]
completion = client.chat.completions.create(
    model="qwen3:4b",  # 您可以按需更换为其它深度思考模型
    messages=messages,
    extra_body={"enable_thinking": True},
    stream=True
)
is_answering = False  # 是否进入回复阶段
print("\n" + "=" * 20 + "思考过程" + "=" * 20)
for chunk in completion:
    delta = chunk.choices[0].delta
    if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
        if not is_answering:
            print(delta.reasoning_content, end="", flush=True)
    if hasattr(delta, "content") and delta.content:
        if not is_answering:
            print("\n" + "=" * 20 + "完整回复" + "=" * 20)
            is_answering = True
        print(delta.content, end="", flush=True)

我们在运行下,输出:

image.png

我们发现,本地的ollama里的大模型运行速度明显比调用阿里云百炼平台接口慢多了,但是本地跑不用花钱,而且模型选择也多,所以还是一个不错的选择。