Linux配置Ollama
Ollama配置笔记
一、Ollama简介
Ollama是一个开源项目,旨在简化大规模语言模型的使用和部署。它允许用户在本地或云端运行各种语言模型,而不需要依赖外部API或第三方服务。Ollama支持模型的快速加载和推理,并提供易于使用的命令行工具和API,使得开发者能够方便地与模型进行交互。
Ollama的特点包括:
- 本地部署:用户可以在自己的机器上运行模型,提高数据隐私和安全性。
- 多模型支持:支持多种语言模型,用户可以根据需要选择合适的模型。
- 高效推理:优化推理过程,提升响应速度。
- 灵活性:可以与其他工具和框架集成,方便构建复杂的应用。
Ollama官方地址:Ollama
二、配置环境
- Ubuntu24.04.1
- 内存单通道DDR4 32G,处理器 Intel Xeon Gold 5218 4X8核,硬盘128G
三、配置Ollama
1.安装Ollama
(1) 访问Ollama官网选择Linux,执行官方提供的安装方法:
curl -fsSL https://ollama.com/install.sh | sh
这个方法的优点是一键安装,开箱即用,非常方便,缺点是国内的原因,下载极慢而且极不稳定,亲测通过科学上网的方式依旧无法安装。
(2) 另一个办法就是访问Ollama的Linux版Github主页:ollama/docs/linux.md at main · ollama/ollama · GitHub
使用Manual install方法:
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz
这个方法的优点是比第一种要快一些,但依旧不稳定,经常断开连接,可能是我科学上网的方式有问题。
(3)以上两种方式我都尝试了,但始终没有成功,所以有了如下手动下载解压的方法。
首先使用一台科学上网的电脑访问:https://ollama.com/download/ollama-linux-amd64.tgz下载ollama的Linux压缩包,然后将压缩包复制到用户目录下解压即可使用。
命令如下:
sudo apt update
sudo apt upgrade curl
curl -O https://ollama.com/download/ollama-linux-amd64.tgz
tar -xzvf filename.tar.gz
我使用Windows下载的压缩包,并将其拷贝到了我的虚拟机中,为了方便下载我已将压缩包上传至百度网盘:
链接: https://pan.baidu.com/s/1y4DVyOzku-vMSzb0WZABnw 提取码: 2zmn
下载完成后到该目录执行tar -xzvf filename.tar.gz解压即可。
此时Ollama已经下载安装完成,执行
ollama serve
启动Ollama服务。执行
ollama -v
查看Ollama服务是否成功启动。

2.配置Ollama远程访问
Ollama服务启动后,默认只可本地访问,访问地址:
http:127.0.0.1:11434
想要实现外部访问需要修改其配置文件。
执行如下命令打开配置文件
sudo nano /etc/systemd/system/ollama.service
将如下内容复制到配置文件中:
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="OLLAMA_HOST=0.0.0.0:11434"
[Install]
WantedBy=default.target
修改完成后重启服务:
sudo systemctl daemon-reload
sudo systemctl enable ollama
此时在浏览器中访问:http://0.0.0.0:11434出现如下页面即说明服务启动成功。

3.运行模型
此处选用的是qwen2.5:3b模型。运行
ollama run qwen2.5:3b
即可调用模型,首次调用需要下载模型,后续调用无需下载。

执行Ollama list可查看已经下载的模型信息

更多指令可使用ollama --help查看。
四、Python访问Ollama
Python为Ollama提供了专门的包,以方便用户在此基础上进行相关的开发工作。
首先要安装对应的模块:
pip install ollama
我们下载运行的模型默认是不提供长会话的,对此我进行了一些封装,以便其支持长会话操作:
import json
from typing import List
import ollama
class MyOllama(object):
class ModelList:
"""
Ollama模型列表
"""
Qwen2_5_3b = "qwen2.5:3b"
class Role:
"""
由Ollama官方定义,用于区分消息是由哪个角色提供
"""
User = "user" # 用户信息,一般指用户提问
System = "system" # 系统信息,一般用于设定场景
Assistant = "assistant" # 系统回答
def __init__(self, host: str, port: int, temperature=0, history_size: int = 5 * 1024 * 1024):
"""
初始化一个客户端
:param host:
:param port:
:param temperature: 情感度,默认为0
:param history_size: 历史会话大小,默认为5MB
"""
self.history_size = history_size
self.temperature = temperature
self.client = ollama.Client(host=f"http://{host}:{port}")
self.content: List[dict] = []
def single_conversation(self, model: str, content: str):
"""
单次会话
:param model: 调用模型,由OllamaList提供
:param content: 会话内容
:return:
"""
try:
res = self.client.chat(model=model, messages=[{"role": MyOllama.Role.User, "content": content}],
options={"temperature": self.temperature})
return res["message"]["content"]
except Exception as e:
raise Exception(e)
def long_conversation(self, model: str, content: str):
"""
长会话
:param model: 调用模型,由OllamaList提供
:param content: 会话内容
:return:
"""
input_message = {"role": MyOllama.Role.User, "content": content}
self.content.append(input_message)
# 更新历史记录大小
while MyOllama.get_history_size(self.content) > self.history_size:
self.content.pop(0) # 移除最早的消息
try:
res = self.client.chat(model=model, messages=self.content, options={"temperature": self.temperature})
message = res["message"]["content"]
self.content.append({"role": "assistant", "content": message})
return message
except Exception as e:
raise Exception(e)
@staticmethod
def get_history_size(history):
"""历史记录的大小(字节)"""
return sum(len(json.dumps(message).encode('utf-8')) for message in history)
以下是调用测试:
单次会话调用测试
from MyOllama.myOllama import MyOllama
host = "10.1.3.139"
port = 434
my_ollama = MyOllama(host, port, temperature=100)
if __name__ == '__main__':
while True:
in_put = input("请输入:")
if in_put == "":
continue
message = my_ollama.single_conversation(MyOllama.ModelList.Qwen2_5_3b, content=in_put)
print(message)
结果如下:

可以看到,单次会话没有连续性。
长会话调用测试
from MyOllama.myOllama import MyOllama
host = "10.1.3.139"
port = 434
my_ollama = MyOllama(host, port, temperature=100)
if __name__ == '__main__':
while True:
in_put = input("请输入:")
if in_put == "":
continue
message = my_ollama.long_conversation(MyOllama.ModelList.Qwen2_5_3b, content=in_put)
print(message)
结果如下:

可以看到对话具有逻辑连续性。
五、总结
以上就是对Ollama的配置使用以及在此基础上进行开发的方法总结,欢迎指正。
更多推荐



所有评论(0)