鱼C论坛

 找回密码
 立即注册
查看: 494|回复: 21

[大语言模型] (Windows)Ollama 本地部署 AI 大模型(附 OpenWebUI 部署和 Python 调用教程)

[复制链接]
发表于 2025-4-30 17:19:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 player-none 于 2025-5-5 23:12 编辑

(Windows)Ollama 本地部署 AI 大模型(附 OpenWebUI 部署和 Python 调用教程)


DeepSeek-R1 / Qwen3 / Llama 等 AI 大模型不是梦!


Ollama 是什么?

我们拿 360 软件管家举个例子:它可以管理电脑上的软件,从安装到卸载,一个 360 软件管家就可以解决了。

好吧我编不下去了……不过就大概这个意思,大家 Get 到就行。

Ollama 和 360 软件管家有着共同点:它们都负责某一内容的安装到删除。Ollama 是一个负责管理本地大模型的软件

不过它们也有不同点,除了负责的内容不一样之外,Ollama 没有 360 各种各样的缺点。

Ollama 安装

打开 Ollama 官网(https://ollama.com/download),点击“Download for Windows”按钮,Ollama 的安装包就会开始下载了,如图所示:

Snipaste_2025-04-29_15-34-38.png

温馨提示:若因网络原因无法顺利下载,请考虑使用 NeatDownloadManager (NDM) / Watt Toolkit / FastGitHub 等工具


Snipaste_2025-04-29_15-36-36.png

点击“Install”开始安装,然后等进度条走完,整个过程耗时 3-5 分钟左右。注:Ollama 所需内存较大,不适合在虚拟机里安装

Snipaste_2025-04-29_17-43-54.png

Snipaste_2025-04-29_17-52-06.png

Snipaste_2025-04-30_13-16-29.png

使用 Ollama 安装大模型

这是用时最长但最简单的一步了。按下 Win(Windows 徽标键)+R,输入“cmd”(也可以是 powershell),就可以打开终端(界面不一样没关系)。

先输入“ollama help”,显示的文字清楚地显示了 Ollama 的用法。

  1. C:\Users\Administrator>ollama help
  2. Large language model runner

  3. Usage:
  4.   ollama [flags]
  5.   ollama [command]

  6. Available Commands:
  7.   serve       Start ollama
  8.   create      Create a model from a Modelfile
  9.   show        Show information for a model
  10.   run         Run a model
  11.   stop        Stop a running model
  12.   pull        Pull a model from a registry
  13.   push        Push a model to a registry
  14.   list        List models
  15.   ps          List running models
  16.   cp          Copy a model
  17.   rm          Remove a model
  18.   help        Help about any command

  19. Flags:
  20.   -h, --help      help for ollama
  21.   -v, --version   Show version information

  22. Use "ollama [command] --help" for more information about a command.
复制代码


我们想做的是运行大模型(上面所说的 Run a model),我们应该怎么办呢?

  1. C:\Users\Administrator>ollama run --help
  2. Run a model

  3. Usage:
  4.   ollama run MODEL [PROMPT] [flags]

  5. Flags:
  6.       --format string      Response format (e.g. json)
  7.   -h, --help               help for run
  8.       --insecure           Use an insecure registry
  9.       --keepalive string   Duration to keep a model loaded (e.g. 5m)
  10.       --nowordwrap         Don't wrap words to the next line automatically
  11.       --verbose            Show timings for response

  12. Environment Variables:
  13.       OLLAMA_HOST                IP Address for the ollama server (default 127.0.0.1:11434)
  14.       OLLAMA_NOHISTORY           Do not preserve readline history
复制代码


可以看到 ollama run 命令有两个一个固定参数 MODEL 和两个可选参数 PROMPTFLAGSMODEL 代表 AI 大模型名称,PROMPT 代表我们向 AI 说的话,FLAGS 代表对 AI 回答的要求,上面写的很清楚了。

MODEL 该怎么填呢?

我们打开这个链接:https://ollama.com/models,里面有很多大模型:

Snipaste_2025-04-29_16-40-24.png

可是具体需要多少内存呢?这里写的很清楚了:(再往下滑有关于这个大模型的介绍)

Snipaste_2025-04-30_13-31-23.png

如图所示,选择你想下载的版本,例如 qwen3:8b

所以我们在终端输入 ollama run qwen3:8b,等待下载即可(很慢,建议等的时候做下一步):

Snipaste_2025-04-30_13-36-05.png

Snipaste_2025-04-30_13-39-28.png

我们要等它变成这样:

Snipaste_2025-04-30_13-47-13.png

Ollama 会自动在终端里运行大模型(如果你不想运行的话,下次安装的时候记得使用 ollama pull MODEL,不运行,只拉取下载)即可。

Docker + OpenWebUI

如果你尝试不看教程直接去官网安装 Docker,你会喜提:

Snipaste_2025-04-30_13-43-58.png

被 qiáng 了。


解决办法是使用镜像站。链接:https://mirrors.aliyun.com/docker-toolbox/windows/docker-for-windows/stable/

Snipaste_2025-04-30_13-45-42.png

接下来我们应该开始安装 Docker。

运行你下载的 Docker Desktop Installer.exe,等待几秒让安装程序做准备(太快了没截下来),再点击“Ok”:

Docker.png

然后静等安装好即可,点击 Close and Restart

Snipaste_2025-04-30_13-55-30.png

接下来,我们就可以让 Docker 下载 OpenWebUI 了。(我对 Docker 操作不是很熟,不能详细说明每一步的作用)

打开 https://github.com/open-webui/open-webui,可以看见一条命令:

Snipaste_2025-04-30_15-44-30.png

  1. docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
复制代码


放终端里运行下就好了。但是!!会很慢!!(自己挂了一个小时之后才想办法找捷径.png)

Snipaste_2025-04-30_16-16-02.png

首先,暴力停止它!!!(Ctrl+C)

Snipaste_2025-04-30_16-51-23.png

然后,把 ghcr.io 改成 ghcr.nju.edu.cn(镜像源)下载速度飞起!!!

Snipaste_2025-04-30_17-07-09.png

打开 Docker,可以看到 OpenWebUI 已经自动运行了。点击这里,打开浏览器:

Snipaste_2025-04-30_17-08-57.png

点这个:

Snipaste_2025-04-30_17-10-29.png

然后输入信息:

Snipaste_2025-04-30_17-11-15.png

Done!

Snipaste_2025-04-30_17-11-49.png

Python 调用

Python 调用 Ollama 需要安装 ollama 库,不难想到吧:

  1. pip install ollama
复制代码


Snipaste_2025-04-30_16-26-55.png

等它安装完了,我们打开 Python 终端(Win+R,py):

  1. Python 3.12.5 (tags/v3.12.5:ff3bc82, Aug  6 2024, 20:45:27) [MSC v.1940 64 bit (AMD64)] on win32
  2. Type "help", "copyright", "credits" or "license" for more information.
  3. >>> from ollama import chat
  4. >>> response = chat(model='qwen3:8b', messages=[
  5. ... {'role':'user','content':'你好!你是Qwen3吗?'}]
  6. ... )
复制代码


这个 messages 参数的功能很强大,可以用来做连续对话,这个放到后面讲。

你会发现命令执行下来略有延迟,不用管它,等着就行(咱也没办法啊)。

  1. >>> print(response.message.content)
  2. <think>
  3. 嗯,用户问我是Qwen3吗?首先,我需要确认自己是不是Qwen3。根据我的知识,Qwen3是通义千问的最新版本,而我是Qwen2。所以我要告诉用户我不是Qwen3,而是Qwen2。不过,用户可能对版本不太清楚,所以我要解释清楚两者的区别,比如Qwen3可能有更强大的功能或者优化过的模型。同时,我应该保持友好,邀请用户提问,这样他们可以得到更好的帮助。另外,用户可能是在测试我的身份,或者想确认我的功能是否符合他们的需求。所以,我需要用简单明了的语言回答,避免使用专业术语,让用户容易理解。最后,确保回答准确,同时保持亲切的语气。
  4. </think>

  5. 你好!我不是Qwen3,我是Qwen2。Qwen3是通义千问的最新版本,而我是Qwen2。如果你有任何问题或需要帮助,我会尽力提供支持!&#128522;
复制代码


(打脸了)

有谁能解释一下这是为啥?下到盗版的了?(自我感觉不是这样)


由于上面的原因,接下来我们使用 llama3.1:8b 演示。

  1. Python 3.12.5 (tags/v3.12.5:ff3bc82, Aug  6 2024, 20:45:27) [MSC v.1940 64 bit (AMD64)] on win32
  2. Type "help", "copyright", "credits" or "license" for more information.
  3. >>> from ollama import chat
  4. >>> response = chat(model='llama3.1:8b', messages=[dict(role='user', content='你好!1+1等于几?')])
  5. >>> print(response.message.content)
  6. 1+1等于2。
复制代码


很简介明了。

我们封装下这个功能:

  1. >>> def ask(msg):
  2. ...     print(chat(model='llama3.1:8b', messages=[dict(role='user', content=msg)]).message.content
  3. ...
复制代码


接下来,我们就可以畅快地使用了:

  1. >>> ask('提出让冷清的论坛重新火起来的5点建议')
  2. 以下是一些建议来促进冷清的论坛重新活跃:

  3. - **优化论坛结构和用户体验**:检查论坛的布局和设计是否易于使用。确保新用户可以快速找到帮助和支持,内容是组织良好的,并且容易浏览。
  4. - **创建有吸引力的内容策略**:提供高质量、相关、有趣的帖子和讨论主题。这包括发起讨论、分享有价值的信息、寻找专家意见,以及组织活动或竞赛等活动。
  5. - **激励用户参与**:建立奖励计划或激励措施来吸引更多用户。例如,可以给出积分或徽章,或者举办抽奖和竞赛等活动。让用户有动力分享自己的想法、经历和知识。
  6. - **重新连接社区**:重新联系论坛的老成员,并鼓励他们继续参与。这可以通过发起回归计划、组织聚会或线上活动来实现。同时,应积极吸引新成员,以保持增长和动力。
  7. - **利用社交媒体推广**:通过社交媒体(如Face<防审核>book、Twi<防审核>tter等)宣传论坛,并与外部社区建立联系。这有助于吸引新的用户,并将现有会员与其他群体联系起来。
复制代码


如果我们继续玩儿下去,就会发现有一点让我们很不爽:

等的时间太长了!


我们可以设置这样一个参数:`stream=True`。

  1. >>> stream = chat(model='llama3.1:8b', messages=[dict(role='user', content='为什么水是蓝绿色的?')],stream=True)
  2. >>> for chunk in stream:
  3. ...     print(chunk.message.content, end='', flush=True)
  4. ...
复制代码


这样就能让 AI 一个词一个词(好像真的是这样哎?为什么是一个词一个词呢?)地回答你了。

接下来,我来填刚刚挖下的小坑:messages 参数是干啥用的?

看着刚才的代码,我们首先可以得出:messages 是一个 list[dict]。针对这个 dict,我们得知:

  • roleuser,代表话是用户说的
  • content:用户说的话


未完待续……

评分

参与人数 2荣誉 +7 鱼币 +8 贡献 +6 收起 理由
liuhongrun2022 + 5 + 5 + 3
不二如是 + 2 + 3 + 3 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-4-30 17:20:52 | 显示全部楼层
(Windows)Ollama 本地部署 AI 大模型教程(含问题解答)



一、Ollama 安装要点
  • 下载问题:若官网下载失败,推荐使用 Watt Toolkit 加速下载
  • 内存要求:建议 16G 内存及以上,8G 内存可能无法流畅运行 7B 以上模型
  • 验证安装:安装后cmd输入 ollama --version 显示版本即成功


二、模型下载答疑
问题现象:
qwen3:8b 显示为 Qwen2?
原因解析:
Ollama 官方模型库存在命名规范问题,建议改用:

  1. ollama run qwen:7b
  2. ollama run llama3:8b
复制代码


三、Docker 避坑指南
  • 镜像加速:将命令中 ghcr.io 替换为 ghcr.nju.edu.cn
  • 安装验证:安装后任务栏出现鲸鱼图标即成功
  • 端口冲突:若 3000 端口被占用,修改命令中 -p 3000:8080 为其他端口


四、Python 调用完整示例

  1. from ollama import chat

  2. # 连续对话实现
  3. messages = [
  4.     {'role': 'user', 'content': '用Python写个斐波那契数列'},
  5.     {'role': 'assistant', 'content': '需要递归还是迭代实现?'}
  6. ]

  7. while True:
  8.     response = chat(
  9.         model='llama3:8b',
  10.         messages=messages,
  11.         stream=True
  12.     )
  13.    
  14.     full_response = ""
  15.     for chunk in response:
  16.         print(chunk['message']['content'], end='', flush=True)
  17.         full_response += chunk['message']['content']
  18.    
  19.     messages.append({'role': 'assistant', 'content': full_response})
  20.     user_input = input("\n\n您:")
  21.     messages.append({'role': 'user', 'content': user_input})
复制代码




五、常见问题总结
  • 模型下载慢:在cmd执行 setx OLLAMA_MODELS [url=https://ollama.cdn.kesh.ink]https://ollama.cdn.kesh.ink[/url] 设置镜像源
  • OpenWebUI 无法访问:检查Docker是否运行,浏览器访问 [url=http://localhost:3000]http://localhost:3000[/url]
  • Python报错:先执行 pip install ollama 安装最新版库


更多问题欢迎在 FishC 论坛发帖交流:https://fishc.com.cn

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-30 17:23:23 | 显示全部楼层
@liuhongrun2022
@不二如是
@琅琊王朝
@骆驼在西部
@追逐我的明天
@Mike_python小
@鱼小二
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2025-4-30 23:01:40 | 显示全部楼层

回帖奖励 +5 鱼币

https://fishc.com.cn/forum.php?m ... 682&pid=6651838

这些数据早就被 AI 学习过了,直接问 AI 即可。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-1 10:16:22 | 显示全部楼层

回帖奖励 +5 鱼币

含金量满满
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-1 12:36:47 | 显示全部楼层

回帖奖励 +5 鱼币

质量好高
有时间去试试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-2 15:08:02 | 显示全部楼层

这么好的帖子也能冷
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-2 15:59:53 | 显示全部楼层
player-none 发表于 2025-5-2 15:08
这么好的帖子也能冷

好帖不会沉!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-2 16:13:41 | 显示全部楼层

回帖奖励 +5 鱼币

催更
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-5-3 07:38:55 | 显示全部楼层

回帖奖励 +5 鱼币

可以一试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-5 17:57:19 | 显示全部楼层

回帖奖励 +5 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-5-5 22:13:06 | 显示全部楼层

回帖奖励 +5 鱼币

player-none 发表于 2025-4-30 17:23
@liuhongrun2022
@不二如是
@琅琊王朝

很详细的教程,但是我还不知道这个大模型是做什么的?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-5 22:46:03 | 显示全部楼层
骆驼在西部 发表于 2025-5-5 22:13
很详细的教程,但是我还不知道这个大模型是做什么的?

它不需要网络,也不需要登录就能使用各种先进大模型
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-5 23:19:10 | 显示全部楼层

回帖奖励 +5 鱼币

Will try
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-7 08:32:45 | 显示全部楼层

回帖奖励 +5 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-5-11 17:14:01 | 显示全部楼层

回帖奖励 +5 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-5-12 08:40:15 | 显示全部楼层

回帖奖励 +5 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-5-14 08:35:52 | 显示全部楼层

回帖奖励 +5 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-5-15 08:14:22 | 显示全部楼层

回帖奖励 +5 鱼币

收藏
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-5-21 16:00:28 | 显示全部楼层

回帖奖励 +5 鱼币

非常好,收藏起来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-1 19:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表