所有大模型封装成统一API:快捷使用各种大模型

人工智能
OneAPI 是一个开源项目,旨在帮助用户将不同的大模型封装成统一的 OpenAI 协议接口。它支持源码部署和 Docker 部署,其中 Docker 部署更为简便。

之前同事在部署大模型的时候,一直想怎么解决不同大模型部署之后,怎么提供统一的Api而苦恼。

我也在做大模型项目的时候,遇到这个问题。在之前一直是利用不同家的大模型自己去封装协议。非常麻烦!!!

别急,今天介绍的这个 GitHub 开源项目满足你我所有幻想:OneAPI,一款接口管理和分发神器,将所有大模型一键封装成OpenAI协议。

传送门:https://github.com/songquanpeng/one-api

话不多说,上实操!

1. 服务部署

作者了提供了源码部署和 Docker 部署两种方式,其中源码部署需要分别构建前端和后端,相对麻烦一点。

接下来,就把 OneAPI 部署在这台云服务器上,如果你用本地 Linux 虚拟机当然也没问题。

因为本项目还依赖数据库的服务,所以我们采用 docker-compose 的方式来进行部署,简单几步就能搞定,极大降低小白的部署门槛。

1.1 创建 docker-compose 文件

打开一个终端:

mkdir oneapi
cd oneapi/
touch docker-compose.yml

把下述脚本复制到 docker-compose.yml 中:

version: '3.8'
services:
  oneapi:
    container_name: oneapi
    image: justsong/one-api:latest
    restart: unless-stopped
    network_mode: bridge
    ports:
      - 13000:3000
    volumes:
      - ./data:/data
    environment:
      - TZ=Asia/Shanghai

简单介绍下上面几个参数:

  • version: 指定了Compose文件格式的版本,用于确保配置文件与Docker Compose的版本兼容,最新版docker-compose已不需要这个字段;
  • services: 定义了应用程序中的服务,每个服务运行在独立的容器中;
  • image:镜像地址,国内服务器用阿里云的镜像会非常快,海外服务器不建议用阿里云的镜像;
  • ports: 3001:3000 意味着容器内部的3000端口映射到宿主机的3001端口,用于防止宿主机端口冲突;
  • volumes: ./mysql:/var/lib/mysql 意味着将本地的./mysql目录挂载到容器的/var/lib/mysql目录,用于数据持久化。

1.2 服务启动

配置好 docker-compose.yml 文件后,采取如下命令一键启动:

sudo docker-compose up -d

等待拉取镜像,终端出现如下提示,说明成功启动:

[+] Running 3/3
 ✔ Network oneapi_default  Created                   
 ✔ Container mysql         Started                   
 ✔ Container oneapi        Started

2. OneAPI 登录

还记得 OneAPI 的端口号不?3001!

因此,浏览器中的访问地址应该是:http://IP:Port,例如:http://129.150.63.xxx:3001

但这时,上述地址是打不开的,还需要到服务器中把 3001/3306 端口的防火墙打开。防火墙打开后,上述地址就可以访问了:

图片图片

首先需要登录,初始账号名 root,密码 123456,登录后立即修改密码。

图片图片

登录成功后,你会发现 Tab 页多了几个选项,这些只有超级管理员能看到:

图片图片

接下来,我们一一了解下系统的几个模块。

2.1 用户

首先我们看下用户管理模块,左下角可以新增用户。

图片图片

点击右侧编辑,可以发现用户分组有三个。分组有什么用?假如你在这个系统中代理 10 种大模型并商业化,可以设定 VIP 可以使用其中的 2 种模型,而 SVIP 可以使用全部。如果自己玩,那随意。

图片图片

2.2 渠道

渠道用来管理和添加各个大模型厂商的 LLM。只有超级管理员才能设置。

在渠道管理中,左下角点击添加新的渠道:

图片图片

2.2.1 渠道添加

图片图片

提交后,点击右侧测试,看看是否能够调用成功。

图片图片

再次,比如我们还要用Ollama部署的模型,添加则更加简单根据配置就好了:

图片图片

但是,要特别注意代理的地址:如果是Ollama记得用http://host.docker.internal:11434

2.2.2 渠道列表

其他厂商基本和上述一致,最后,给大家看下我的渠道列表:

图片图片

2.3 令牌

这个模块用于创建令牌,供客户端或调用方使用,其作用跟 LLM的令牌(或密钥)的作用是一样的。点击复制后,会显示在上方搜索框。

图片图片

当然也可以选择添加新的令牌,如果仅仅是自用,可以设为无限额度,永不过期;如果是外发给其他人使用的,你可以给他设置一个限量:

图片图片

有了令牌,就可以采用 OpenAI 协议的 API 调用了。

2.4 兑换 和 充值

这两个模块是为了商业化准备的。

兑换模块,用于管理兑换码,类似话费充值卡。

图片图片

充值模块,用于给账户充值,与兑换配合使用。输入一个有效兑换码,就相当于给当前账户充值对应的额度,用于供令牌调用消耗。

图片图片

2.5 日志 和 设置

日志模块,用于展示用户充值和额度消耗记录。

图片图片

设置模板,包括个人设置、运营设置、系统设置和其他设置,整个系统的商业化功能还是挺完备的。

图片图片

3. 总结

OneAPI 是一个开源项目,旨在帮助用户将不同的大模型封装成统一的 OpenAI 协议接口。它支持源码部署和 Docker 部署,其中 Docker 部署更为简便。

通过 docker-compose.yml 文件,可以快速启动服务,包括数据库和 OneAPI 本身。部署后,用户可以通过设定的端口访问 OneAPI 的 Web 界面,进行用户管理、渠道管理、令牌创建等操作。OneAPI 还提供了商业化功能,如兑换码管理和充值模块,以及日志和设置模块,以满足不同用户的需求。

通过 OneAPI,用户可以轻松管理和调用多个大模型,无需为每个模型单独封装协议。

责任编辑:武晓燕 来源: 数据AI指北
相关推荐

2023-11-03 07:47:12

机器资源大模型:

2024-05-29 09:34:02

GPTs原生API

2023-08-03 19:10:15

机器人AI

2023-10-28 13:29:27

2024-04-15 13:51:03

模型LLMLLMs

2023-07-28 08:08:09

大淘宝数据模型数据治理

2023-11-05 10:04:47

2023-12-08 07:48:42

GPT模型时间序列

2024-05-31 14:23:15

2024-03-11 00:09:00

模型融合场景

2023-06-05 10:09:03

研究人工智能

2023-08-04 17:07:05

2022-11-10 10:14:12

人工智能

2023-04-19 20:08:55

模型OpenAIAPI

2024-01-05 07:41:34

OpenLLM大语言模型LLM

2023-08-31 17:23:48

ChatGPT人工智能

2023-05-10 14:40:40

AI模型算力

2023-06-19 19:26:54

模型开源
点赞
收藏

51CTO技术栈公众号