OneAPI启动时,如果发现没有数据库他会在项目根目录自动创建SqlLit,为提高OneAPI的性能及管理,这里给出一个使用MySQL数据库的案例,同时本文介绍如何在源码部署的情况下,设置OneAPI的开机自动启动。
OneAPI的源代码安装请参见该文:使用OneAPI创建LLM访问API Key-CSDN博客
本文介绍的安装环境为:
操作系统:ubuntu22.04
OneAPI安装位置为:/app/one-api
一:安装MySQL数据库
1、在ubuntu22.04上我们安装mariadb及相关依赖
apt update && sudo apt upgrade
apt install apache2 mariadb-server libapache2-mod-php php-gd php-mysql
apt install php-curl php-mbstring php-intl php-gmp php-bcmath php-xml php-imagick php-zip
2、初始化数据库:
mysql_secure_installation
#像这样配置它:
- Set root password? [Y/n] y
- Remove anonymous users? [Y/n] y
- Disallow root login remotely? [Y/n] y
- Remove test database and access to it? [Y/n] y
- Reload privilege tables now? [Y/n] y
3、配置MySQL
创建oneapi数据库,这一步无需导入表结构,因为OneAPI启动时会自动写入表结构。
mysql -u root -p
#创建oneapi数据库,并为root用户附权限。
CREATE DATABASE IF NOT EXISTS oneapi CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果想修改mysql root用户密码,请执行
mysql -u root
alter user 'root'@'localhost' identified by '<这里写新密码>';
FLUSH PRIVILEGES;
4、修改OneAPI配置文件
vim /app/one-api/.env
PORT=3000
DEBUG=false
HTTPS_PROXY=http://localhost:7890
SQL_DSN=root:<这里写用户密码>@tcp(localhost:3306)/oneapi
二:配置OneAPI的开机启动
本文仅介绍OneAPI以服务的形式开机启动,配置方法如下:
1、创建服务文件
vim /etc/systemd/system/one-api.service
编辑如下内容:
# /etc/systemd/system/oneapi.service
[Unit]
Description=oneapi Service
After=network.target
[Service]
User=root
Type=simple
WorkingDirectory=/app/one-api/ # 注意修改路径
ExecStart=/app/one-api/one-api --port 3000 --log-dir ./logs
Restart=always
[Install]
WantedBy=multi-user.target
2、为one-api.service附取限
cd /etc/systemd/system/
chmod 655 one-api.service
3、启动服务
systemctl daemon-reload
systemctl start one-api.service
4、设置开机启动
systemctl enable one-api.service
因为OneAPI的软件也在不断的升级,如果安装过程有变化,请遵照官方GitHub的方法进行调整。