跳到正文
Neaptide工作室
博客

用 Ollama 运行本地编程模型:从第一次启动到验证代码

Neaptide · 2026年9月20日 · 8 分钟阅读

用 Ollama 启动本地编程模型:安装、HTTP API、可验证的 Python 练习,以及运行速度排查。

本文目录
本地电脑旁的小型模型块与代码卡片。

尝试本地模型时,可以先从一小段代码开始:解释函数、设计测试,或寻找错误。第一次使用,能否稳定复现操作、检查答案,比选中最大的模型更重要。

Ollama 负责运行模型,并提供调用接口。 本文以本地版 Qwen2.5-Coder 1.5B 作为小型教学示例。这不是当前最佳模型推荐,也不代表它能可靠处理大型项目。模型说明。

安装并获得第一个回答

按照适合你操作系统的官方安装说明安装 Ollama,启动应用或服务,然后在终端运行:

ollama --version
ollama run qwen2.5-coder:1.5b

首次启动需要下载模型,因此要有网络连接和足够的磁盘空间。出现交互式输入提示后,可以问一个简短的编程问题。输入 `/bye` 退出会话。

不要仅凭第一次回答判断速度:加载模型与生成回答是两个阶段。先确认简单请求可以重复得到回答。

用明确的结果检验模型

给模型一项条件具体的任务:

编写 Python 函数 unique_names(names)。输入为字符串列表,去掉每项两端的空白,删除空字符串,并进行不区分大小写的去重。保留首次出现的顺序,以及去掉空白后的原始拼写。返回代码和三个测试,不添加依赖。

在评价回答之前,先确定预期结果:

assert unique_names([" Anna ", "anna", "", "BOB"]) == ["Anna", "BOB"]
assert unique_names([]) == []
assert unique_names([" A ", "a", "B", "b"]) == ["A", "B"]

这些是作者为练习设定的验收条件,不是对模型的实测结果。先阅读生成的代码,再在测试环境中运行检查。如果函数改变了顺序,或修改了首次出现字符串的大小写,应指出具体差异并要求修正。

这个小练习可以检验模型是否遵守这些要求,但不能证明它可以独立修改大型代码仓库。

从程序调用模型

Ollama 提供本地 HTTP API。在 macOS、Linux 或 WSL 中,可以这样发送请求:

curl http://localhost:11434/api/generate -d '{
  "model": "qwen2.5-coder:1.5b",
  "prompt": "Explain the difference between a Python list and a tuple.",
  "stream": false
}'

`stream: false` 表示要求一次返回完整响应,而不是分块流式输出。各字段见 generate API 文档。这个请求用于检查 API 是否可用,并不会自动把模型接入编辑器的全部功能。

接入编辑器前,先确认所选扩展支持 Ollama 或兼容的本地端点,再填写服务器地址和已安装模型的准确名称。支持聊天,不等于支持编程智能体需要的所有工具。

“本地运行”具体指什么

Ollama 表示,模型在本地运行时,它不会接收你的提示词和回答。云端模型的数据处理路径不同。此外,编辑器、扩展及外部工具可能调用各自的服务,所以要检查整个工作流程。Ollama 常见问题。

Ollama 提供 local-only 模式,可用于关闭其云端功能。但在检查依赖下载、扩展网络请求和工具行为之前,不应把整套流程称为完全离线。第一次试用请使用教学代码。

如果回答太慢

运行 `ollama ps`,查看已加载的模型,以及 CPU 和 GPU 的执行分配。这有助于定位限制所在。检查模型运行位置。

每次只改变一个条件:换更小的模型、缩短输入,或降低配置的上下文长度。关闭其他占用资源较多的应用,再重复同一任务。不要默认把上下文开到最大;消耗内存的不只有模型权重。

记录模型及标签、硬件、上下文、提示词、用时和测试结果。若不检查代码,仅凭“回答很快”无法选出真正适用的配置。

常见问题

要点速览

小型本地模型能替代云端智能体吗?

分别测试你需要的任务:解释代码、修复函数、修改多个文件。某个场景成功,不代表其他场景也能成功。

需要马上购买显卡吗?

先用现有电脑和小模型尝试。通过 RAM、显存与上下文指南 (/zh/blog/local-llm-ram-vram-context)估算内存需求,再根据具体任务中测得的限制决定是否购买硬件。

下一步应该怎样选模型?

用相同的请求和预先定义的测试比较合适的候选模型。除了速度,还要记录达到可接受结果前需要多少次人工修改。