简单小巧的OpenAI API访问:一键部署,轻松上手

在现代开发中,代理服务常常是不可或缺的一部分。无论是为了跨域请求、隐藏真实API地址,还是为了实现负载均衡,代理服务都能发挥重要作用。今天,我将向大家介绍一个简单小巧的OpenAI Proxy项目,它不仅易于上手,还使用了最新的Bun运行时,让你的开发体验更加流畅。

快速上手

如果你已经熟悉Docker,或者想直接使用这个项目而不需要深入了解其内部实现,那么你可以通过一行命令快速启动代理服务:

sudo docker run -d -p 9017:9017 aiql/openai-proxy-docker:latest

如果你对项目的源码感兴趣,或者想进一步自定义和扩展功能,可以直接访问项目的GitHub仓库:

https://github.com/AI-QL/openai-proxy-docker

接下来,我们将详细介绍这个简单小巧的OpenAI Proxy项目,以及如何通过Docker快速部署和使用它。

项目简介

这个OpenAI Proxy Docker项目基于Express和http-proxy-middleware,旨在为OpenAI的API提供一个简单的代理服务。通过这个项目,你可以轻松地将OpenAI的API请求转发到你的本地服务器,并且可以自定义请求和响应的头部信息。

项目的主要特点包括:

  • 简单易用:只需几行代码即可完成代理服务的配置。
  • 灵活配置:支持通过环境变量动态设置目标URL和端口。
  • 安全优化:自动移除不必要的请求头部信息,增强安全性。
  • 跨域支持:自动添加跨域头部信息,方便前端开发。

准备

在开始使用这个OpenAI Proxy项目之前,你需要准备一个可以访问OpenAI API的云服务环境。由于OpenAI的API服务需要访问境外网络,因此推荐使用以下云服务提供商的境外实例:

  1. 腾讯云境外轻量应用服务器:腾讯云提供了性价比高的境外轻量应用服务器,适合快速部署和运行代理服务。你可以选择硅谷、新加坡或其他境外区域的服务器。
  2. 阿里云境外服务器:阿里云的境外服务器也是一个不错的选择,提供稳定的网络连接和灵活的配置选项。
  3. 其他云服务提供商:如果你已经有其他云服务提供商的境外实例,也可以直接使用。

项目代码

以下是项目的主要代码部分:

const express = require('express')
const { createProxyMiddleware } = require('http-proxy-middleware');
const app = express()
const port = process.env.PORT || 9017
const target = process.env.TARGET || 'https://api.openai.com'

app.use('/', createProxyMiddleware({
    target: target,
    changeOrigin: true,
    on: {
        proxyReq: (proxyReq, req, res) => {
          /* handle proxyReq */
          proxyReq.removeHeader('x-forwarded-for');
          proxyReq.removeHeader('x-real-ip');
        },
        proxyRes: (proxyRes, req, res) => {
          /* handle proxyRes */
          proxyRes.headers['Access-Control-Allow-Origin'] = '*';
          proxyRes.headers['Access-Control-Allow-Headers'] = 'Origin, X-Requested-With, Content-Type, Accept, Authorization';
        },
        error: (err, req, res) => {
          /* handle error */
        },
      },
}));

app.listen(port, () => {
    console.log(`Proxy agent started: http://localhost:${port}`)
})

Docker镜像

为了方便部署,项目还提供了Dockerfile,使用了最新的Bun运行时。Bun是一个快速、现代的JavaScript运行时,能够显著提升Node.js应用的性能。

以下是Dockerfile的内容:

# use the official Bun image
# see all versions at https://hub.docker.com/r/oven/bun/tags
FROM oven/bun:slim AS base
WORKDIR /usr/src/app

# install dependencies into temp directory
# this will cache them and speed up future builds
FROM base AS install
RUN mkdir -p /temp/dev
COPY package.json package-lock.json /temp/dev/
RUN cd /temp/dev && bun install --frozen-lockfile

# install with --production (exclude devDependencies)
RUN mkdir -p /temp/prod
COPY package.json package-lock.json /temp/prod/
RUN cd /temp/prod && bun install --frozen-lockfile --production

# copy node_modules from temp directory
# then copy all (non-ignored) project files into the image
FROM base AS prerelease
COPY --from=install /temp/dev/node_modules node_modules
COPY . .

# [optional] tests & build
ENV NODE_ENV=production

# copy production dependencies and source code into final image
FROM base AS release
COPY --from=install /temp/prod/node_modules node_modules
COPY --from=prerelease /usr/src/app/app.js .
COPY --from=prerelease /usr/src/app/package.json .

# run the app
USER bun
ENTRYPOINT [ "bun", "run", "app.js" ]

一键部署

通过Docker,你可以轻松地将这个项目部署到任何支持Docker的环境中。只需一行命令,即可启动代理服务:

sudo docker run -d -p 9017:9017 aiql/openai-proxy-docker:latest

这条命令将会在后台运行一个Docker容器,并将本地的9017端口映射到容器的9017端口。你可以通过http://你的IP地址:9017访问代理服务。

更多场景

这个OpenAI Proxy Docker项目不仅仅局限于代理OpenAI的API,它还可以轻松扩展到其他场景。例如,你可以将其用于代理Nvidia NIM API,或者为其他第三方服务提供代理支持。通过简单的配置修改,你可以将目标URL指向任何你需要的API服务。

此外,如果你需要为代理服务设置自定义域名,或者进一步定制这个项目,比如添加更多的自定义头部信息、修改错误处理逻辑,或者使用不同的运行时环境,你可以参考项目的源代码并进行相应的修改。

同时,项目的README中也提供了更详细的部署说明,并了解如何将其集成到你的应用中,比如:

  • 使用docker-compose进行部署
  • 一个现成的Demo,可以快速验证代理服务的功能
  • 一个OpenAI API的实时可视化页面,快速了解最新的OpenAPI JSON定义

项目源代码托管在GitHub上,地址为:

https://github.com/AI-QL/openai-proxy-docker

总结

这个OpenAI Proxy Docker项目不仅简单小巧,而且易于上手。通过使用最新的Bun运行时,你可以在保持高性能的同时,享受到现代JavaScript运行时的便利。无论是用于开发环境还是生产环境,这个项目都能为你提供一个可靠的代理服务解决方案。

快来试试吧,只需一行Docker命令,你就可以拥有一个自己的的OpenAI API代理服务!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值