XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/gpt4free

Improve docker image

c667f1ce
Heiner Lohaus <hlohaus@users.noreply.github.com>
提交于

代码差异

7 个文件 +86 -23
Modified docker-compose.yml +1 -3
@@ -2,13 +2,11 @@ version: '3'
2 2
3 3 services:
4 4 gpt4free:
5 image: gpt4free:latest
5 image: ghcr.io/xtekky/gpt4free:latest
6 6 shm_size: 2gb
7 7 build:
8 8 context: .
9 9 dockerfile: docker/Dockerfile
10 cache_from:
11 - gpt4free:latest
12 10 volumes:
13 11 - .:/app
14 12 ports:
Modified docker/Dockerfile +2 -1
@@ -2,6 +2,7 @@ FROM selenium/node-chrome
2 2
3 3 ENV SE_SCREEN_WIDTH 1920
4 4 ENV G4F_LOGIN_URL http://localhost:7900/?autoconnect=1&resize=scale&password=secret
5 ENV PYTHONUNBUFFERED 1
5 6
6 7 USER root
7 8
@@ -18,7 +19,7 @@ RUN rm -rf /var/lib/apt/lists/* /var/cache/apt/* \
18 19 && apt-get -qyy clean
19 20
20 21 # Update entrypoint
21 COPY docker/start-selenium-node.sh /opt/bin/
22 COPY docker/supervisor.conf /etc/supervisor/conf.d/selenium.conf
22 23
23 24 # Change background image
24 25 COPY g4f.png /usr/share/images/fluxbox/ubuntu-light.png
Deleted docker/start-selenium-node.sh +0 -17
@@ -1,17 +0,0 @@
1 #!/bin/bash
2
3 # Start the pulseaudio server
4 pulseaudio -D --exit-idle-time=-1
5
6 # Load the virtual sink and set it as default
7 pacmd load-module module-virtual-sink sink_name=v1
8 pacmd set-default-sink v1
9
10 # Set the monitor of v1 sink to be the default source
11 pacmd set-default-source v1.monitor
12
13 rm -f /tmp/.X*lock
14
15 # Start app servers
16 python -m g4f.cli api &
17 python -m g4f.cli gui
Added docker/supervisor.conf +76 -0
@@ -0,0 +1,76 @@
1 [program:xvfb]
2 priority=0
3 command=/opt/bin/start-xvfb.sh
4 autostart=true
5 autorestart=true
6
7 ;Logs
8 redirect_stderr=false
9 stdout_logfile=/var/log/supervisor/xvfb-stdout.log
10 stderr_logfile=/var/log/supervisor/xvfb-stderr.log
11 stdout_logfile_maxbytes=50MB
12 stderr_logfile_maxbytes=50MB
13 stdout_logfile_backups=5
14 stderr_logfile_backups=5
15 stdout_capture_maxbytes=50MB
16 stderr_capture_maxbytes=50MB
17
18 [program:vnc]
19 priority=5
20 command=/opt/bin/start-vnc.sh
21 autostart=true
22 autorestart=true
23
24 ;Logs
25 redirect_stderr=false
26 stdout_logfile=/var/log/supervisor/vnc-stdout.log
27 stderr_logfile=/var/log/supervisor/vnc-stderr.log
28 stdout_logfile_maxbytes=50MB
29 stderr_logfile_maxbytes=50MB
30 stdout_logfile_backups=5
31 stderr_logfile_backups=5
32 stdout_capture_maxbytes=50MB
33 stderr_capture_maxbytes=50MB
34
35 [program:novnc]
36 priority=10
37 command=/opt/bin/start-novnc.sh
38 autostart=true
39 autorestart=true
40
41 ;Logs
42 redirect_stderr=false
43 stdout_logfile=/var/log/supervisor/novnc-stdout.log
44 stderr_logfile=/var/log/supervisor/novnc-stderr.log
45 stdout_logfile_maxbytes=50MB
46 stderr_logfile_maxbytes=50MB
47 stdout_logfile_backups=5
48 stderr_logfile_backups=5
49 stdout_capture_maxbytes=50MB
50 stderr_capture_maxbytes=50MB
51
52 [program:g4f-cli]
53 priority=15
54 command=python -m g4f.cli api
55 directory=/app
56 stopasgroup=true
57 autostart=true
58 autorestart=true
59
60 ;Logs (all Hub activity redirected to stdout so it can be seen through "docker logs"
61 redirect_stderr=true
62 stdout_logfile=/dev/stdout
63 stdout_logfile_maxbytes=0
64
65 [program:g4f-gui]
66 priority=15
67 command=python -m g4f.cli gui
68 directory=/app
69 stopasgroup=true
70 autostart=true
71 autorestart=true
72
73 ;Logs (all Hub activity redirected to stdout so it can be seen through "docker logs"
74 redirect_stderr=true
75 stdout_logfile=/dev/stdout
76 stdout_logfile_maxbytes=0
Modified g4f/gui/client/js/chat.v1.js +1 -1
@@ -601,7 +601,7 @@ observer.observe(message_input, { attributes: true });
601 601
602 602 let auto = document.createElement('option');
603 603 auto.value = '';
604 auto.text = 'Default Model';
604 auto.text = 'Model: Default';
605 605 select.appendChild(auto);
606 606
607 607 for (model of models) {
Modified g4f/gui/server/backend.py +4 -1
@@ -41,7 +41,10 @@ class Backend_Api:
41 41 return g4f._all_models
42 42
43 43 def providers(self):
44 return [provider.__name__ for provider in g4f.Provider.__providers__ if provider.working]
44 return [
45 provider.__name__ for provider in g4f.Provider.__providers__
46 if provider.working and provider is not g4f.Provider.RetryProvider
47 ]
45 48
46 49 def _gen_title(self):
47 50 return {
Modified g4f/models.py +2 -0
@@ -275,6 +275,8 @@ class ModelUtils:
275 275 'gpt-3.5-turbo-16k' : gpt_35_turbo_16k,
276 276 'gpt-3.5-turbo-16k-0613' : gpt_35_turbo_16k_0613,
277 277
278 'gpt-3.5-long': gpt_35_long,
279
278 280 # gpt-4
279 281 'gpt-4' : gpt_4,
280 282 'gpt-4-0613' : gpt_4_0613,