大模型接口管理和分发系统One API

文章讲述了在音视频技术公司中,为解决实际开发中的咨询问题,老苏计划利用GPT模型构建私有知识库,通过OneAPI分发和管理OpenAI等多平台的模型,以提升客户服务体验。文章详细介绍了OneAPI的工作原理和如何配置不同模型的接入和使用方法,包括Docker部署和APIKey管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

One-API 支持通过标准的 OpenAI API 格式访问所有的大模型,开箱即用。

老苏就职于一家专注于音视频实时交互技术和智能算法的创新企业。公司通过提供全面的 SDK 和解决方案,助力用户轻松实现实时音视频通话和消息传递等功能。尽管公司网站上有详细的文档中心,但在实际开发中,仍面临大量咨询工作。

鉴于此,老苏考虑利用 GPT 模型的卓越文本生成功能,构建一个企业级的私有知识库。通过用户输入,生成连贯、有逻辑的回复,并通过不断训练和优化,打造一个更智能、更个性化的客户服务体验。

接下来,我们将分三篇文章来实践这一解决方案的可能性,看看效果到底如何?


什么是 One API ?

One-APIOpenAI 接口管理 & 分发系统,支持 AzureAnthropic ClaudeGoogle PaLM 2 & Gemini、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元,可用于二次分发管理 key,仅单可执行文件,已打包好 Docker 镜像,一键部署,开箱即用。

One API 可以用来管理模型池,其可以兼容 OpenAIAzure 、国内主流模型和本地模型等

工作原理如下:

  • 渠道页面中添加你的 API Key
  • 然后在令牌页面中新增访问令牌
  • 客户端使用令牌访问 One API
  • 根据请求中的 model 参数,匹配对应的渠道(根据渠道里的模型进行匹配,必须完全一致)。如果匹配到多个渠道,则随机选择一个(同优先级)
  • One API 向真正的地址发出请求,并将结果返回给客户端
使用 One API 分发的 key 进行请求
中继请求
中继请求
中继请求
中继并修改请求体和返回体
用户
One API
OpenAI
Azure
其他 OpenAI API 格式下游渠道
非 OpenAI API 格式下游渠道

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 one-api ,选择第一个 justsong/one-api,版本选择 latest

本文第一次折腾时, latest 版本对应为 v0.5.7-alpha.1;本文写作时,latest 版本对应为 v0.6.5

docker 文件夹中,创建一个新文件夹 one-api,并在其中建一个子文件夹 data

文件夹装载路径说明
docker/one-api/data/data存放数据库和日志等

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
30333000

环境

可变
TZ设为 Asia/Shanghai

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 one-api 和 子目录
mkdir -p /volume1/docker/one-api/data

# 进入 one-api 目录
cd /volume1/docker/one-api

# 运行容器
docker run -d \
   --restart always \
   --name one-api \
   -p 3033:3000 \
   -v $(pwd)/data:/data \
   -e TZ=Asia/Shanghai \
   justsong/one-api

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  one-api:
    image: justsong/one-api
    container_name: one-api
    restart: unless-stopped
    ports:
      - 3033:3000
    volumes:
      - ./data:/data
    environment:
      - TZ=Asia/Shanghai

然后执行下面的命令

# 新建文件夹 one-api 和 子目录
mkdir -p /volume1/docker/one-api/data

# 进入 one-api 目录
cd /volume1/docker/one-api

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3033 就能看到主界面

登陆 按钮

初始管理员账号用户名为 root,密码为 123456

当然也可以注册新用户

登陆成功之后的主界面

【注意】:记得立刻修改默认密码!

新建渠道

添加新的渠道

Moonshot AI

Moonshot AI 为例

  • 类型: 类型下拉选择 Moonshot AI

这是 Moonshot 的开发者账号,新用户注册会有 15 元额度。这和之前我们用的 kimi-free-api 中介绍的 refresh_token 不是一个概念。

保存之后,可以 测试

如果没问题的话,会提示测试成功

kimi-free-api

当然,我们也可以添加之前使用过的 kimi-free-api

kimiMoonshot 基于 Moonshot AI 开发的产品

  • 类型:选择 自定义渠道
  • Base URL:填入 kimi-free-api 的访问地址 http://群晖IP:8126
  • 名称:例如:kimi-free-api
  • 分组:default就行
  • 模型:输入自定义模型名称,填入 即可
  • 秘钥:从 kimi.moonshot.cn 网页上获取的 refresh_token

保存之后,可以测试一下是否设置正确

创建令牌

要二次分发使用,还需要有令牌

用于控制可使用的模型、额度、时限等

【注意】:这里没有设置模型范围,意味着后续添加的新渠道的模型,都是可以通过这个令牌进行访问的

保存之后

ChatGPT Next Web 为例

会得到一个字符串,其中

  • key :对应的是 ChatGPT Next Web 的环境变量 OPENAI_API_KEY
  • url:对应的是 ChatGPT Next Web 的环境变量 BASE_URL,但不能用 http://localhost:3000,而要使用外部地址 http://http://群晖IP:3033

ChatGPT Next Web

还是以 ChatGPT-Next-Web 为例

文章传送门:跨平台私人ChatGPT应用ChatGPT-Next-Web

如果你还没安装 ChatGPT-Next-Web ,可以用下面的命令一键搞定

# 运行容器  
docker run -d \  
   --restart unless-stopped \  
   --name chatgpt-next-web \  
   -p 3059:3000 \  
   -e OPENAI_API_KEY=<你的 key> \  
   -e BASE_URL=http://<你的群晖IP>:3033 \  
   -e CUSTOM_MODELS="-all,+moonshot-v1-8k,+moonshot-v1-32k,+moonshot-v1-128k" \  
   yidadaa/chatgpt-next-web

如果你已经安装过ChatGPT-Next-Web,需要修改三个环境变量参数

  • OPENAI_API_KEY:之前不论你是安装的 FreeGPT35 还是 aurora,这个值都是随便填的,现在必须改为我们前面获取的 key
  • BASE_URL:填写 One API 服务的地址 + 端口
服务名称服务地址
FreeGPT35http://192.168.0.197:3044
aurorahttp://192.168.0.197:8328
GPT4Freehttp://192.168.0.197:1337
kimi-free-apihttp://192.168.0.197:8126
One APIhttp://192.168.0.197:3033
  • CUSTOM_MODELS :用来控制模型列表,使用 + 增加一个模型,使用 - 来隐藏一个模型,使用 模型名=展示名 来自定义模型的展示名,用英文逗号隔开。需改为 -all,+moonshot-v1-8k,+moonshot-v1-32k,+moonshot-v1-128k

重新启动 ChatGPT-Next-Web 容器后,进入的设置,可以看到模型已经改变了

接下来就可以开始聊天了

当然,One API 作为分发系统,还支持充值、兑换、日志等功能

参考文档

songquanpeng/one-api: OpenAI 接口管理 & 分发系统,支持 Azure、Anthropic Claude、Google PaLM 2、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元,可用于二次分发管理 key,仅单可执行文件,已打包好 Docker 镜像,一键部署,开箱即用. OpenAI key management & redistribution system, using a single API for all LLMs, and features an English UI.
地址:https://github.com/songquanpeng/one-api

### RAGFlow OneAPI 使用指南及集成方法 #### 关于 RAGFlow OneAPI 的概述 RAGFlow 是一种专注于应用程序开发协作的知识管理工具,能够帮助开发者更有效地创建、共享利用知识资源。而 OneAPI 则是一个支持多种主流大模型 API 的统一管理分发系统[^1]。 #### 安装与配置 OneAPI 为了使用 OneAPI 来连接不同的 AI 模型服务,首先需要安装并配置该平台: - **获取镜像**:由于 OneAPI 支持 Docker 部署,可以通过拉取官方提供的 Docker 镜像来快速启动环境。 ```bash docker pull oneapi/image:latest ``` - **运行容器**:接着可以使用如下命令启动容器实例,并映射必要的端口以便访问 Web 界面或其他接口。 ```bash docker run -d --name=oneapi-server -p 8080:8080 oneapi/image:latest ``` - **初始化设置**:首次登录时按照提示完成基本的账户注册或导入现有的 API 密钥等操作即可开始探索其特性。 #### 将 RAGFlow 整合至 OneAPI 中 为了让 RAGFlow 更好地协同工作,在 OneAPI 上实现高效的项目管理任务分配等功能,则需考虑以下几个方面: - **API 对接**:确保两者之间存在有效的通信渠道,这通常涉及到 RESTful 或 GraphQL 接口的设计以及 OAuth2 认证机制的应用程序编程接口对接过程[^2]。 - **数据同步**:建立定期的数据交换策略,使来自不同系统的最新信息能够在适当的时间点被对方所接收;例如,每当有新的讨论帖子发布时自动推送到关联的工作区里显示出来。 - **权限控制**:考虑到安全性因素,应该仔细规划哪些级别的用户有权执行特定类型的请求动作——比如只有管理员才能修改全局参数设定之类的规则。 ```python import requests def integrate_ragflow_with_oneapi(api_key, ragflow_endpoint, oneapi_url): headers = { 'Authorization': f'Bearer {api_key}', 'Content-Type': 'application/json' } response = requests.post( url=f'{oneapi_url}/integrations', json={ "source": "ragflow", "targetEndpoint": ragflow_endpoint, "syncInterval": "daily" }, headers=headers ) if response.status_code == 200: print("Integration successful!") else: print(f"Failed to integrate: {response.text}") ``` 此 Python 函数展示了如何通过 POST 请求向 OneAPI 发送指令以添加一个新的集成功能,其中包含了目标 RagFlow 实例的位置其他必要细节。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨浦老苏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值