当前位置: 首页 > news >正文

Ollama学习1:安装、命令、API

文章目录

    • 概述
    • 模型厂家
    • 安装
      • Windows
      • Linux
      • Docker
    • 环境变量
    • 命令
    • 查看下载的模型支持什么能力
    • API
      • 版本
      • 运行中的模型列表
      • 某个模型信息展示
      • 列出下载好的所有模型信息
      • 普通文本问答(常用)
      • 识图问答(常用)
      • 输入文本总结文本内容,并且指定回答内容是Json,里面字段的含义以及数据类型
      • 文本问答(基于前后,进行插入补全代码)
      • 函数调用

概述

作用: 直接在本地计算机上快速部署和运行管理开源大语言模型,提供命令提问、api接口访问等

官网: https://ollama.com/

支持系统: windows、macos、linux

模型查看: https://ollama.com/search

API接口文档: https://github.com/ollama/ollama/blob/main/docs/api.md
官方说明,硬件可部署的模型量: 您应该至少有8GB的RAM内存条则可用于运行7B模型,16GB用于运行13B模型,32GB用于运行33B模型

模型厂家

国内
国外
国外
国内
国内
国外
国外
国外
国内
模型厂家
国内
国外
qwen:阿里开源
gemma:谷歌开源
llama:脸书Facebook开源
deepseek:深度开源 - 深度思考模型开创者
GLM:智谱开源
devstral:Mistral AI公司开源
phi:微软开源
Command R:Cohere开源
Yi:零一万物

安装

下载地址: https://ollama.com/download

安装成功后,会对外开发11434端口: http://IP地址:11434/

在这里插入图片描述

Windows

注意事项: 直接安装包,没啥配置的,安装成功后,命令行会有 ollama 命令使用

修改模型下载位置(默认C盘): 添加环境变量【OLLAMA_MODELS】用于指定模型下载的目录

在这里插入图片描述

Linux

Docker

环境变量

参数标识与配置
OLLAMA_MODELS拉取的模型存放位置,建议必须修改调整,要不然撑爆系统C盘
OLLAMA_HOST可以允许外部访问的IP地址,默认只能本127.0.0.1,如果需要支持外部访问,需调整成0.0.0.0 == 修改需要重启
OLLAMA_PORTAPI的端口号,默认11434
OLLAMA_ORIGINSHTTP客户端的请求来源,用于配置跨域资源共享(CORS)如果本地使用不受限制,可以设置成星号*
OLLAMA_KEEP_ALIVE单位(秒)大模型加载到内存中后的存活时间 默认300,0代表处理请求响应后立即卸载模型,任何负数则表示一直存活
OLLAMA_NUM_PARALLEL请求处理的并发数量,默认为1
OLLAMA_MAX_QUEUE请求队列长度,默认值为512
OLLAMA_DEBUG输出 Debug 日志,应用研发阶段可以设置成1(即输出详细日志信息,便于排查问题)
OLLAMA_MAX_LOADED_MODELS最多同时加载到内存中模型的数量,默认为1

命令

// ollama 支持的所有子命令
ollama -h// 程序版本号
ollama -v// 查看已下载的模型列表
ollama list//  查看 已下载的 某个模型 信息
ollama show 模型名// 正在运行中的模型
ollama ps// 启动运行某个模型,如果没有下载镜像,则会先去下载模型再启动运行
ollama run 模型名// 删除某个模型
ollama rm 模型名//  停止某个模型
ollama stop 模型名

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

查看下载的模型支持什么能力

ollama show 模型名

在这里插入图片描述

API

API接口文档: https://github.com/ollama/ollama/blob/main/docs/api.md

generate接口: 单问题回答,请求体不能输入前面的问答历史,对于知识问答挺有作用的吧

chat接口: 记录上下文历史回答,请求体能输入前面的问答历史,对于聊天很关键

版本

# ollama版本查看
curl --request GET --url http://127.0.0.1:11434/api/version

在这里插入图片描述

运行中的模型列表

# 运行中的模型列表
curl --request GET --url http://localhost:11434/api/ps

在这里插入图片描述

某个模型信息展示

# 某个模型信息展示curl --request POST  --url http://localhost:11434/api/show   --data "{\"model\": \"deepseek-r1:1.5b\"}"

在这里插入图片描述

列出下载好的所有模型信息

# 当前你的Oollama程序已经下载的模型
curl --request GET --url http://localhost:11434/api/tags

在这里插入图片描述

普通文本问答(常用)

# 文本问答
curl --request POST --url http://localhost:11434/api/chat --data "{\"model\": \"qwen3:1.7b\",\"messages\": [{\"role\": \"user\",\"content\": \"你是由哪家公司开发出来的\"}],\"stream\": false}"

在这里插入图片描述

识图问答(常用)

# 文本问答
curl --request POST --url http://localhost:11434/api/generate --data "{\"model\": \"qwen2.5vl:3b\",\"prompt\": \"这张图片里面有什么\",\"stream\": false,\"images\": [\"图片的Base64编码\"]}"

在这里插入图片描述

输入文本总结文本内容,并且指定回答内容是Json,里面字段的含义以及数据类型

# 文本问答
curl --request POST --url http://localhost:11434/api/chat --data "请求体内容"
// 上面的接口的请求体示例值
{"model": "qwen3:1.7b","messages": [{"role": "user","content": "小兔子在森林里迷路了,遇到了善良的猫头鹰。猫头鹰用智慧指引它回家,小兔子感激不已。从此,它们成了无话不谈的好朋友. 总结这段故事基于JSON结构,需要里面出现的事物,以及这个故事的简介10个字"}],"stream": false,"format": {"type": "object","properties": {"thing": {"type": "array"},"briefIntroduction": {"type": "string"}},"required": ["thing","briefIntroduction"]},"options": {"temperature": 0}
}

在这里插入图片描述

文本问答(基于前后,进行插入补全代码)

注意: 需要模型能力支持:insert

# 文本问答
curl --request POST --url http://localhost:11434/api/generate --data "请求体内容"

{"model": "qwen2.5-coder:7b","prompt": "public static String propertiesToYaml(String propertiesContent) {","suffix": "   }","options": {"temperature": 0},"stream": false
}

在这里插入图片描述

函数调用

注意: 需要模型能力支持:tools

# 文本问答
curl --request POST --url http://localhost:11434/api/chat --data "请求体内容"
{"model": "qwen3:1.7b","messages": [{"role": "user","content": "为什么狗会吃屎?"},{"role": "assistant","content": "<think>\n嗯,用户问为什么狗会吃屎。首先,我需要确认这个问题的背景。可能用户是出于好奇,或者在观察动物行为时遇到了这种情况。不过,从科学角度来看,狗吃屎其实并不是什么特别的习性,可能只是本能行为。\n\n首先,我得回忆一下狗的行为学。狗作为动物,它们的本能可能包括捕食、狩猎,但吃屎可能和这些无关。不过,可能有其他因素,比如清洁、消化,或者某种本能。比如,狗可能通过吃粪便来检测周围是否有危险,或者帮助消化。\n\n不过,科学上是否真的有这种行为呢?可能需要查证。比如,是否有研究显示狗吃屎?或者是否属于正常行为?比如,有些狗可能因为习惯而这样做,但并不是所有狗都会。可能和品种、训练有关。\n\n另外,用户可能误解了某些行为,或者有其他意图,比如想了解狗的行为模式,或者是否有健康问题。需要解释清楚,同时避免误导。\n\n还要注意,用户可能对狗的行为有误解,比如认为狗是“恶习”,但实际上可能只是本能或习惯。需要区分本能和习性,以及可能的健康因素,比如消化问题,但通常狗不会因为吃屎而生病,除非有特殊原因。\n\n可能还需要提到,虽然狗吃屎在某些情况下是本能,但在野外可能更常见,而在家养环境下可能因为训练或习惯而出现。同时,不同品种的狗可能有不同的行为,比如牧羊犬可能更倾向于吃粪便,而其他品种可能较少。\n\n最后,要确保回答准确、科学,并且易于理解,避免使用专业术语,同时给出全面的信息,帮助用户正确理解狗的行为。\n</think>\n\n狗吃屎的现象在动物行为学中并不常见,但可以从以下几个角度解释:\n\n### 1. **本能行为 vs. 习性**\n   - **本能行为**:狗的本能可能包括清洁、检测环境、消化残留物等。例如,狗通过吃粪便来感知周围是否有危险(如寄生虫、细菌)或帮助消化。\n   - **习性**:部分狗因习惯或训练(如牧羊犬、导盲犬等)可能更倾向于吃粪便,但这属于个体差异,非普遍现象。\n\n### 2. **生理需求**\n   - **消化系统**:狗的肠道菌群和消化能力较弱,部分粪便可能难以完全消化,导致它们通过吃粪便“清理”体内残留物。\n   - **卫生习惯**:在野外,狗通过吃粪便检测环境中的寄生虫或细菌,这是生存的本能。\n\n### 3. **环境因素**\n   - **野外 vs. 家养**:在自然环境中,狗可能因本能而吃粪便;而在家养环境下,若缺乏训练或环境干扰,可能因习惯或好奇心而出现。\n   - **品种差异**:某些品种(如牧羊犬、猎犬)因工作需要,可能更频繁地接触粪便,从而形成习惯。\n\n### 4. **误解与误区**\n   - **人类认知偏差**:人类可能将狗吃粪便视为“恶习”,但这是动物的自然行为,而非故意行为。\n   - **健康问题**:若狗因消化问题(如肠梗阻)而吃粪便,需及时就医,但正常情况下这类行为并不常见。\n\n### 5. **科学解释**\n   - **行为学研究**:动物行为学家发现,狗的“吃粪便”行为可能与以下因素相关:\n     - **清洁本能**:通过吃粪便检测环境中的寄生虫或细菌。\n     - **消化需求**:部分粪便可能难以消化,需通过吃粪便“清理”。\n     - **环境适应**:在自然环境中,这种行为是生存的必要手段。\n\n### 总结\n狗吃屎并非“恶习”,而是动物的自然行为,可能与本能、生理需求或环境因素有关。若发现狗异常行为(如频繁吃粪便),建议观察其健康状况,必要时咨询兽医。理解这一现象有助于更科学地看待动物行为。"},{"role": "user","content": "今天是2025-05-12,广州前天天气怎么样?"}],"stream": false,"tools": [{"type": "function","function": {"name": "get_current_weather","description": "获取某个地方某天的天气","parameters": {"type": "object","properties": {"location": {"type": "string","description": "客户询问的天气的地方 比如:佛山、东莞、北京等"},"day": {"type": "string","description": "客户询问的天气日期 比如:2025-03-10,20250101"}},"required": ["location", "day"]}}}]
}

在这里插入图片描述

http://www.xdnf.cn/news/645715.html

相关文章:

  • C++语言入门————高精度计算
  • 基于RK3568处理器实现8路CAN总线PLC解决方案
  • numpy执行无缘无故崩溃 没有报错
  • Autodl训练Faster-RCNN网络--自己的数据集(二)
  • PCB文件从 Allegro 24.1 降级保存为 Allegro 17.4版本格式
  • 李沐《动手学深度学习》| 4.4 模型的选择、过拟合和欠拟合
  • Mujoco 学习系列(六)官方教程 The introductory tutorial teaches MuJoCo basics
  • 53页 @《人工智能生命体 新启点》中國龍 原创连载
  • Learning Transferable Visual Models From Natural Language Supervision
  • 国内云平台RTX 5090租赁及LLM微调推荐
  • 系统编程day04
  • 分库分表深度解析
  • Go语言Map的底层原理
  • springboot 控制层调用业务逻辑层,注入报错,无法自动装配 解决办法
  • [yolov11改进系列]基于yolov11的骨干轻量化更换backbone为shufflenetv2网络python源码+训练源码
  • Win11亮度条和亮度设置消失的解决方法
  • Go并发模式详解:Fan-in与Fan-out的实战应用
  • lec11-并发控制
  • LeetCode --- 450周赛
  • 自动化测试②
  • loss的范围
  • 创建一个PCB封装(Altium Designer)
  • pandas高效实现数据对比解决方案
  • DBLab:一个免费的AI数据库管理工具
  • QML学习07Property
  • 使用Zotero的RSS订阅功能快速了解感兴趣领域最新文章
  • LLM基础-什么是大模型推理(LLM Inferencing)
  • Pypiserver
  • LeetCode 每日一题 2025/5/19-2025/5/25
  • 在langchain4j中 UserMessage注解和SystemMessage两个注解的区别