Ollama + Axios:用本地大模型,搭建一个真正可控的 AI API 服务

77 阅读4分钟

随着大模型能力的成熟,AI 正在快速进入工程体系,而不再只是“辅助工具”。

在前端、Node、全栈开发中,常见的使用方式包括:

  • 将设计稿交给模型生成前端代码
  • 让模型参与业务逻辑代码编写
  • 把整个代码仓库交给 AI 做理解和重构
  • 在 IDE(如 Cursor)中开启全量上下文推理

这些能力在效率上确实有明显提升,但在实际项目,尤其是 toB 场景中,会不可避免地遇到一个核心问题:

数据安全与可控性。


一、云端大模型的现实问题

目前主流的大模型大致可以分为两类:

1. 闭源云端模型

  • OpenAI(GPT-4 / 5.x)
  • Claude
  • Gemini
  • DeepSeek(云端)
  • Qwen(云端)

优势很明显:

  • 模型能力成熟
  • 推理效果稳定
  • 工具生态完善

但问题也同样明确:

  • 所有 prompt 与上下文都需要出网
  • 源码、设计稿、业务逻辑不可避免地被上传
  • 很难满足企业对数据隔离和合规的要求

对于 toC 场景,这可能只是“是否介意”的问题;
但在 toB、内部系统、金融、政企场景中,这往往是是否允许使用的问题。


2. 开源大模型

  • LLaMA 3
  • DeepSeek(开源权重)
  • Qwen(开源版本)

开源模型并不意味着“能力弱”,而是意味着:

  • 模型权重可控
  • 推理过程可控
  • 数据完全留在本地或私有服务器

真正的问题只有一个:
部署成本和使用门槛。

而 Ollama 的价值,正是把这件事变得足够简单。


二、Ollama 是什么,解决了什么问题

Ollama 是一个本地大模型运行工具,它本质上做了三件事:

  1. 封装模型下载、加载、推理流程
  2. 提供统一的命令行体验
  3. 暴露一个兼容 OpenAI 的 HTTP API

这意味着一件非常重要的事情:

你可以把本地大模型,当成一个“和 OpenAI 一样用的 API 服务”。


基础使用方式

ollama pull qwen2.5:0.5b
ollama run qwen2.5:0.5b

启动后,Ollama 会默认在本地开启一个服务:

http://localhost:11434

这个端口对外提供推理能力,也正是后面可以直接被前端或 Node 服务调用的关键。


三、为什么本地部署对 toB 场景尤其重要

在企业级场景中,本地大模型的价值不只是“省 API 钱”,而是:

  • 数据不出内网
  • 推理过程可审计
  • 可控的上下文范围
  • 可部署在内网 / 私有云

常见的应用包括:

  • 内部代码生成工具
  • 设计稿 → 前端代码自动化
  • 内部知识库问答
  • 企业级 Copilot

相比直接把代码交给云端模型,本地部署意味着安全边界仍然掌握在自己手中


四、用 Axios 调用 Ollama:像用 OpenAI 一样用本地模型

Ollama 提供的 API 接口风格,基本对齐 OpenAI,这一点非常关键。

下面是一个最常见的 Node 调用方式。

创建 Axios 实例

import axios from 'axios';

const ollamaApi = axios.create({
  baseURL: 'http://localhost:11434/v1',
  headers: {
    'Authorization': 'Bearer ollama',
    'Content-Type': 'application/json',
  }
});

这里的 Authorization 并不是真正的鉴权,只是为了兼容 OpenAI SDK 的调用方式。


封装一个 chatCompletions 方法

export const chatCompletions = async (messages) => {
  try {
    const response = await ollamaApi.post('/chat/completions', {
      model: 'qwen2.5:0.5b',
      messages,
      stream: false,
      temperature: 0.7,
    });

    return response.data.choices[0].message.content;
  } catch (err) {
    console.error('ollama 请求失败', err);
  }
};

调用方式与 OpenAI 几乎一致:

const result = await chatCompletions([
  { role: 'system', content: '你是一个前端工程助手' },
  { role: 'user', content: '生成一个 React Button 组件' }
]);

这意味着:

  • 原有基于 OpenAI 的代码可以低成本迁移
  • 可以快速替换为本地模型
  • 非常适合做企业内部 AI 服务封装

五、硬件与模型选择的现实考量

本地部署不可避免地会涉及硬件问题。

常见影响因素

  • 模型参数规模(0.5B / 7B / 14B)
  • 是否使用 GPU
  • 内存大小
  • 并发需求

在实际使用中:

  • 0.5B ~ 3B:普通开发机即可运行
  • 7B 以上:建议使用独立 GPU
  • 高并发:更适合云端私有部署

Ollama 的优势在于:
可以从小模型开始,逐步升级,而不是一开始就重资产投入。


六、总结:Ollama 并不是替代云端,而是补齐能力边界

Ollama 并不是要完全取代 OpenAI、Claude 这些云端模型。

更合理的定位是:

  • 云端模型:能力上限
  • 本地模型:安全底线

在工程实践中,二者往往是互补关系,而不是非此即彼。

当 AI 开始真正参与业务代码、核心逻辑时,本地大模型不再是“可选项”,而是一个越来越重要的基础设施能力。

而 Ollama,让这件事第一次变得足够低门槛。