ai本地化 部署常用Ollama软件

devtools/2025/3/18 13:56:16/

现在用最简单的方式介绍一下 Ollama 的作用和用法:

Ollama 是什么?

Ollama 是一个让你能在自己电脑上免费运行大型语言模型(比如 Llama 3、Mistral 等)的工具。

相当于你本地电脑上有一个类似 ChatGPT 的 AI,但完全不用联网,所有数据都在自己电脑里处理,更安全、更私密。

它有什么用?

  1. 离线使用 AI:不联网也能和 AI 对话、生成文本、写代码等。

  2. 保护隐私:你的对话内容不会上传到服务器,适合处理敏感信息。

  3. 开发者友好:方便测试、调试 AI 模型,或集成到自己的项目中。

怎么用?(3步搞定)

1. 安装 Ollama
  • Mac/Linux:官网下载安装包,或终端直接运行:

curl -fsSL https://ollama.com/install.sh | sh
  • Windows(测试版):从官网下载安装包。Ollama主页:https://ollama.com/
    在这里插入图片描述
windows 环境配置
  • 关闭开机自启动(可选):
    Ollama 默认会随 Windows 自动启动,可以在「文件资源管理器」的地址栏中访问以下路径,删除其中的Ollama.lnk快捷方式文件,阻止它自动启动。
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup

在这里插入图片描述

  • 配置环境变量(必须):
    Ollama 的默认模型存储路径如下:C:\Users%username%.ollama\models,无论 C 盘空间大小,需要安装多少模型,都建议换一个存放路径到其它盘,否则会影响电脑运行速度。

打开「系统环境变量」,新建一个系统变量OLLAMA_MODELS ,然后设置ollama模型的存储路径。

变量名:OLLAMA_MODELS

变量值(路径):D:\Work\ollama\models

  • 配置端口(可选):
    Ollama API 的默认访问地址和侦听端口是http://localhost:11434,只能在装有 Ollama 的系统中直接调用。如果要在网络中提供服务,请修改 API 的侦听地址和端口(在系统环境变量里设置):

变量名:OLLAMA_HOST

变量值(端口)::8000

只填写端口号可以同时侦听(所有) IPv4 和 IPv6 的:8000 端口。(变量值的端口前号前有个冒号:)

注:要使用 IPv6,需要 Ollama 0.0.20 或更高版本。另外,可能需要在 Windows 防火墙中开放相应端口的远程访问。

  • 允许浏览器跨域请求(可选):
    Ollama 默认只允许来自127.0.0.1和0.0.0.0的跨域请求,如果你计划在其它前端面板中调用 Ollama API,比如Open WebUI,建议放开跨域限制:

变量名:OLLAMA_ORIGINS

变量值:*

2. 下载模型

在终端输入命令下载模型(比如下载最流行的 Llama 3):

ollama run llama3  # 自动下载并运行

在这里插入图片描述

其他模型(如 mistralphi3gemma)同理,替换名字即可。
执行指令ollama run <模型名称>,首次执行会从模型库中下载模型,所需时间取决于你的网速和模型大小。模型库地址:https://ollama.org.cn/library

3. 开始对话

运行模型后,直接在终端输入问题,比如:

>>> 用一句话解释量子力学
>>> 写一个Python代码计算斐波那契数列

在这里插入图片描述

Ctrl+D 或输入 /bye 退出。

如果觉得直接在黑框里运行不优雅,可以将Ollama接入到成熟的UI系统中,比如Open WebUI,地址如下:
https://github.com/ollama/ollama?tab=readme-ov-file#community-integrations

常用命令

  • ollama list:查看已下载的模型

  • ollama run 模型名:运行指定模型

  • ollama pull 模型名:只下载不运行

  • ollama rm 模型名:删除模型

Usage:ollama [flags]ollama [command]Available Commands:serve       启动 Ollama 服务create      从 Modelfile 创建一个模型show        查看模型详细信息run         运行一个模型stop        停止正在运行的模型pull        从注册表拉取一个模型push        将一个模型推送到注册表list        列出所有可用的模型ps          列出当前正在运行的模型cp          复制一个模型rm          删除一个模型help        获取关于任何命令的帮助信息Flags:-h, --help      help for ollama-v, --version   Show version information

高级用法

  • 网页端对话:安装后访问 http://localhost:11434 使用网页界面。

  • API 调用:可以用代码通过接口调用本地模型(类似 OpenAI 的 API)。

  • 自定义模型:修改模型参数后,用 ollama create 创建自己的版本。

调用 Ollama 接口

Ollama 提供了丰富的 API 接口,供外部调用访问。详细的 接口文档 可以在官方 GitHub 中找到。

接口名称接口地址请求方法接口描述
Generate/api/generatePOST使用提供的模型为给定提示生成响应。
Chat/api/chatPOST使用提供的模型生成聊天中的下一条消息
Create/api/createPOST从 Modelfile 创建一个新的模型。
Tags/api/tagsGET列出本地可提供的型号。
Show/api/showPOST获取指定模型的详细信息。
Copy/api/copyPOST从现有模型创建副本。
Delete/api/deleteDELETE删除模型及其数据。
Pull/api/pullPOST从 Ollama 库中下载指定模型。
Push/api/pushPOST将模型上传到模型库。
Embed/api/embedPOST使用指定模型生成嵌入。
ListRunning/api/psPOST列出当前加载到内存中的模型。
Embeddings/api/embeddingsPOST生成嵌入(与 Embed 类似,但可能适用场景不同)。
Version/api/versionGET获取 Ollama 服务的版本号。

适合谁用?

  • 想本地体验 AI 的普通用户

  • 开发者测试 AI 功能

  • 学习 AI 技术的学生/研究者

  • 需要处理敏感数据的企业

总结:Ollama = 本地版 ChatGPT + 简单操作 + 完全免费 + 隐私保护,适合对 AI 感兴趣的所有人!


http://www.ppmy.cn/devtools/168067.html

相关文章

代码随想录算法训练营第34天 | 62.不同路径 63. 不同路径 II 整数拆分 不同的二叉搜索树 (跳过)

62.不同路径 62. 不同路径 - 力扣&#xff08;LeetCode&#xff09; 本题大家掌握动态规划的方法就可以。 数论方法 有点非主流&#xff0c;很难想到。 代码随想录 视频讲解&#xff1a;动态规划中如何初始化很重要&#xff01;| LeetCode&#xff1a;62.不同路径_哔哩哔哩_b…

实用小工具——快速获取数据库时间写法

最近我遇到了一个比较棘手的问题&#xff1a;在工作中&#xff0c;各个项目所使用的数据库类型各不相同。这导致我习惯性地使用Oracle的SQL语句进行编写&#xff0c;但每次完成后都会遇到报错&#xff0c;最终才意识到项目的数据库并非Oracle。为了避免这种情况&#xff0c;我需…

基于RK3588的建筑测量机器人应用解决方案

建筑业作为国民经济的重要组成部分&#xff0c;随着国家政策和建筑行业的智能化需求的增长&#xff0c;建筑测量机器人作为新兴技术代表&#xff0c;正逐步成为提升建筑业生产效率、保障施工安全、降低人工成本的关键力量。 建筑测量机器人具备高精度、智能化、自动化等特点&am…

通过turfjs使用线段分割矢量多边形

文章目录 前言分割矢量多边形 一、安装turf二、加载高德三、绘制图形四、计算交点五、编写获取子多边形的函数六、调用分割函数并绘制图像七、效果 前言 分割矢量多边形 一、安装turf npm i turf/turf二、加载高德 AMapLoader.load({key: "你的key", // 申请好的…

【Json—RPC框架】:宏定义不受命名空间限制,续行符的错误使用造成的bug

为什么不受命名空间的限制&#xff1f; 宏处理在预处理阶段&#xff0c; 预处理在编译之前&#xff0c;编译才进行语法分析&#xff0c;语义分析。命名空间也只能限制这部分。 在Json-RPC框架的实现中&#xff0c;遇到如下问题。一开始以为是在实现日志宏的时候&#xff0c;有…

python-websocket压力测试

一.websocket简介及安装 使用pip命令安装websocket库&#xff1a;pip install websocket-client websocket.WebSocketApp 是对 websocket.WebSocket 的封装&#xff0c;支持自动定时发送 PING 帧&#xff0c;支持事件驱动方式的数据帧接收&#xff0c;可用于长期的 WebSocket…

TypeScript接口 interface 高级用法完全解析

TypeScript接口 interface 高级用法完全解析 mindmaproot(TypeScript接口高级应用)基础强化可选属性只读属性函数类型高级类型索引签名继承与合并泛型约束设计模式策略模式工厂模式适配器模式工程实践声明合并类型守卫装饰器集成一、接口核心机制深度解析 1.1 类型兼容性原理 …

Maven学习

Maven是用来构建项目&#xff0c;管理依赖的 Maven项目结构 main主要写实现代码&#xff0c;test是写测试代码不会被打包 resource放静态资源&#xff0c;webapp存放web开发内容。 pom文件包括项目版本号内容以及相关配置以及后续依赖 Maven依赖导入&#xff0c;就是直接写…