无根生

无根生

ChatGPTのAPIにアクセスできない問題を解決するためにtraefikを使用する

traefik.png
OpenAI は最近 ChatGPT の API インターフェースを更新しましたが、ある地域ではすぐにアクセスが制限されました。インターネット上にはさまざまな逆プロキシのチュートリアルがあります。cf work を使用するものや NGINX を使用するものなど、さまざまな方法があります。私も一つ書いてみます。


最初に#

traefik をインストールし、file provider ファイルディレクトリを設定していることを確認してください。

[providers]
  [providers.file]
    directory = "/etc/traefik/conf.d/"

Docker ファイルでは、対応するボリュームがマウントされています。以下のようになります。

    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./data/traefik.yml:/traefik.yml:ro
      - ./data/acme.json:/acme.json
      # Add folder with dynamic configuration yml
      - ./data/configurations://etc/traefik/conf.d/

設定#

data/configurations ディレクトリに openai.yaml ファイルを作成し、以下の内容を追加します。

http:
  routers:
    openai:
      entryPoints:
        - websecure
      rule: "Host(`yourdomain.com`) && Path(`/v1/chat/completions`)"
      service: openai
  services:
    openai:
      loadBalancer:
        passHostHeader: true
        servers:
          - url: "https://api.openai.com"

設定が完了したら、しばらく待って traefik ダッシュボードで設定が正しく読み込まれているか確認してください。traefik.png

私はこれでうまくいくと思っていましたが、非コンテナサービスをプロキシできないようです。しかし、コンテナサービスの場合はこの設定で正常に動作します。私の使用方法に問題があるのでしょうか?わかる方は教えてください。ありがとうございます。

新しい方法を試してみました#

Docker イメージを作成しました。https://hub.docker.com/r/mirrors2/chatgpt-api-proxy

version: '3.7'
services: 
  chatgpt-api-proxy:
    image: mirrors2/chatgpt-api-proxy
    container_name: chatgpt-api-proxy 
    restart: unless-stopped
    networks:
      - traefik
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=traefik"
      - "traefik.http.routers.chatgpt-api-proxy.entrypoints=websecure"
      - "traefik.http.routers.chatgpt-api-proxy.rule=Host(`your.domains`)"
      
networks:
  traefik:
    external: true

これでうまくいきました。

Koyeb にもパブリックプロキシをデプロイしました(安定性は保証されません):

https://chatgpt.mirrors2.eu.org

IMG_0136.PNG

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。