OneAPI开源大模型网关部署:支持国产数据库(达梦/人大金仓)存储用户与渠道数据
OneAPI开源大模型网关部署支持国产数据库达梦/人大金仓存储用户与渠道数据1. 引言为什么你需要一个统一的大模型网关如果你正在使用或者计划使用大模型大概率会遇到这样的烦恼每个厂商的API格式都不一样密钥管理起来一团糟费用统计更是让人头疼。今天要介绍的OneAPI就是来解决这些问题的。简单来说OneAPI是一个开源的LLM API管理和分发系统。它最大的价值在于让你可以用一套标准的OpenAI API格式去访问市面上几乎所有主流的大模型。无论是OpenAI的GPT、百度的文心一言还是阿里的通义千问你都不需要再去研究它们各自复杂的接口文档OneAPI帮你统一搞定。更棒的是它支持将用户数据和渠道数据存储到国产数据库里比如达梦DM和人大金仓Kingbase这对于有特定数据存储要求的团队来说是个非常实用的功能。这篇文章我会带你从零开始手把手完成OneAPI的部署并重点讲解如何配置国产数据库。整个过程非常简单基本上就是下载、配置、运行三步走开箱即用。2. 快速了解OneAPI的核心能力在动手部署之前我们先快速浏览一下OneAPI能为你做什么。了解它的能力你才能更好地判断它是否适合你的场景。2.1 广泛的模型支持这是OneAPI最强大的地方。它就像一个“万能转换器”把不同厂商的API都转换成了OpenAI的格式。目前支持的主流模型包括但远不止这些国际模型OpenAI GPT系列、Anthropic Claude系列、Google Gemini系列、xAI Grok等。国内模型百度文心一言、阿里通义千问、讯飞星火、智谱ChatGLM、字节豆包、腾讯混元、360智脑、DeepSeek等。其他服务Ollama本地模型、Together.ai、Novita.ai等第三方代理服务。这意味着你可以在一个界面里管理所有这些模型的访问密钥并用同一套代码调用它们。2.2 企业级管理功能如果你不只是自己用还需要给团队或客户提供API服务OneAPI的管理功能就派上用场了用户与令牌管理可以创建用户为其分配API令牌并设置额度、过期时间、访问频率限制和允许访问的模型列表。渠道管理与负载均衡可以为同一个模型配置多个供应商渠道比如多个OpenAI账号并设置负载均衡策略提升可用性和分摊额度。财务管理支持设置充值链接、生成兑换码、查看详细的额度消耗明细并以美元显示费用方便成本核算。自定义与扩展可以自定义系统名称、Logo、首页甚至通过管理API进行功能扩展无需修改源代码。2.3 部署与存储灵活性部署简单提供独立的可执行文件和Docker镜像基本上是一键部署。数据库支持默认使用SQLite方便轻量级使用。也支持MySQL、PostgreSQL等。最重要的是它支持达梦数据库和人大金仓数据库满足国产化需求。高可用支持多机部署构建高可用的API网关集群。接下来我们就进入实战环节看看如何把它跑起来。3. 环境准备与一键部署OneAPI的部署方式非常灵活你可以根据自身环境选择。这里我们以最常见的Docker部署为例这也是最推荐的方式能避免很多环境依赖问题。3.1 部署前提条件确保你的服务器或本地开发环境已经安装Docker和Docker Compose。这是运行容器的基础。一个顺手的终端工具比如Mac的Terminal或Windows的PowerShell。可选但推荐一个域名和SSL证书如果你计划对外提供服务。3.2 使用Docker Compose快速启动这是最快上手的方法。创建一个名为docker-compose.yml的文件内容如下version: 3.8 services: oneapi: image: justsong/one-api:latest container_name: one-api restart: always ports: - 3000:3000 # 将容器内的3000端口映射到宿主机的3000端口 volumes: - ./data:/data # 持久化存储数据包括SQLite数据库如果使用 environment: - SQL_DSNsqlite:///data/oneapi.db # 默认使用SQLite数据文件会保存在./data目录下 - SESSION_SECRETyour_strong_session_secret_here # 请务必修改为一个强随机字符串 - TZAsia/Shanghai # 设置时区保存这个文件后在同一个目录下打开终端执行一条命令docker-compose up -d等待命令执行完毕Docker会自动拉取镜像并启动容器。现在打开你的浏览器访问http://你的服务器IP:3000或http://localhost:3000就能看到OneAPI的登录界面了。首次登录重要提示 系统默认的管理员账号是root密码是123456。出于安全考虑登录后第一件事就是去修改这个默认密码3.3 直接使用可执行文件部署如果你不想用Docker也可以直接下载对应平台的可执行文件。去OneAPI的GitHub Releases页面下载最新版本。解压后你会得到一个名为one-api的可执行文件。在终端中运行它chmod x one-api # 如果是Linux/Mac需要添加执行权限 ./one-api --port 3000 --sql-dsn sqlite:///data/oneapi.db同样通过浏览器访问http://localhost:3000即可。至此一个最基本的OneAPI服务就已经跑起来了。但我们现在用的是默认的SQLite数据库。接下来我们看看如何切换到国产数据库。4. 配置国产数据库达梦/人大金仓OneAPI使用GORM作为ORM框架理论上支持GORM所支持的所有数据库。对于达梦和人大金仓需要通过自定义驱动来实现。4.1 使用达梦数据库DM前提你已经在服务器上安装并运行了达梦数据库并创建好了一个用于OneAPI的数据库例如oneapi。步骤一修改Docker Compose配置我们需要修改之前的docker-compose.yml文件主要是更新环境变量SQL_DSN并挂载达梦的驱动文件。version: 3.8 services: oneapi: image: justsong/one-api:latest container_name: one-api restart: always ports: - 3000:3000 volumes: - ./dm-driver:/dm-driver # 挂载达梦数据库驱动目录 # 注意我们不再挂载./data卷因为数据将存储在达梦数据库中 environment: # 达梦数据库连接字符串示例 # 格式dm://用户名:密码数据库地址:端口?schema模式名charsetutf8 - SQL_DSNdm://oneapi_user:YourPassword123192.168.1.100:5236?schemaONEAPIcharsetutf8 - SESSION_SECRETyour_strong_session_secret_here - TZAsia/Shanghai # 告诉OneAPI使用达梦驱动 - GORM_DRIVERdm # 指定达梦驱动jar包路径驱动需预先准备 - DM_DRIVER_PATH/dm-driver/dm-jdbc-driver.jar步骤二准备达梦数据库驱动从达梦官网下载对应版本的JDBC驱动通常是DmJdbcDriver18.jar之类的文件。在宿主机上创建一个目录如./dm-driver将驱动jar包放入。确保docker-compose.yml中volumes部分正确映射了这个目录。步骤三启动并初始化运行docker-compose up -d。OneAPI在首次启动时会自动根据SQL_DSN连接到达梦数据库并创建所需的表结构。4.2 使用人大金仓数据库Kingbase配置流程与达梦类似区别在于连接字符串和驱动。修改Docker Compose配置version: 3.8 services: oneapi: image: justsong/one-api:latest container_name: one-api restart: always ports: - 3000:3000 volumes: - ./kingbase-driver:/kingbase-driver # 挂载人大金仓驱动目录 environment: # 人大金仓数据库连接字符串示例基于PostgreSQL协议 # 格式host地址 port端口 user用户名 password密码 dbname数据库名 sslmodedisable - SQL_DSNhost192.168.1.101 port54321 useroneapi_user passwordYourPassword123 dbnameoneapi sslmodedisable - SESSION_SECRETyour_strong_session_secret_here - TZAsia/Shanghai # 人大金仓通常兼容PostgreSQL协议 - GORM_DRIVERpostgres # 指定驱动路径如果需要特定驱动 - KINGBASE_DRIVER_PATH/kingbase-driver/kingbase8-8.6.0.jar准备驱动从人大金仓官网下载对应的JDBC驱动jar包并放置到挂载目录中。4.3 验证数据库连接部署完成后如何确认OneAPI已经成功连接到了国产数据库呢查看日志使用命令docker logs one-api查看容器日志如果没有报数据库连接错误通常就是成功了。登录管理后台用root账号登录OneAPI后台。检查数据尝试创建一个用户或一个渠道然后到达梦或人大金仓的客户端中查询对应的表如users,channels看看是否有新数据插入。这是最直接的验证方式。切换到国产数据库后所有的用户信息、渠道配置、消费记录等数据都会安全地存储在你自己的数据库服务器中。5. 基础配置与使用指南服务跑起来数据库也连上了现在我们来让它真正工作起来添加模型渠道并测试API调用。5.1 添加你的第一个模型渠道我们以添加一个OpenAI渠道为例使用root账号登录OneAPI管理后台http://localhost:3000。在左侧菜单找到渠道-新建渠道。填写渠道信息渠道类型选择OpenAI。渠道名称起个容易识别的名字如我的GPT-4。密钥填入你的OpenAI API Key格式以sk-开头。代理可选如果你的网络需要可以填写代理地址例如http://your-proxy.com:8080。模型可选可以手动填写此渠道支持的模型如gpt-3.5-turbo, gpt-4不填则默认支持所有。点击提交。渠道状态显示为已启用绿色即表示添加成功。添加其他模型流程完全一样只是在“渠道类型”中选择对应的供应商如百度文心一言、阿里通义千问等然后填入该平台提供的API Key和相应的Base URL如果需要。5.2 创建用户并获取令牌渠道是“货源”用户是“买家”。接下来我们创建一个API用户。在左侧菜单进入令牌-新建令牌。填写令牌信息名称用于区分如测试用户A。过期时间设置令牌的有效期。剩余额度给这个令牌分配多少额度单位是美元。模型权限可以限制这个令牌只能访问哪些模型如只允许用gpt-3.5-turbo。点击提交。系统会生成一个以sk-开头的密钥这个密钥只会显示一次请务必妥善保存。这就是你的用户调用API时需要的凭证。5.3 像调用OpenAI一样调用所有模型这是最精彩的部分。假设你保存的令牌是sk-abc123...。以前你用Python调用OpenAI可能是这样的from openai import OpenAI client OpenAI(api_key你的-openai-key, base_urlhttps://api.openai.com/v1)现在你只需要把base_url改成你的OneAPI地址api_key换成刚才生成的OneAPI令牌from openai import OpenAI # 注意base_url 指向你自己的 OneAPI 服务地址 client OpenAI(api_keysk-abc123..., base_urlhttp://localhost:3000/v1) # 发起一个聊天请求模型名写你在OneAPI里看到的任意支持的模型 completion client.chat.completions.create( modelgpt-3.5-turbo, # 这里可以换成 qwen-max, ernie-bot, spark-v3 等等 messages[ {role: user, content: 你好请介绍一下你自己。} ] ) print(completion.choices[0].message.content)看到了吗代码几乎不用改。无论你想调用文心一言还是通义千问只需要修改model参数即可。OneAPI帮你完成了所有复杂的适配工作。5.4 关键功能体验查看消费在日志页面可以查看所有API调用的详细记录包括消耗的额度。负载均衡为同一个模型类型如gpt-3.5-turbo添加多个渠道后在渠道页面可以设置负载均衡模式如轮询、权重当一个渠道额度用完或故障时会自动切换到下一个。自定义模型名在模型页面你可以设置“模型映射”。比如用户请求gpt-4你可以实际让他使用qwen-max。这在做成本优化或A/B测试时很有用。6. 总结OneAPI带来的改变走完整个部署和配置流程你会发现OneAPI确实大大简化了多模型管理的复杂度。我们来总结一下它的核心价值1. 统一入口降低开发成本你再也不需要为每个大模型供应商编写不同的API调用代码。一套基于OpenAI格式的代码走遍天下。这对于需要快速切换或对比不同模型效果的应用来说效率提升是巨大的。2. 集中管理提升运营效率所有API密钥、用户、额度、消费记录都在一个后台管理。你可以清晰地看到每个模型、每个用户的费用情况方便进行成本控制和财务核算。3. 支持国产满足合规需求对国产数据库达梦、人大金仓的支持是OneAPI一个非常重要的特性。这使得它能够进入对数据存储有国产化要求的项目或单位拓宽了应用场景。4. 开源灵活可按需扩展作为开源项目你可以查看其全部代码并根据自己的业务需求进行定制化开发。通过它提供的管理API你甚至可以在不修改源码的情况下集成到自己的运维体系中。给初学者的最后建议先从Docker SQLite的方式体验最快几分钟就能看到效果。熟悉基本操作后如果确有需求再考虑迁移到达梦或人大金仓这类企业级数据库。无论你是个人开发者、小团队还是有一定规模的企业OneAPI都能为你管理大模型API带来极大的便利。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2491919.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!