文章

基于docker搭建newapi图文教程

本文作者:猫猫摸大鱼 原文地址:https://iloli.love/archives/1771845921615

1. 前言

本文隶属于 OpenClaw龙虾系列教程文章 ,也可单独作为 newapi 搭建教程文章阅读,可以访问OpenClaw龙虾系列教程文章目录 https://iloli.love/archives/1766849996690 查看其它文章

本文基于newapi v0.11.0-alpha.5版本,Github地址为 https://github.com/QuantumNous/new-api

newapi 是一个聚合API项目,能够将其它免费或付费 API 接入,并统一到一个API接口,从而方便供给OpenClaw或其它客户端使用

该项目可以作为个人用途使用,也可以分发多人使用,目前市面上的中转站基本都是基于该项目,本文中仅作为个人用途使用

该项目有更多玩法,本文只赘述其中一部分,其他请自行探索

本系列教程全程使用腾讯云轻量应用服务器,可以参加腾讯云OpenClaw专属活动进行购买,新客68/年起,老客99/年起

活动链接 https://cloud.tencent.com/act/pro/lighthouse-moltbot (无AFF) http://to.iloli.love/openclaw (有AFF)

就算不买也强烈推荐使用有 快照 功能的厂商的服务器进行搭建,并且一定要经常打快照,不要问为什么,血的教训,血的教训,血的教训

2. 搭建

首先选择一个目录,本文中使用的是 /data/newapi ,先在该目录下创建 compose.yaml 文件

然后在以下两个版本里面任选其一复制(3000端口比较常见容易被占用所以这里我改成了3480,可自行修改为其它端口)

精简单容器版本

services:
  new-api:
    image: calciumion/new-api:latest
    container_name: new-api
    restart: always
    command: --log-dir /app/logs
    ports:
      - "3480:3000"
    volumes:
      - ./data:/data
      - ./logs:/app/logs
    environment:
      - TZ=Asia/Shanghai
    healthcheck:
      test: ["CMD-SHELL", "wget -q -O - http://localhost:3000/api/status | grep -o '\"success\":\\s*true' || exit 1"]
      interval: 30s
      timeout: 10s
      retries: 3

Redis+PG数据库版本

services:
  new-api:
    image: calciumion/new-api:latest
    container_name: new-api
    restart: always
    command: --log-dir /app/logs
    ports:
      - "3480:3000"
    volumes:
      - ./data:/data
      - ./logs:/app/logs
    environment:
      - SQL_DSN=postgresql://root:123456@postgres:5432/new-api
      - REDIS_CONN_STRING=redis://redis
      - TZ=Asia/Shanghai
    depends_on:
      - redis
      - postgres
    healthcheck:
      test: ["CMD-SHELL", "wget -q -O - http://localhost:3000/api/status | grep -o '\"success\":\\s*true' || exit 1"]
      interval: 30s
      timeout: 10s
      retries: 3

  redis:
    image: redis:latest
    container_name: redis
    restart: always

  postgres:
    image: postgres:15
    container_name: postgres
    restart: always
    environment:
      POSTGRES_USER: root
      POSTGRES_PASSWORD: 123456
      POSTGRES_DB: new-api
    volumes:
      - ./pg_data:/var/lib/postgresql/data

粘贴到 compose.yaml 里(为了方便,本文中使用的是精简单容器版本)

/data/newapi 下运行 docker compose up -d ,创建容器,如图即为成功

3. 配置

访问 服务器IP:3480 (如果你修改了端口则替换为你的端口),进入初始化界面,点击下一步

设置管理员账号密码,点击下一步

本文仅展示个人用途,所以选择自用模式,点击下一步

点击初始化系统

会自动跳转到首页,点击登录

输入刚刚设置的账号密码,点击继续

进入后台主页

点击渠道管理,添加渠道

这里我们可以接入很多种类型的免费或者付费 API ,本文中我们仅演示接入在 https://iloli.love/archives/1771758983917 这篇文章里搭建的 API

(所有兼容标准化 OpenAI API 的大模型,都可以按照这个方法接入)

类型默认 OpenAI ,名称随意,填写在CLIProxyAPI配置的密钥,API 地址填写 CLIProxyAPI的服务器IP:端口,或是你反代CLIProxyAPI的域名(一定要注意,地址的最后不要带 / 或者 /v1 ),模型处可以暂时直接点击 填入相关模型 ,点击提交

可以看到我们刚刚添加的渠道,点击编辑

点击 清除所有模型 , 获取模型列表

可以看到我们用CLIProxyAPI反代出的所有模型,选择自己需要的模型,点击确定

点击提交

可以点击这个小箭头,再点击批量测试,就能看到选择的模型是否能使用了

接下来点击令牌管理,添加令牌

名称随意,点击提交即可

可以看到我们刚刚添加的令牌,点击密钥处可以查看或复制 API 密钥

4. 使用

到此已经完成,可以使用该密钥了,BaseURL 即为你的服务器IP:项目端口,该项目可以聚合更多大模型 API ,统一直接供给 OpenClaw 使用,这里就不过多赘述了

许可协议:  CC BY 4.0