g4f

gpt4free 구성

image

  graph LR
  A[api] <-- https --> B
  subgraph gvp6nx1a
  B[g4f] <-- proxy --> C[authelia]
  C <-- proxy --> C1[nginx]
  end
  C1 <-- https --> D[client]
  B <---> E1[ai_tel_bot.py]
  E1 <---> F[telegram-bot]

image

container 구성

docker-compose.yml (arm)

vi /opt/g4f/docker-compose.yml
services:
  g4f:
    image: hlohaus789/g4f:latest-armv7
    container_name: g4f
    networks:
      - dev
    ports:
      - 8080/tcp
      - 1337:1337/tcp
      - 7900/tcp
    user: 0:0
    environment:
      - TZ=Asia/Seoul
    volumes:
      - /opt/g4f/har_and_cookies:/app/har_and_cookies:rw
      - /opt/g4f/generated_images:/app/generated_images:rw
    shm_size: 2gb
    restart: unless-stopped
networks:
  dev:
    external: true

proxy 구성

authelia 구성

vi /opt/nginx/config/sites-available/g4f.conf
...
  location /authelia {
    if ($allowed_country = no) {
      return 403;
    }
    include /etc/nginx/snippets/authelia-api.conf;
  }
  location / {
    if ($allowed_country = no) {
      return 403;
    }
    proxy_pass http://g4f:8080;
    include    /etc/nginx/snippets/authelia-auth.conf;
    add_header 'Cross-Origin-Embedder-Policy' 'require-corp';
    add_header 'Cross-Origin-Opener-Policy'   'same-origin';
    add_header 'Cross-Origin-Resource-Policy' 'same-site';
  }
...

Troubleshooting

References