在本地部署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
 

  • 46
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当您需要部署Ollama时,您需要先租用一台云服务器并在该服务器上安装Ollama。 以下是Ollama部署步骤: 1. 在您的云服务器上安装Java环境。 2. 下载并解压Ollama的最新版本。 3. 配置Ollama的配置文件,包括数据库、邮件和安全设置等。 4. 启动Ollama服务。 具体步骤如下: 1. 登录到您的云服务器。 2. 安装Java环境(请根据您的操作系统版本和类型选择相应的Java版本)。 - 如果您的服务器是基于Linux操作系统的,请使用以下命令安装Java: sudo apt-get install openjdk-8-jdk - 如果您的服务器是基于Windows操作系统的,请到Java官网下载并安装适用于Windows操作系统的Java版本。 3. 下载最新版本的Ollama。 4. 解压Ollama,例如: tar -zxvf ollama.tar.gz 5. 配置Ollama的配置文件。您可以使用文本编辑器打开“config.properties”文件并按照说明进行修改。 - 数据库配置:您需要指定数据库的连接信息,包括数据库类型、地址、端口、用户名和密码等。 - 邮件配置:如果您想启用邮件通知功能,您需要提供SMTP服务器、端口、用户名和密码等信息。 - 安全配置:您可以配置安全相关参数,如HTTPS证书、XSS保护和CSRF保护等。 6. 启动Ollama服务。在解压后的目录下使用以下命令启动服务: java -jar ollama.jar 如果一切正常,您应该可以通过浏览器访问OllamaWeb界面。默认情况下,Ollama Web界面可以通过“http://localhost:8080”或“http://服务器IP地址:8080”进行访问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值