本机安装大模型
前因
- 平常我们使用 AI 大概是通过网页访问它,比如:https://chat.deepseek.com/,然后在网页上和它聊天。
- 另外一种方式,则是用程序,去调用它的 API,比如现在比较火爆的开源的 OpenClaw。
这两种方法,都是使用厂家提供的互联网服务。AI 大模型跑在别人家的服务器上。当然,别人家可能就需要根据你消耗了多少算力来收费了。如果我是用来写代码,它能真正帮我干活,那缴费也应该的。但如果仅仅是学习,消耗了很多 Token 的钱却没有创造价值,尤其是类似 OpenClaw 这样的工具去使用 AI,说不定它就跑飞了,自动消耗掉巨多的 Token,让你的钱包发紧。
所以,我在前面的文章《Delphi程序和AI大模型交互之二》里面提到:
但我目前没有调用 API 的免费账户,就没有做这个工作。哪天搞到个账号再试试能否完全自动化地跑起来,不需要人肉在中间复制粘贴文本来回传。
解决方案 - 在自己的电脑上安装大模型
现在很多开源的大模型,比如 DeepSeek,比如千问,比如 Google 的 Gemma3,等等。
运行大模型的架构
开源的大模型,其实仅仅是大模型训练后的数据,它本身并不是程序。我们访问大模型,大模型能够回答问题,是有程序在运行,程序调用大模型的训练数据去进行计算并返回结果。
用于运行大模型的程序,常见的有好几个。对于入门用户来说,最简单好用的是 Ollama。
从架构上说,就是你去下载一个开源大模型,其实就是数据文件。然后再下载 Ollama 安装运行,你就有一个在你自己电脑上运行的 AI 了。
但是,Ollama 用起来比较简单。以下描述都是在我自己的 Windows 11 笔记本电脑上的操作,不需要懂 Linux,也不需要 Linux 环境。
如何在自己电脑里面安装使用
- 去 Ollama 官网,找到下载页面,下载。下载的时候选择 Windows,下载的文件是 OllmaSetup.exe,一个典型的 Windows 安装程序。官网页面上还有一个使用 PowerShell 在线下载安装的命令,我反复测试多次,都会出问题,安装无法成功。
- 运行安装程序,安装完成。
- 启动 Ollama,出来一个 Windows 程序界面,界面非常简单,就一个大白屏,底部是一个聊天的输入框。理论上,你在聊天输入框里面输入问题,然后就等 AI 回答,和在网页上使用类似。
- 安装大模型:聊天输入框的右下脚有一个大模型的选择下拉按钮。下拉,里面有一堆 Ollama 支持的大模型。选择一个适合你的电脑的。Ollama 开始在线下载安装这个模型。
- 大模型下载安装完成后,你就可以和 AI 聊天了。
此时,你是在和你自己电脑里面的 AI 聊天。你把电脑网线拔掉,都没有问题。因为此时你不是在使用网上的远程AI服务器。
我该选择哪个模型
选择模型,除了你喜欢千问还是喜欢 DeepSeek 这样的选择外,最关键的是,你选择多少参数的,你的电脑硬件能够得着。如果你钱多,装一台有几百G内存,有几百G显存的机器,那就选参数最多的,可能效果最好。如果硬件有限,那就需要考虑参数较小的模型了。
我的具体例子是:显卡是很老旧的 GTX 1060,我的 RAM 是64G,我选择的是 gemma3:12b,也就是参数是 12b的;它还有更高端的,是27b,这个我的显存太少够不着。
但无论如何,我的十年前的老旧电脑,已经可以跑大模型了。
简单聊天没意思
是的,使用 AI,最好是用程序去和它交互,比如使用 OpenClaw,能够让 AI 帮我们完成很多自动化完成的任务。Ollama 支持很多类似 OpenClaw 的程序,也包括 OpenClaw。
更进一步,从理解 AI 的工作方式的角度,我们需要自己写一点代码去和 AI 交互,也需要 Ollama 提供交互的 API 给我们使用。查官方文档,它提供的 API 是一个 http 的 API,也就是说,Ollama 内置了 WEB Server,使用 http 去访问它就可以了。
有关它的 API 的简单情况,参考官网:https://docs.ollama.com/api/introduction
简单来说,就是 http://localhost:11434/api
注意,它的工作端口是 11434;
官网还提供了测试代码,使用 curl 直接去访问 http,代码如下:
curl http://localhost:11434/api/generate -d '{
"model": "gemma3",
"prompt": "Why is the sky blue?"
}'
在我使用上述测试代码的时候遇到问题了。上面的代码,在 Linux 底下肯定没问题。但在 Windows 的终端里面,或者在 Windows 的 PowerShell 里面,则会出错。
首先,是多行错误。Cmd.exe 不能一次输入多行。这个问题好办,把上述的代码,全部写成一行,作为一条命令,输入给 CMD.exe 就可以了。
然后,我就获得了错误编码 404;说明在 11434 端口上确实有 WEB Server 在工作,但我提交的内容不对,因此 Server 返回 404;
问题原因:
- Windows 里面,单引号会被当作字符串的引号,而不会当作字符串的一部分;
- Windows 里面,双引号必须加上斜杠转义符;
因此,我把上述 curl 代码,修改为:
curl http://localhost:11434/api/generate -H "Content-Type: application/json" -d "{\"model\": \"gemma3:12b\", \"prompt\": \"Why is the sky blue?\"}"
成功!能够看到返回很多字符串,逐行返回的。
使用 Delphi 程序去调用 API
上述 http API 用 curl 测试通过。现在可以用 Delphi 程序去测试了。这里我使用 TIdHTTP,代码如下:
function TDmHttpClient.TestAPI: string;
var
S: string;
URL: string;
SL: TStringStream;
begin
//以下代码测试通过;
{
经验总结:
1. 和 Ollama 交互的命令体,是 JSON 字符串;以下测试字符串来自 Ollama 官方网页文档;
2. 需要写正确的模型名称,这里是 gemma3:12b 而不是简单的 gemma3
3. 使用 IdHTTP 的 Post 必须使用 Stream 而不是 StringList;IdHTTP 会把 StringList 里面的字符串内容重新编码,而不是原样照发;
4. Conteyt-Type 不需要特别设置;
}
S := '{"model": "gemma3:12b", "prompt": "Why is the sky blue?"}';
URL := 'http://localhost:11434/api/generate';
//IdHTTP1.Request.ContentType := 'application/json';
SL := TStringStream.Create(S, TEncoding.UTF8);
SL.Position := 0;
try
Result := IdHTTP1.Post(URL, SL);
finally
SL.Free;
end;
end;
把上述代码返回的字符串放到 TMemo1 里面查看,果然成功。
到此,初步成功。
在本机安装运行大模型,初步成功。接下来自己写一点代码,创建一个通过 API 和 AI 聊天的窗口程序试试。

259

被折叠的 条评论
为什么被折叠?



