MENU

Caddy2快速实现对OpenAI反向代理

November 24, 2023 • Read: 461 • 随心笔记

GhatGPT已经渗透到了我的工作生活当中,但是由于不明觉厉的原因,OpenAi并没有对中国地区提供服务,甚至连香港也如此,难免让人唏嘘。

目前使用的各种设备工具基本都支持自定义API地址,但这些设备环境很难统一保证,只能换个思路,比如说解除官方的地区限制;先把所有API请求发到私有服务器,再由私有服务器转发到官方。

私有服务器肯定需要在不受限制的地区,比如日本 美国 新加坡... 早期官方只有美国有两台服务器,但经过多次的故障考验目前已经接入了Cloudflare,经过实际测试,虽然接入了CF但是我们依旧可以再次进行反代。

在配置之前,肯定需要保证服务器已经安装好Caddy,如果没有请看这里

代理配置

里面的地址api-openai.proxy.com是演示域名请酌情修改;该配置只代理了/v1/chat/completions这个请求路径,如果不需要可以移除。

{
    "admin": {
        "disabled": true
    },
    "logging": {
        "logs": {
            "default": {
                "writer": {
                    "output": "file",
                    "filename": "/var/log/caddy/access.log"
                },
                "level": "INFO"
            }
        }
    },
    "apps": {
        "http": {
            "http_port": 80,
            "https_port": 443,
            "servers": {
                "http": {
                    "listen": [
                        ":443"
                    ],
                    "routes": [
                        {
                            "match": [
                                {
                                    "host": [
                                        "api-openai.proxy.com"
                                    ],
                                    "path": [
                                        "/v1/chat/completions"
                                    ]
                                }
                            ],
                            "handle": [
                                {
                                    "handler": "reverse_proxy",
                                    "upstreams": [
                                        {
                                            "dial": "api.openai.com:443"
                                        }
                                    ],
                                    "headers": {
                                        "request": {
                                            "set": {
                                                "Host": [
                                                    "api.openai.com"
                                                ]
                                            }
                                        }
                                    },
                                    "transport": {
                                        "protocol": "http",
                                        "tls": {
                                            "server_name": "api.openai.com",
                                            "insecure_skip_verify": false
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                }
            }
        }
    }
}

保存配置重启Caddy,手动打开地址 https://api-openai.proxy.com/v1/chat/completions,能正常打开则说明代理成功,再把接口配置到需要使用的设备工具即可。