本地 AI 工具:Ollama 入门(工具 1)

发布: (2025年12月9日 GMT+8 20:15)
4 min read
原文: Dev.to

Source: Dev.to

概览

在讨论易于使用的本地 AI 工具时,今天最受欢迎的选项之一是 Ollama。它以简洁、可靠以及在所有主流操作系统(Windows、Linux 和 macOS)上的可用性而闻名。只需从官方 Ollama 网站下载安装程序并完成简短的注册,即可运行桌面应用并从一系列预训练的 AI 模型中进行选择。完整的模型列表可在 Ollama 网站上查看,许多模型也可以直接通过安装程序下载。

Ollama 还提供付费的云端使用订阅,但桌面版仍是最简便的入门途径。

Docker 部署

对于需要更多控制或想将 Ollama 集成到自动化工作流中的开发者,工具可以在 Docker 容器中运行。

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
docker exec -it ollama ollama run llama3.2

容器会启动一个本地服务器,可通过 http://localhost:11434/ 访问。

注意: Docker 版本包含网页界面;交互只能通过 API 完成。

API 使用

Ollama API 在官网有文档说明,支持标准的 POST 请求,用于:

  • 列出可用模型
  • 提交提示词
  • 以流式方式编程获取响应

示例:流式提示词

async function askModel() {
  const response = await fetch("http://localhost:11434/api/generate", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      model: "llama3.2",
      prompt: "Who are you?"
    })
  });

  const reader = response.body.getReader();
  const decoder = new TextDecoder("utf-8");

  // 输出流式响应
  while (true) {
    const { done, value } = await reader.read();
    if (done) break;
    console.log(decoder.decode(value));
  }
}

askModel();

示例流式输出:

{
  "model": "llama3.2",
  "created_at": "2025-12-09T10:20:54.622934272Z",
  "response": "I",
  "done": false
}
{
  "model": "llama3.2",
  "created_at": "2025-12-09T10:20:54.761152451Z",
  "response": "'m",
  "done": false
}
...

构建自定义 Docker 镜像

编写 Dockerfile 可以在构建阶段预先加载特定模型,从而在容器启动时节省时间。

Dockerfile

FROM ollama/ollama:latest
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
EXPOSE 11434
ENTRYPOINT ["/entrypoint.sh"]

entrypoint.sh

#!/bin/bash
ollama serve &
sleep 3
ollama pull llama3.1
wait

构建并运行

docker build -t my-ollama .
docker run -p 11434:11434 my-ollama

此设置使 Ollama 成为即插即用的模块,可嵌入 Web 服务、自动化流水线或本地开发环境中。

与开发工具的集成

Ollama 文档提供了将服务连接到以下工具的示例:

  • n8n
  • Visual Studio Code
  • JetBrains IDE 系列
  • Codex 以及其他工作流工具

这些集成帮助将 Ollama 嵌入更广泛的自动化或开发流水线。

结论

Ollama 的主要优势在于简洁:安装容易、跨平台可用、API 直观。对于想在本地尝试 AI 模型而不想进行复杂配置的用户来说,它是一个极佳的起点。

然而,对于需要更深度定制、高级配置或在复杂工作流中实现高性能集成的开发者而言,其他工具可能在效率和灵活性上更具优势。系列后续文章将进一步探讨这些选项。

Back to Blog

相关文章

阅读更多 »