本地离线安装Ollama
本地离线安装Ollama
概述
官方提供了一个下载和执行的脚本,但是由于网络原因,该脚本实在太慢了,只能手动下载安装包。此时,虽然安装包已经下载了,但不要自己解压安装,否则会出现很多未知的错误。最好是用官方提供的脚本来安装。
下载安装包
官方给出的最简单的安装脚本是:
curl -fsSL https://ollama.com/install.sh | sh
但是很无赖,国内执行该脚本时非常慢,更本无法安装。
需要手动在这里下载安装包:
https://github.com/ollama/ollama/releases/
由于我的是linux-cpu-x86的系统,所以现在下载这个包:
然后把这个包放到一个目录下,比如:/var/ollama/
下载并修改安装脚本
这一步就是使用官方提供的安装脚本来安装ollama。
- 先下载安装脚本:
$ cd /var/ollama/
$ curl https://ollama.com/install.sh -o install.sh
- 修改install.sh脚本
把脚本中所有的这几行都注释掉。注释掉的地方是不需要下载安装包的代码,因为下载的过程会很慢。
# curl --fail --show-error --location --progress-bar \
# "https://ollama.com/download/ollama-linux-${ARCH}.tgz${VER_PARAM}" | \
# $SUDO tar -xzf - -C "$OLLAMA_INSTALL_DIR"#curl --fail --show-error --location --progress-bar \
# "https://ollama.com/download/ollama-linux-${ARCH}-jetpack6.tgz${VER_PARAM}" | \
# $SUDO tar -xzf - -C "$OLLAMA_INSTALL_DIR"#curl --fail --show-error --location --progress-bar \
# "https://ollama.com/download/ollama-linux-${ARCH}-jetpack5.tgz${VER_PARAM}" | \
# $SUDO tar -xzf - -C "$OLLAMA_INSTALL_DIR"#curl --fail --show-error --location --progress-bar \
# "https://ollama.com/download/ollama-linux-${ARCH}-rocm.tgz${VER_PARAM}" | \
# $SUDO tar -xzf - -C "$OLLAMA_INSTALL_DIR"
在install_success()函数的上面添加一个命令:
$SUDO tar -xzf ollama-linux-amd64.tgz -C "$OLLAMA_INSTALL_DIR"
注:我这里下载的包是ollama-linux-amd64.tgz,包名可以根据自己的包名修改。
运行安装脚本
脚本修改好了后,把install.sh和压缩包放到一个目录下:
./install.sh
配置ollama
默认情况下ollama是绑定在127.0.0.1这个ip地址上,这样远程就没法访问,所以需要修改配置。
另外,我要把模型保存在/var/ollama-models目录下,也需要修改。
- 修改模型保存路径
vim /etc/profile
# 添加以下内容:# for ollama
export OLLAMA_MODELS=/var/ollama-models
export OLLAMA_HOST=0.0.0.0:11434
让配置生效:
. /etc/profile
启动服务
ollama serve &
查看一下监听端口是否正确:
$ netstat -ltnp
(base) root@tra:/var/ollama-models# netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::11434 :::* LISTEN 6547/ollama
拉取模型
拉取模型:
ollama pull qwen2.5:7b
通过rest api访问ollama
- 通过langgraph来访问ollama
from langchain_ollama import ChatOllamalocal_llm = "Qwen2.5:7b"
base_url = "http://172.16.1.xx:11434"
llm = ChatOllama(model=local_llm, base_url=base_url)
- 通过llama-index来访问ollama
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.llms.ollama import Ollamalocal_model = "/opt/models/BAAI/bge-base-en-v1.5"# bge-base embedding model
Settings.embed_model = HuggingFaceEmbedding(model_name=local_model)
# ollama
Settings.llm = Ollama(model="gemma2", request_timeout=360.0)from llama_index.core import VectorStoreIndex, SimpleDirectoryReaderdata = SimpleDirectoryReader(input_dir="./data/paul_graham/").load_data()
index = VectorStoreIndex.from_documents(data)# 设置使用react模式
chat_engine = index.as_chat_engine(chat_mode="react", llm=Settings.llm, verbose=True)response = chat_engine.chat( "Use the tool to answer what did Paul Graham do in the summer of 1995?")
总结
本文介绍了ollama的离线安装方式。国内通过官方的命令无法很好的安装ollama,只能通过离线方式来安装。但离线安装最好借助官方提供的脚本来安装才比较方便。