0


在本地部署Ollama服务接口附加OpenWebUI做测试

使用Ollama在本地部署一个类似openai的API做开发和测试

1、准备一个旧电脑

因为配置要求不高,五年前的电脑都能使用,装一块旧显卡,显存大一点的最好有8G。实在没显卡也没关系,电脑内存大也能运行,无非运行的慢一些不影响开发测试。在电脑上安装centos stream 9 服务器带界面版,装上显卡驱动,没有显卡的只装系统就行了。配置好能上网(本篇不用科学上网)。

2、安装ollama

随便一个目录下,执行如下命令:

curl -fsSL https://ollama.com/install.sh | sh

显示如下:表示安装成功

Downloading ollama...
######################################################################## 100.0%##O#-#
Installing ollama to /usr/local/bin...
Creating ollama user...
Adding ollama user to render group...
Adding ollama user to video group...
Adding current user to ollama group...
Creating ollama systemd service...
Enabling and starting ollama service...
Created symlink /etc/systemd/system/default.target.wants/ollama.service → /etc/systemd/system/ollama.service.
NVIDIA GPU installed.

查看ollama的状态

systemctl status ollama

安装成功后执行ollama -v命令,查看版本信息,如果可以显示则代表已经安装好

ollama -v

ollama version is 0.2.20

ollama安装完成后只能本机访问,如需外网访问,还要配置一下,或者使用代理转发来解决跨域访问问题。

cd到目录/etc/systemd/system下:vim ollama.service,在[Service]标签下添加如下两行并保存:
Environment="OLLAMA_HOST=:11434"
Environment="OLLAMA_ORIGINS=*"

这两行是解决其它电脑访问和跨域问题。注意版本号低于0.2.20的不支持IPv6,端口前面要加IP:0.0.0.0

重启服务:

systemctl daemon-reload

systemctl restart ollama.service

如不想修改服务器文件可设置代理。

3、加一个Qwen2模型测试

如果显卡大可以选个大模型。

ollama pull qwen2:7b //拉取一个模型,7b是中型的需要6G显存,也可以拉1.5b或0.5b的2G显存够了。

测试运行:

$ ollama run qwen2

启动完毕,到此其实我们已经有了一个控制台对话界面,已可以与Qwen2-7B对话了,/bye 退出。

至此就部署完毕,下面测试。

4、测试接口:可以用POST工具

这里推荐apipost软件。

ollama提供openai一样的API接口:
http://192.168.0.1:11434/v1/chat/completions
调用方式也是一样的:POST,认证选Bearer可以填ollama或其它,其实并不验证,只是为了与接口格式相兼容。
{"Content-Type": "application/json", Authorization: "Bearer ollama" }
{
"model": "Qwen2-7B",
"messages": [
{
"role": "system",
"content": "你是一个智能机器人助手,请帮助回答问题。"
},
{
"role": "user",
"content":"你好"
}
],
"temperature": 0.8,
"top_p": 0.8,
"max_tokens": 1024,
"echo": false,
"stream": false, //如果是true会有吐字效果;否则所有字都生成才返回。
"repetition_penalty": 1.1

}
返回内容:跟据是否stream为true或false,格式有所不同,在开发时注意choices下面是message还是delta。

5、使用OpenWebUI测试

安装Open WebUI,可用三种方法:

第一种是使用docker,我本不喜欢docker这个命令就不推荐这个方法了。这种方式网上一搜有一堆都是这种方法安装的。

第二种是使用git:环境要求:Node.js >= 20.10 和 Bun >= 1.0.21 并且 Python >= 3.11,不会装环境的参考后面第6条。

使用如下命令安装:没git命令可以yum install git安装一个。
$ git clone https://github.com/open-webui/open-webui.git
$ cd open-webui/

复制一份 .env 目录和文件

$ cp -RPp .env.example .env

用node编绎前端

$ npm i
$ npm run build

安装后端所需包

$ cd ./backend
下面这步要注意了:!!!如果不使用国内源,一天可能都在装包,不是吓唬,是真的包很多很慢。
如果网速不好,一定换国内源,如下:
$ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

安装包:

$ pip install -r requirements.txt -U

启动:
$ bash start.sh

运行不出错的话 http://localhost:8080/ ,但是不用科学上网的一定会出错😄
第一次启动会上huggingface网下载一点东西all-MiniLM-L6-v2:所以先指定一个镜像网站,再运行(也可以先魔搭上下载好,再把backend/apps/rag/utils.py里的第318行改成这样:embedding_model_repo_path = r'\下载目录\all-MiniLM-L6-v2'来运行。):

$ HF_ENDPOINT=https://hf-mirror.com bash start.sh 这样就不会出错了。

浏览器输入http://localhost:8080/去访问吧。

第三种最简单:新版的openwebui已经做到python的包里面了,至少需要python3.11版本。

使用pip install open-webui 安装,装之前最好设置国内源。

安装完成使用: open-webui serve启动,同样第一次运行要加变量指定镜像网站:

$ HF_ENDPOINT=https://hf-mirror.com open-webui serve

以后直接运行$ open-webui serve就行了。

启动后到http://localhost:8080/访问,先注册一个用户,进去后设置中文,设置外网链接:关掉openai接口,只留ollama接口,修改ollama接口IP或在本机上不用修改。选一下模型Qwen2-7B:latest就可以愉快的通过web界面进行聊天对话了。

6、附:安装环境

安装miniconda3

使用conda管理python虚环境,python的版本很多很乱,conda是一个很好的虚拟环境管理工具,使用miniconda管理python版本已经够用了:

cd /usr/local/src

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

sh Miniconda3-latest-Linux-x86_64.sh -p /usr/local/miniconda3

回车后一堆license的信息,这个按enter建后必须yes才能继续,按空格键一次一页快一些。

验证安装

You can undo this by running conda init --reverse $SHELL? [yes|no]
[no] >>>

You have chosen to not have conda modify your shell scripts at all.
To activate conda's base environment in your current shell session:
eval "$(/usr/local/miniconda3/bin/conda shell.YOUR_SHELL_NAME hook)"
To install conda's shell functions for easier access, first activate, then:
conda init

跟据 提示:执行命令eval "$(/usr/local/miniconda3/bin/conda shell.bash hook)"创建环境
然后执行conda init
显示:
no change /usr/local/miniconda3/condabin/conda
no change /usr/local/miniconda3/bin/conda
no change /usr/local/miniconda3/bin/conda-env
no change /usr/local/miniconda3/bin/activate
no change /usr/local/miniconda3/bin/deactivate
no change /usr/local/miniconda3/etc/profile.d/conda.sh
no change /usr/local/miniconda3/etc/fish/conf.d/conda.fish
no change /usr/local/miniconda3/shell/condabin/Conda.psm1
no change /usr/local/miniconda3/shell/condabin/conda-hook.ps1
no change /usr/local/miniconda3/lib/python3.12/site-packages/xontrib/conda.xsh
no change /usr/local/miniconda3/etc/profile.d/conda.csh
modified /root/.bashrc

==> For changes to take effect, close and re-open your current shell. <==
可以查看/root/.bashrc文件备更改增加了环境参数如下:

>>> conda initialize >>>

!! Contents within this block are managed by 'conda init' !!

__conda_setup="$('/usr/local/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/usr/local/miniconda3/etc/profile.d/conda.sh" ]; then
. "/usr/local/miniconda3/etc/profile.d/conda.sh"
else
export PATH="/usr/local/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup

<<< conda initialize <<<

个人不太喜欢进入系统的时候自动激活conda的base环境,因为会占用时间,切换节点会延迟,所以关掉自动激活base环境:
conda config --set auto_activate_base false
重启:# reboot

#设置conda镜像源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --set show_channel_urls yes

#最好安装完重启一下系统

创建python虚环境:

conda create -n python311 python=3.11(如果精确到子版本可用两个等号如:==3.10.6,否则是大版本的最新子版本。)

conda env list 显示创建的环境。

进入和退出python虚环境,进入后命令提示符前面显示虚环境名称:

conda activate python311

如果退出使用:# conda deactivate

#在py311环境下设置pip镜像源

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

安装node :

linux自带的node.js版本有些老了,不够用的,网上查了一下node也象python一样版本很多情况复杂,也有象conda 这样的版本管理的软件nvm来管理版本。
先装nvm
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

安装node.js 20的最新子版本

$ nvm install 20

node -v # 显示版本号:v20.15.1

npm -v # 显示版本号: 10.7.0,npm是node带的包管理器命令,就象python里的pip一样。

安装Bun:

Open WebUI用到了bun命令,Bun是和node差不多的框架。

下载安装脚本并开始安装

curl -fsSL https://bun.sh/install | bash

刷新环境变量

source /home/username/.bashrc

查看是否安装成功

bun --help
bun -v 显示1.1.1

7、ollama命令说明,更新和清除

ollama的操作命令跟docker操作命令非常相似:
ollama serve # 启动ollama
ollama create # 从模型文件创建模型
ollama show # 显示模型信息
ollama run # 运行模型
ollama pull # 从注册仓库中拉取模型
ollama push # 将模型推送到注册仓库
ollama list # 列出已下载模型
ollama cp # 复制模型
ollama rm # 删除模型
ollama help # 获取有关任何命令的帮助信息

更新和安装一样再执行一遍命令:

curl -fsSL https://ollama.com/install.sh | sh

卸载Ollama:
停止并禁用服务
systemctl stop ollama
systemctl disable ollama

删除服务文件和Ollama二进制文件
rm /etc/systemd/system/ollama.service
rm $(which ollama)

清理Ollama用户和组
rm -r /usr/share/ollama
userdel ollama
groupdel ollama


本文转载自: https://blog.csdn.net/alalaal/article/details/140529382
版权归原作者 alalaal 所有, 如有侵权,请联系我们删除。

“在本地部署Ollama服务接口附加OpenWebUI做测试”的评论:

还没有评论