Skip to content

在 AIStudio 中部署 one-api

本文介绍如何在 AIStudio 开发机上部署 One API 平台

信息

如果您只需要在已安装的 One API 中接入 GenStudio API,请参见使用 One API 集成 GenStudio API

一站式 AI 平台(AIStudio)开发机提供了含 GPU 的开发环境,您可以在 AIStudio 开发机上部署 one-api 项目和 Ollama 等本地推理项目。

改造 Dockerfile

one-api 项目直接提供了 Dockerfile,但该文件直接依赖了 DockerHub 的镜像,在国内网络环境下无法拉取镜像,因此需要对该文件进行改造。此外,我们还需要针对国内情况调整 NPM 和 Go 的设置。

针对 DockerHub 镜像的问题,建议您提前获取构建过程中依赖的镜像,存入自己的租户镜像仓库。本次 Dockerfile 示例中的基础镜像已被替换为租户 te-b905754427352261 的私有镜像:

  • cr.infini-ai.com/te-b905754427352261/node:22
  • cr.infini-ai.com/te-b905754427352261/golang:alpine
  • cr.infini-ai.com/te-b905754427352261/alpine:latest

完整的 Dockerfile(仅作为示例,请务必自行替换 FROM 语句中的镜像地址):

language-dockerfile
FROM cr.infini-ai.com/te-b905754427352261/node:22 AS builder
# 克隆 one-api 代码仓库
WORKDIR /app
RUN git clone https://ghfast.top/https://github.com/songquanpeng/one-api.git .
RUN echo "registry=https://registry.npmmirror.com" > .npmrc 
WORKDIR /app/web
WORKDIR /app/web/default
RUN npm install
RUN DISABLE_ESLINT_PLUGIN='true' REACT_APP_VERSION=$(cat ../../VERSION) npm run build
WORKDIR /app/web/berry
RUN npm install
RUN DISABLE_ESLINT_PLUGIN='true' REACT_APP_VERSION=$(cat ../../VERSION) npm run build
WORKDIR /app/web/air
RUN npm install
RUN DISABLE_ESLINT_PLUGIN='true' REACT_APP_VERSION=$(cat ../../VERSION) npm run build
FROM cr.infini-ai.com/te-b905754427352261/golang:alpine AS builder2
RUN apk add --no-cache g++ git
ENV GO111MODULE=on \
    CGO_ENABLED=1 \
    GOOS=linux \
    GOPROXY=https://goproxy.cn,direct
WORKDIR /build
# 从上一个阶段获取构建产物
COPY --from=builder /app/go.mod /app/go.sum ./
RUN go mod download
COPY --from=builder /app/ .
COPY --from=builder /app/web/build ./web/build
RUN go build -trimpath -ldflags "-s -w -X 'github.com/songquanpeng/one-api/common.Version=$(cat VERSION)' -extldflags '-static'" -o one-api
FROM cr.infini-ai.com/te-b905754427352261/alpine:latest
RUN apk update \
    && apk upgrade \
    && apk add --no-cache ca-certificates tzdata \
    && update-ca-certificates 2>/dev/null || true
COPY --from=builder2 /build/one-api /
EXPOSE 3000
WORKDIR /data
CMD ["/bin/sh"]

构建自定义镜像

前往镜像中心,选择使用 Dockerfile 构建镜像。填入您改造后的 Dockerfile,构建自定义镜像,后续用于启动 AIStudio 开发机。

启动 one-api

创建 AIStudio 开发机,使用自定义镜像。登录后,执行以下命令。

language-shell
cd /
chmod u+x ./one-api
./one-api --port 3000 --log-dir ./logs

访问 Web UI:

  • 使用开发机的预览 Web 应用功能,直接从智算云平台打开预览页面。详见预览开发机上运行的 Web 应用。使用该方式生成的预览链接,要求已登录 AIStudio 账号。
  • 如果想避免 AIStudio 平台账号认证,可在本地计算机命令行终端设置端口转发。详见 SSH 端口转发