大家好,我是直奔標杆!专注于分享实用技术干货,助力各位开发者少走弯路、直奔技术标杆~ 今天给大家整理的是Ollama本地部署后的常用API,都是项目开发中高频用到的,无需复杂配置,复制示例就能直接调用,新手也能快速上手!

Ollama作为一款轻量易用的本地大模型部署工具,最大的优势就是部署简单、接口简洁,本地部署完成后,默认会在11434端口开放一套RESTful API,无需额外配置,直接通过HTTP请求就能调用本地大模型的全部能力,轻松实现AI集成到私有应用中,提升职场开发效率。

下面先给大家梳理接口基础信息,再详细拆解最常用的5个核心接口,额外补充2个实用接口,覆盖模型管理、文本生成、多轮对话、向量生成等90%的开发场景,干货满满,建议收藏备用!

一、接口基础信息(必看)

在调用接口前,先明确基础配置,避免踩坑:

  • 默认接口地址:http://localhost:11434/api(本地部署后直接可用,无需修改端口,若需修改可参考Ollama配置文档)

  • 请求/响应格式:统一为JSON,支持流式输出(实时返回结果,适合聊天界面)和非流式输出(一次性返回完整结果,适合批量处理)两种模式,可根据业务场景灵活选择

  • 默认端口:11434(若端口被占用,可通过修改Ollama配置文件调整)

  • 调用工具:支持curl、Postman、Python requests等任意可发送HTTP请求的工具,示例以curl为主,兼顾Python调用示例,方便不同开发场景使用

二、核心常用API(5个,项目必用)

这5个接口是本地AI调用的核心,覆盖模型管理、文本生成、多轮对话、向量生成等核心场景,简洁高效,无需多余参数,项目中直接套用即可。

1. /api/tags(查看本地已安装模型)

  • 请求方法:GET(无需提交参数,直接请求即可)

  • 核心作用:快速列出本地所有已下载、可调用的Ollama模型,包含模型名称、大小、修改时间、量化级别等基础信息,方便开发者快速确认模型是否部署成功、是否可用,是模型管理的基础接口。

  • curl示例:

  • curl http://localhost:11434/api/tags
  • 补充说明:返回结果会包含模型的详细元数据,比如模型格式、参数规模等,可用于批量获取模型信息,便于后续接口调用时确认模型名称是否正确。

2. /api/generate(单次文本生成/单轮问答)

  • 请求方法:POST(需提交JSON格式参数)

  • 核心作用:实现单轮文本生成、单次问答,无上下文记忆功能,适合简单的指令生成、单次查询场景(如生成文案、解释概念、简单计算等),是最基础的文本生成接口。

  • 核心参数(必传):

    • model:模型名称(需与本地已安装模型一致,如qwen2.5:7b、llama3.2:8b)

    • prompt:用户指令/问题(明确告知模型需要做什么)

    • stream:是否开启流式输出(true=实时逐字返回,false=一次性返回完整结果)

  • 可选参数:可添加options参数设置模型生成规则(如temperature控制生成随机性、num_predict控制最大生成token数),也可添加suffix参数在响应后追加指定文本,满足个性化生成需求。

  • curl示例:

  • curl http://localhost:11434/api/generate -d '{"model": "qwen2.5:7b","prompt": "解释什么是软包拆垛","stream": false}'
  • SpringAI框架Java调用示例(贴合项目实战,直接集成到SpringBoot项目):

  •  1. 先在pom.xml中引入SpringAI Ollama依赖

  • <dependency>
        <groupId>org.springframework.ai</groupId>
        <artifactId>spring-ai-ollama</artifactId>
        <version>1.0.0-M1</version> // 请使用最新稳定版本
    </dependency>
  •  2. 配置application.yml(指定Ollama服务地址)

  • spring:
      ai:
        ollama:
          base-url: http://localhost:11434/api
          model: qwen2.5:7b
  •  3. 编写调用接口(SpringBoot接口示例)

  • import org.springframework.ai.ollama.OllamaChatClient;
    import org.springframework.ai.ollama.api.OllamaApi;
    import org.springframework.ai.ollama.api.OllamaOptions;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class OllamaGenerateController {
    
        private final OllamaChatClient ollamaChatClient;
    
        // 注入Ollama客户端(SpringAI自动配置)
        public OllamaGenerateController(OllamaApi ollamaApi) {
            this.ollamaChatClient = new OllamaChatClient(ollamaApi);
        }
    
        // 单次文本生成接口示例
        @GetMapping("/generate")
        public String generate(@RequestParam String prompt) {
            // 配置生成参数(非流式输出,可根据需求调整)
            OllamaOptions options = OllamaOptions.create()
                    .withModel("qwen2.5:7b")
                    .withStream(false);
            // 调用/api/generate接口,返回生成结果
            return ollamaChatClient.generate(prompt, options);
        }
    }

3. /api/chat(多轮对话,带上下文记忆)

  • 请求方法:POST(需提交JSON格式参数)

  • 核心作用:实现多轮对话交互,模型会记住历史对话内容,适合聊天机器人、连续问答等场景(如用户追问、多步骤咨询),比/api/generate更贴近实际交互场景,是对话类项目的核心接口。

  • 核心参数(必传):

    • model:模型名称(与本地已安装模型一致)

    • messages:对话历史列表,每个元素包含role(角色,可选user/assistant)和content(对话内容),需按对话顺序排列,模型会根据历史内容生成响应

    • stream:是否开启流式输出(建议聊天场景设为true,提升交互体验)

  • 补充说明:多轮对话时,需将每次的用户提问和模型响应依次加入messages列表,确保上下文连贯;若需清除上下文,只需清空messages列表即可重新开始对话。

  • curl示例:

  • curl http://localhost:11434/api/chat -d '{"model": "llama3.2:8b","messages": [{"role": "user", "content": "软包拆垛抓手怎么选"}],"stream": false}'
  • 多轮对话扩展示例(curl):

  • curl http://localhost:11434/api/chat -d '{"model": "llama3.2:8b","messages": [{"role": "user", "content": "软包拆垛抓手怎么选"},{"role": "assistant", "content": "软包拆垛抓手需根据软包材质、重量、拆垛效率选择,优先考虑柔性抓手,避免损伤软包"},{"role": "user", "content": "柔性抓手有哪些类型"}],"stream": false}'

4. /api/embed(文本向量生成)

  • 请求方法:POST(需提交JSON格式参数)

  • 核心作用:将文本转换为向量表示(嵌入向量),主要用于RAG(检索增强生成)、文本相似度匹配、文本聚类等场景,是构建私有知识库、检索系统的核心接口,能帮助模型更好地理解文本语义关系。

  • 核心参数(必传):

    • model:建议使用专门的嵌入模型(如nomic-embed-text、all-MiniLM-L6-v2,需提前下载)

    • input:需要生成向量的文本(可单个文本,也可传入文本列表批量生成)

  • 补充说明:生成的向量可用于后续的语义检索,比如将知识库文本生成向量存储,用户提问生成向量后,通过相似度匹配找到最相关的知识库内容,再结合生成接口返回精准回答,大幅提升回答质量。

  • curl示例:

  • curl http://localhost:11434/api/embed -d '{"model": "nomic-embed-text","input": "Ollama本地部署接口调用"}'

5. /api/show(查看模型详细信息)

  • 请求方法:POST(需提交JSON格式参数)

  • 核心作用:查看指定模型的详细配置信息,包括模型参数(如temperature默认值、上下文窗口大小)、提示词模板、系统提示词、模型格式、量化级别等,便于开发者调试模型、优化生成效果,尤其适合自定义模型配置的场景。

  • 核心参数(必传):model:需要查看详情的模型名称(与本地已安装模型一致)

  • curl示例:

  • curl http://localhost:11434/api/show -d '{"model": "qwen2.5:7b"}'
  • 补充说明:通过该接口可快速获取模型的默认配置,若需修改模型的系统提示、生成规则,可结合Modelfile文件进行配置,提升模型适配性。

三、新增2个实用接口(补充拓展,提升效率)

除了上面5个核心接口,再给大家补充2个高频实用接口,覆盖模型启停、批量操作场景,进一步满足项目开发需求,建议一起掌握~

1. /api/delete(删除本地模型)

  • 请求方法:POST

  • 核心作用:删除本地已安装的模型,释放磁盘空间,适合模型迭代、清理无用模型的场景(比如替换更高版本的模型、删除不常用的模型),是模型管理的重要补充接口。

  • 核心参数:model(需删除的模型名称,与/api/tags返回的模型名称一致)

  • curl示例:

  • curl http://localhost:11434/api/delete -d '{"model": "qwen2.5:7b"}'

2. /api/pull(拉取远程模型)

  • 请求方法:POST

  • 核心作用:从Ollama官方仓库拉取指定模型到本地,无需通过命令行操作,直接通过接口即可完成模型下载,适合批量部署、自动化拉取模型的场景,提升部署效率。

  • 核心参数:model(需拉取的模型名称,如llama3:70b、mistral:latest,可在Ollama官方仓库查询可用模型)

  • curl示例:

  • curl http://localhost:11434/api/pull -d '{"model": "llama3:70b"}'
  • 补充说明:拉取模型时,接口会返回下载进度,可通过监控接口响应,实现模型下载进度的可视化展示,便于批量管理模型下载任务。

四、接口一句话总结(快速记忆,备用查询)

为了方便大家快速记忆和查询,整理了所有接口的核心作用,贴在代码注释或备忘录里,随用随查:

  • /api/tags:查看本地已装模型(模型管理基础)

  • /api/generate:单轮文本生成/单次问答(无上下文)

  • /api/chat:多轮对话(带上下文记忆,聊天场景首选)

  • /api/embed:生成文本向量(RAG、检索场景必备)

  • /api/show:查看模型详细参数(调试、优化模型用)

  • /api/delete:删除本地模型(清理磁盘空间)

  • /api/pull:拉取远程模型(自动化部署模型)

五、实用小贴士(避坑指南)

结合自己的开发经验,给大家分享几个接口调用的避坑点,新手必看,少踩弯路:

  1. 调用接口前,务必确认Ollama服务已启动(终端执行ollama serve或至少运行过一次ollama run 模型名称),否则会出现Connection refused错误,无法连接接口。

  2. model参数必须与本地已安装的模型名称完全一致(包括标签,如qwen2.5:7b不能写成qwen2.5),否则会返回“model not found”错误,可通过/api/tags接口确认模型名称。

  3. 流式输出(stream: true)适合实时交互场景(如前端聊天界面),非流式输出(stream: false)适合批量处理、需要完整结果的场景,根据业务需求合理选择,避免不必要的性能消耗。

  4. 生成向量时,建议使用专门的嵌入模型(如nomic-embed-text),不要使用对话模型(如llama3、qwen2.5),否则会导致向量生成效果较差,影响检索精度。

  5. 默认情况下,Ollama会在模型最后一次使用后将其保存在内存中5分钟,若需立即释放内存,可通过终端执行ollama stop 模型名称,或调整keep_alive参数控制模型在内存中的保持时长。

六、总结

以上就是Ollama本地部署后最常用、最实用的7个API,覆盖了模型管理、文本生成、多轮对话、向量生成等90%以上的本地AI开发场景,接口简洁、无需复杂配置,复制示例就能直接调用,非常适合新手入门和项目快速集成。

我是直奔標杆,始终坚持“共同学习、分享经验”的理念,后续会持续分享Ollama相关的实战技巧(如RAG知识库搭建、接口批量调用、模型优化等),助力大家快速掌握本地大模型部署与调用技巧,少走弯路、直奔技术标杆!

如果大家在接口调用过程中遇到问题,或者有更好的实战经验,欢迎在评论区留言交流,一起进步、一起成长~ 觉得有用的话,别忘了点赞+收藏,后续查找更方便!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐