summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docker-compose.yml4
-rw-r--r--docker/Dockerfile3
-rwxr-xr-xdocker/start-selenium-node.sh17
-rwxr-xr-xdocker/supervisor.conf76
-rw-r--r--g4f/gui/client/js/chat.v1.js2
-rw-r--r--g4f/gui/server/backend.py5
-rw-r--r--g4f/models.py2
7 files changed, 86 insertions, 23 deletions
diff --git a/docker-compose.yml b/docker-compose.yml
index 89b11f06..8dfe1f35 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -2,13 +2,11 @@ version: '3'
services:
gpt4free:
- image: gpt4free:latest
+ image: ghcr.io/xtekky/gpt4free:latest
shm_size: 2gb
build:
context: .
dockerfile: docker/Dockerfile
- cache_from:
- - gpt4free:latest
volumes:
- .:/app
ports:
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 354f66d1..0c52940d 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -2,6 +2,7 @@ FROM selenium/node-chrome
ENV SE_SCREEN_WIDTH 1920
ENV G4F_LOGIN_URL http://localhost:7900/?autoconnect=1&resize=scale&password=secret
+ENV PYTHONUNBUFFERED 1
USER root
@@ -18,7 +19,7 @@ RUN rm -rf /var/lib/apt/lists/* /var/cache/apt/* \
&& apt-get -qyy clean
# Update entrypoint
-COPY docker/start-selenium-node.sh /opt/bin/
+COPY docker/supervisor.conf /etc/supervisor/conf.d/selenium.conf
# Change background image
COPY g4f.png /usr/share/images/fluxbox/ubuntu-light.png
diff --git a/docker/start-selenium-node.sh b/docker/start-selenium-node.sh
deleted file mode 100755
index a02d0e82..00000000
--- a/docker/start-selenium-node.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-# Start the pulseaudio server
-pulseaudio -D --exit-idle-time=-1
-
-# Load the virtual sink and set it as default
-pacmd load-module module-virtual-sink sink_name=v1
-pacmd set-default-sink v1
-
-# Set the monitor of v1 sink to be the default source
-pacmd set-default-source v1.monitor
-
-rm -f /tmp/.X*lock
-
-# Start app servers
-python -m g4f.cli api &
-python -m g4f.cli gui \ No newline at end of file
diff --git a/docker/supervisor.conf b/docker/supervisor.conf
new file mode 100755
index 00000000..6d82f6c9
--- /dev/null
+++ b/docker/supervisor.conf
@@ -0,0 +1,76 @@
+[program:xvfb]
+priority=0
+command=/opt/bin/start-xvfb.sh
+autostart=true
+autorestart=true
+
+;Logs
+redirect_stderr=false
+stdout_logfile=/var/log/supervisor/xvfb-stdout.log
+stderr_logfile=/var/log/supervisor/xvfb-stderr.log
+stdout_logfile_maxbytes=50MB
+stderr_logfile_maxbytes=50MB
+stdout_logfile_backups=5
+stderr_logfile_backups=5
+stdout_capture_maxbytes=50MB
+stderr_capture_maxbytes=50MB
+
+[program:vnc]
+priority=5
+command=/opt/bin/start-vnc.sh
+autostart=true
+autorestart=true
+
+;Logs
+redirect_stderr=false
+stdout_logfile=/var/log/supervisor/vnc-stdout.log
+stderr_logfile=/var/log/supervisor/vnc-stderr.log
+stdout_logfile_maxbytes=50MB
+stderr_logfile_maxbytes=50MB
+stdout_logfile_backups=5
+stderr_logfile_backups=5
+stdout_capture_maxbytes=50MB
+stderr_capture_maxbytes=50MB
+
+[program:novnc]
+priority=10
+command=/opt/bin/start-novnc.sh
+autostart=true
+autorestart=true
+
+;Logs
+redirect_stderr=false
+stdout_logfile=/var/log/supervisor/novnc-stdout.log
+stderr_logfile=/var/log/supervisor/novnc-stderr.log
+stdout_logfile_maxbytes=50MB
+stderr_logfile_maxbytes=50MB
+stdout_logfile_backups=5
+stderr_logfile_backups=5
+stdout_capture_maxbytes=50MB
+stderr_capture_maxbytes=50MB
+
+[program:g4f-cli]
+priority=15
+command=python -m g4f.cli api
+directory=/app
+stopasgroup=true
+autostart=true
+autorestart=true
+
+;Logs (all Hub activity redirected to stdout so it can be seen through "docker logs"
+redirect_stderr=true
+stdout_logfile=/dev/stdout
+stdout_logfile_maxbytes=0
+
+[program:g4f-gui]
+priority=15
+command=python -m g4f.cli gui
+directory=/app
+stopasgroup=true
+autostart=true
+autorestart=true
+
+;Logs (all Hub activity redirected to stdout so it can be seen through "docker logs"
+redirect_stderr=true
+stdout_logfile=/dev/stdout
+stdout_logfile_maxbytes=0 \ No newline at end of file
diff --git a/g4f/gui/client/js/chat.v1.js b/g4f/gui/client/js/chat.v1.js
index 2b1fdcb0..2844b73e 100644
--- a/g4f/gui/client/js/chat.v1.js
+++ b/g4f/gui/client/js/chat.v1.js
@@ -601,7 +601,7 @@ observer.observe(message_input, { attributes: true });
let auto = document.createElement('option');
auto.value = '';
- auto.text = 'Default Model';
+ auto.text = 'Model: Default';
select.appendChild(auto);
for (model of models) {
diff --git a/g4f/gui/server/backend.py b/g4f/gui/server/backend.py
index 03363201..e1abb764 100644
--- a/g4f/gui/server/backend.py
+++ b/g4f/gui/server/backend.py
@@ -41,7 +41,10 @@ class Backend_Api:
return g4f._all_models
def providers(self):
- return [provider.__name__ for provider in g4f.Provider.__providers__ if provider.working]
+ return [
+ provider.__name__ for provider in g4f.Provider.__providers__
+ if provider.working and provider is not g4f.Provider.RetryProvider
+ ]
def _gen_title(self):
return {
diff --git a/g4f/models.py b/g4f/models.py
index a6cd724b..cf24ff52 100644
--- a/g4f/models.py
+++ b/g4f/models.py
@@ -275,6 +275,8 @@ class ModelUtils:
'gpt-3.5-turbo-16k' : gpt_35_turbo_16k,
'gpt-3.5-turbo-16k-0613' : gpt_35_turbo_16k_0613,
+ 'gpt-3.5-long': gpt_35_long,
+
# gpt-4
'gpt-4' : gpt_4,
'gpt-4-0613' : gpt_4_0613,