首页 > 其他分享 >Ollama

Ollama

时间:2024-08-18 12:15:20浏览次数:13  
标签:Ollama base64 content role ollama 11434

安装

Docker

docker run -d -p 11434:11434 -e OLLAMA_HOST=0.0.0.0 --name ollama ollama/ollama

# 挂载GPU(--gpus=all)
docker run -d -p 11434:11434 -e OLLAMA_HOST=0.0.0.0 --name ollama --gpus=all ollama/ollama

Windows

  • 打开官网 > "Download" > Windows图标 > "Download for Windows"
  • 点击安装

Linux

  • 打开官网 > "Download" > Linux图标 > 复制下载命令
curl -fsSL https://ollama.com/install.sh | sh

验证

  • 验证ollama是否安装成功
# 打印Ollama版本
ollama -v
# ollama version is 0.3.4


# 请求Ollama服务(Windows直接浏览器访问 http://localhost:11434 效果相同)
curl localhost:11434
# Ollama is running

下载模型

  • ollama相当于平台,运行需要另外下载模型
  • 打开官网 > 右上角"Models" > 列表中选择一个模型
  • 模型详情页中,可以切换模型版本,然后复制代码下载模型
    • 大部分模型有多个版本,例如"8b"/"70b"/"405b"
# 查看已下载模型
ollama list

# 拉取模型(在Ollama官网的"Models"模块中)
ollama pull <模型名称>:<版本>
# 示例
ollama pull qwen2
ollama pull qwen2:0.5b

# 删除模型
ollama rm <模型名称>:<版本>
# 示例
ollama rm qwen2
ollama rm qwen2:0.5b

调用

cli调用

# 开启对话(未加载的会自动下载模型)
ollama run <模型名称>:<版本>

# 运行模型,进行问答
ollama run qwen2
>>> Send a message (/? for help)

API调用

# 根据提示词生成
# POST /api/generate
curl http://localhost:11434/api/generate -d '{
  "model": "llama3",
  "prompt": "如何调用ollama的api?",
  "stream": false
}'

# 识图
curl http://localhost:11434/api/generate -d '{
  "model": "llava",
  "prompt": "这张图片是什么意思(特定模型才有这个功能,如:llava)",
  "images": ["iVBORw0KGgoAA...(base64编码的图片)"]
  "stream": false
}'
  • 对话
    • role: 信息的角色,用于上下文信息,如"system","user","assistant"
      • system: 场景设定
      • user: 用户提问,或用户提供的信息
      • assistant: 一般是ollama响应,response里也会有role字段
    • content: 内容
    • images: 类似generate接口,使用base64编码
# 对话
# POST /api/chat
curl http://localhost:11434/api/chat -d '{
  "model": "qwen2",
  "messages": [
    { "role": "user", "content": "why is the sky blue?" }
  ]
}'

# 包含上下文(对话历史)
curl http://localhost:11434/api/chat -d '{
  "model": "llama3",
  "messages": [
    { "role": "system", "content": "你是小学老师,解答小学生回答的问题,解释尽量直白,能让小学生听懂"},
    { "role": "user", "content": "天空为什么是蓝色的?"},
    { "role": "assistant", "content": "阿巴阿巴..."},
    { "role": "user", "content": "说的简练一下,然后用英文终结一下"}
  ]
}'

python调用

pip install ollama
  • 基础用法
  • 对话
    • role: 信息的角色,用于上下文信息,如"system","user","assistant"
      • system: 场景设定
      • user: 用户提问,或用户提供的信息
      • assistant: 一般是ollama响应,response里也会有role字段
    • content: 内容
    • images: 类似generate接口,使用base64编码
import ollama

# 设置host
client = ollama.Client(host='http://localhost:11434')

# 拉取镜像(通义千问2,0.5b)
client.pull("qwen2:0.5b")

# 查看所有模型信息
images = client.list()
print(images)

# 调用generate接口
response = client.generate(model='llama3.1', prompt='python中如何调用ollama?')
print(response)

# chat接口(包含历史上下文)
response = client.chat("qwen2:0.5b", messages=[
    {"role": "system", "content": "你是小学老师,解答小学生回答的问题,解释尽量直白,能让小学生听懂"},
    {"role": "user", "content": "天空为什么是蓝色的?"},
    {"role": "assistant", "content": "阿巴阿巴..."},
    {"role": "user", "content": "说的简练一下,然后用英文终结一下"}
])
print(response)
  • 多模态(图片)
    • 多模态需要模型支持,如"llava"模型支持图片解析
    • 图片读写均使用base64编码
import base64


def read_image_as_base64(file_path):
    """读取图片,返回base64编码字符"""
    with open(file_path, 'rb') as f:
        images_bytes = f.read()

    base64_encoded = base64.b64encode(images_bytes)
    base64_str = base64_encoded.decode('utf-8')
    return base64_str

import ollama
from image_helper import read_image_as_base64


client = ollama.Client(host='http://localhost:11434')
response = client.generate(model="llava", prompt="描述一下这张图片里有哪些物体",
                           images=[read_image_as_base64("./cat.jpg")])
print(response)

js调用

npm i ollama
import ollama from 'ollama'

const response = await ollama.chat({
  model: 'llama3.1',
  messages: [{ role: 'user', content: 'Why is the sky blue?' }],
})
console.log(response.message.content)

局域网访问

Linux

# 修改Ollama配置
systemctl edit ollama.service

# 按下方修改后,重启服务
systemctl daemon-reload
systemctl restart ollama
  • 配置增加环境变量
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"


# 修改端口号拼接到0.0.0.0后面
# Environment="OLLAMA_HOST=0.0.0.0:11434"

Windows

  • 在环境变量里设置OLLAMA_HOST和OLLAMA_ORIGINS
  • 重启Ollama
OLLAMA_HOST=0.0.0.0
OLLAMA_ORIGINS=*

界面

Chatbox

  • 官网:https://chatboxai.app/zh
    • 可下载客户端
  • 设置Ollama访问地址即可
    • Ollama都在本机,直接使用 "http://localhost:11434" 访问
    • Ollama在其他主机时,Ollama需要配置局域网设置,然后使用ip访问

OpenWebUI

  • 官网:https://docs.openwebui.com/
  • 打开"外部链接"设置界面时很卡,发现是后台在查询openai接口,耐心等待一会儿

docker run -d -p 3000:8080 --gpus=all --name open-webui ghcr.io/open-webui/open-webui:ollama

# 单open-webui,然后设置ollama地址
docker run -d -p 3000:8080 --name open-webui ghcr.io/open-webui/open-webui:main
# 运行后,进入主页 > 头像 > 管理员面板 > 设置 > 外部连接 > Ollama API > 地址修改为Ollama地址

# ollama与open-webui同一台电脑
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway --name open-webui ghcr.io/open-webui/open-webui:main

标签:Ollama,base64,content,role,ollama,11434
From: https://www.cnblogs.com/XuXiaoCong/p/18365473

相关文章

  • 使用 Ollama 集成 GraphRag.Net:一步步教你如何实现
            在当今的技术世界,人工智能(AI)正在以惊人的速度发展。对于开发者来说,使用最新的工具和框架来提升工作效率至关重要。而在AI领域,GraphRag.Net作为一个强大的图算法框架,允许我们以高效的方式进行数据处理。同样,Ollama作为一个开源的、简单易用的AI模型部......
  • ollama windosw使用
    https://www.sysgeek.cn/ollama-on-windows/浏览器输入:http://localhost:11434/显示Ollamaisrunning表示正常启动当前已安装千问(qwen2:latest)#安装qwen2:latestollamapullqwen2:latest#安装聊天机器人ollamapullwangshenzhi/llama3-8b-chinese-chat-ollama-q4#安......
  • 笔记本电脑本地部署ollama大模型(显存不足调用CUDA Unified Memory方法)
    软硬件:win11,NVIDIAGeForceRTX3050显存4g一.ollama模型最低要求1.Llama3.1(8B)模型GPU:至少需要1张具有16GB显存的GPU(例如NVIDIATeslaV100或A100)。CPU:高性能的多核处理器(例如IntelXeon或AMDRyzen)。内存:最少32GB的系统内存。存储:需要大约......
  • ollama的set parameter的参数的注解
    >>>/setparameterAvailableParameters:/setparameterseed<int>Randomnumberseed/setparameternum_predict<int>Maxnumberoftokenstopredict/setparametertop_k<int>Pickfromtopk......
  • LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开
    LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开发1.Ollama部署的本地模型(......
  • 无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智
    无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案1.Dify简介1.1功能情况Dify,一款引领未来的开源大语言模型(LLM)应用开发平台,革新性地融合了后端即服务(BackendasaService,BaaS)与LLMOps的精髓,为开发者铺设了一条从创意原型到高效生......
  • LLaMA-Factory微调llama3之模型的合并,并采用llama.cpp量化成ollama支持的gguf格式模型
    上期我们已经成功的训练了模型,让llama3中文聊天版知道了自己的名字这次我们从合并模型开始,然后使用llama.cpp量化成gguf格式,并且调用api(1)前期准备上期链接: 基于LLaMA-Factory微调llama3成为一个角色扮演大模型,保姆级教学零基础,导出GGUF格式前篇-CSDN博客 首先根据上期......
  • Ollama+MaxKB 部署本地知识库
    Ollama+MaxKB部署本地知识库本文我们介绍另外一种部署本地知识库的方案:Ollama+MaxKB相对来说,容易安装且功能较完善,30分钟内即可上线基于本地大模型的知识库问答系统,并嵌入到第三方业务系统中。缺点是如果你的电脑配置不高,问题回答响应时间较长。下图为MaxKB的产......
  • 本地化部署GraphRAG+Ollama,实现基于知识图谱的智能问答
    citingfromhttps://medium.com/@vamshirvk/unlocking-cost-effective-local-model-inference-with-graphrag-and-ollama-d9812cc60466之前写过一篇使用deepseek和智谱AI实现《红楼梦》中人物关系智能问答的随笔但deepseek提供的免费tokens只有500万个,GraphRAG构建图谱的索引和......
  • ollama安装和运行llama3.1 8b
    ollama安装和运行llama3.18bcondacreate-nollamapython=3.11-ycondaactivateollamacurl-fsSLhttps://ollama.com/install.sh|shollamarunsongfy/llama3.1:8b就这么简单就能运行起来了.我们可以在命令行中与他交互.当然我们也可以用接口访问:curlhttp:/......